Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
11.3 Çoklu İkili Karşılaştırmalar (L11 Model Değerlendirmesi 4. Bölüm)
11.3 Çoklu İkili Karşılaştırmalar (L11 Model Değerlendirmesi 4. Bölüm)
Literatürde veya GitHub gibi platformlarda bulunan diğer birçok modelle karşılaştırmak istediğiniz bir modele sahip olduğunuz senaryoda, ikili karşılaştırmalar yapmak sorunlu olabilir. K farklı modeliniz varsa, her bir çift üzerinde ikili test yapmak, k kez (k - 1) / 2 kombinasyonla sonuçlanabilir ki bu büyük bir sayı olabilir. Bu, çoklu hipotez testleri yapılırken hata oranıyla ilgili endişeleri artırıyor.
Tipik olarak, hipotez testleri 0.05 veya daha küçük bir anlamlılık düzeyinde yürütülür. Bu, sıfır hipotezi doğruysa, onu yanlış bir şekilde reddetme şansının %5 olduğu ve bunun da %5 hata oranına yol açtığı anlamına gelir. Birden çok test yapıldığında, boş bir hipotezi yanlış bir şekilde reddetmenin hata oranı, r çarpı alfaya yükselebilir; burada r, yürütülen testlerin sayısıdır. En kötü durumda, tüm çift yönlü boş hipotezler doğruysa, hata oranı r çarpı alfaya kadar olabilir.
Bu sorunu çözmek için yaygın bir yaklaşım, iki adımlı bir süreci içeren korumalı bir prosedür kullanmaktır. İlk adım, birleştirilmiş tüm modellerin performansında önemli bir fark olup olmadığını değerlendirdiğiniz çok amaçlı bir testtir. Sıfır hipotezi, tüm modellerin sınıflandırma doğruluklarının eşit olduğunu varsayarken, alternatif hipotez, bunların eşit olmadığını öne sürer.
Omnibus testinde, model performanslarında bir fark olduğunu belirten sıfır hipotezi reddedilirse, ikili post hoc testleri içeren ikinci adıma geçebilirsiniz. Ancak, hata oranını kontrol etmek için çoklu karşılaştırmalar için ayarlamalar yapmak çok önemlidir. Yaygın olarak kullanılan bir düzeltme yöntemi, anlamlılık düzeyinin karşılaştırma sayısına bölündüğü Bonferroni yöntemidir.
İkili testler için McNemar testi kullanılabilir. Bu istatistiksel prosedürlerin resmi olmasına ve değerli içgörüler sağlamasına rağmen, makine öğrenimi uygulamasında bu kadar kapsamlı karşılaştırmalar yapmanın çok yaygın olmadığını belirtmek önemlidir. Tipik olarak, araştırmacılar tahmin doğruluklarını veya hatalarını rapor eder ve modelleri performanslarına göre sıralar.
Cochran-Q testi, birden çok modeli karşılaştırmak için "mlxtend" kitaplığında uygulanabilse de, birden çok model karşılaştırması için bu tür prosedürleri kullanmanın makine öğrenimi alanında hala nispeten nadir olduğunu belirtmekte fayda var. Ancak, birden çok modeli karşılaştırmak ve istatistiksel testler yapmak istediğiniz bir durumla karşılaşırsanız, bu seçenekleri keşfedebilir ve daha ayrıntılı bilgi için ders notlarına ve ilgili literatüre başvurabilirsiniz.
Bu konuların, özellik seçimi gibi diğer temel kavramları ele almak için yeterli zamanı sağlamak için bu derste kapsamlı bir şekilde ele alınmadığına dikkat etmek önemlidir.
Birden fazla karşılaştırmayla ilgili bir sorun, yanlış pozitif olarak da bilinen tip I hata riskinin artmasıdır. Birden fazla test yürütürken, boş hipotezleri yanlış bir şekilde reddetme ve hatalı sonuçlara yol açma şansı daha yüksektir. Bunu hafifletmek için araştırmacılar genellikle Bonferroni düzeltmesi veya yanlış keşif oranı (FDR) kontrolü gibi ayarlama yöntemleri uygular.
Bonferroni düzeltmesi, anlamlılık düzeyini (alfa) karşılaştırma sayısına (k) bölen ihtiyatlı bir düzeltmedir. Alfa üssü (α') olarak gösterilen bu düzeltilmiş anlamlılık düzeyi, genel aile bazında hata oranının kontrol altında kalmasını sağlar. Bonferroni düzeltmesi kullanılarak, her bir ikili test bir alfa/k seviyesinde gerçekleştirilir.
Diğer bir popüler yöntem, tüm retler arasında yanlış keşiflerin oranını kontrol etmeye odaklanan FDR kontrolüdür. FDR kontrolü, her karşılaştırma için anlamlılık seviyesini azaltmak yerine, genel yanlış keşif oranını kontrol etmek için ayrı ayrı testlerin p-değerlerini ayarlar. Bu yöntem, çok sayıda karşılaştırmanın söz konusu olduğu durumlarda avantajlı olabilen Bonferroni düzeltmesine kıyasla daha az katı bir ayarlamaya izin verir.
Bonferroni düzeltmesi ve FDR kontrolü yaygın olarak kullanılsa da, sınırlamalarının olduğunu belirtmek önemlidir. Bonferroni düzeltmesi aşırı muhafazakar olabilir ve potansiyel olarak tip II hataların veya yanlış negatiflerin olasılığının artmasına yol açar. Öte yandan, FDR kontrolü gerçek farklılıkları saptamak için daha fazla güce sahip olabilir ancak yanlış pozitif riskini de artırabilir.
Makine öğrenimi bağlamında, amacın ikili farklılıkları kapsamlı bir şekilde değerlendirmek mi yoksa en iyi performans gösteren modeli/modelleri belirlemek mi olduğunu düşünmeye değer. Tüm olası kombinasyonlar için ikili testler yapmak hesaplama açısından pahalı ve zaman alıcı olabilir. Uygulamada, araştırmacılar genellikle resmi istatistiksel testler yapmak yerine modelleri performans ölçütlerine göre sıralamaya ve en iyi performans gösteren modelleri belirlemeye odaklanır.
İstatistiksel testin, model karşılaştırmasının yalnızca bir yönü olduğunu kabul etmek de önemlidir. Modelleri değerlendirirken ve seçerken yorumlanabilirlik, hesaplama verimliliği, etki alanı uygunluğu ve pratik hususlar gibi diğer faktörler de dikkate alınmalıdır.
Sonuç olarak, çoklu karşılaştırmalar ve istatistiksel testler, model performans karşılaştırmalarına ilişkin değerli bilgiler sağlayabilse de, bunların makine öğrenimindeki pratik uygulamaları daha az yaygındır. Araştırmacılar genellikle tahmin doğruluklarını veya hatalarını raporlamaya, görsel karşılaştırmalara ve performans ölçütlerine dayalı sıralama modellerine güvenirler. Temel istatistiksel kavramları ve çoklu karşılaştırmalarla ilgili olası sorunları anlamak, titiz araştırmalar yürütmek ve sonuçları doğru bir şekilde yorumlamak için elzem olmaya devam ediyor.
11.4 Algoritma Karşılaştırması için İstatistiksel Testler (L11 Model Değerlendirmesi, Bölüm 4)
11.4 Algoritma Karşılaştırması için İstatistiksel Testler (L11 Model Değerlendirmesi, Bölüm 4)
Önceki videolarda, belirli bir veri kümesine önceden yerleştirilmiş farklı modelleri karşılaştırmak için istatistiksel çıkarımın nasıl kullanılabileceğini tartışmıştık. Şimdi, algoritmaları karşılaştırmamızı sağlayan istatistiksel testleri inceleyeceğiz. Bu, farklı eğitim kümeleri veya eğitim alt kümeleri ile donatılmış modelleri karşılaştırabileceğimiz anlamına gelir. Bu tartışma, algoritma karşılaştırması için istatistiksel çıkarım ve çeşitli istatistiksel testlerin uygulanmasına odaklanmaktadır.
Algoritmaları karşılaştırmak için her biri artıları ve eksileri olan birkaç istatistiksel test mevcuttur. Ders notlarında, ek materyallerle birlikte bu testlerin daha ayrıntılı bir açıklamasını bulabilirsiniz. Burada, testlere genel bir bakış sunacağım ve bazı önemli noktaları vurgulayacağım.
Yaygın bir test, algoritmalardan ziyade modelleri karşılaştırmak için kullanılan McNemar testidir. Düşük yanlış pozitif oranına sahip olduğu ve hesaplama açısından verimli olduğu için bahsetmeye değer. Ancak, algoritma karşılaştırması için özel olarak tasarlanmamıştır.
Başka bir test, ne yazık ki yanlış pozitif oranı yüksek olan oranlardaki fark testidir. Bu test, algoritma karşılaştırması için daha uygun hale getiren birden çok modelin uydurulmasını gerektirir. Bununla birlikte, birden fazla model bağlantı parçasına duyulan ihtiyaç nedeniyle hesaplama açısından pahalı olabilir.
K-katlı çapraz doğrulanmış t-testi, algoritma karşılaştırması için kullanılan başka bir yöntemdir. Daha doğru bir değerlendirme sağlar, ancak yine de biraz yüksek yanlış pozitif oranı vardır. Bu dezavantaja rağmen, yararlı bir test olmaya devam etmektedir.
Tekrarlanan çapraz doğrulama ile eşleştirilmiş t-testi, birden çok modelin uydurulmasını gerektiren başka bir yaklaşımdır. Diğer bazı testlerden daha düşük yanlış pozitif oranına sahip olsa da, yinelenen model uyumu nedeniyle hesaplama açısından yoğun olabilir.
Daha gelişmiş bir teknik, McNemar'ın testine kıyasla düşük bir yanlış pozitif oranı ve biraz daha yüksek istatistiksel güç sergileyen 5x2 çapraz doğrulanmış eşleştirilmiş t testidir. Algoritma karşılaştırmasına daha sağlam bir yaklaşım sunar. Ek olarak, daha fazla iyileştirme sağlayan 5x2 çapraz doğrulanmış eşleştirilmiş f-testi gibi daha yeni yaklaşımlar vardır.
Ders notlarında, bu testler ve diğer istatistiksel yaklaşımlar hakkında daha fazla ayrıntıya giriyorum. Ek olarak, bu testlerin çoğunu ders materyallerine eşlik eden bir kütüphane olan MLA extension'da uyguladım. McNemar testi, Cochrane Q testi, yeniden örneklenmiş eşleştirilmiş t-testi (önerilmez), K-katlamalı çapraz doğrulanmış eşleştirilmiş t-testi, 5x2 çapraz doğrulanmış birleşik t-testi ve daha fazlasının uygulamalarını bulabilirsiniz.
İstatistiksel testler değerli bilgiler sunarken, algoritma karşılaştırmasına yönelik hesaplamalı veya ampirik yaklaşımlar da vardır. Bir sonraki videoda, gerçek dünya uygulamalarında algoritma seçimi ve karşılaştırmasının ardındaki motivasyonu keşfedeceğiz. Örneğin, bir e-posta uygulaması geliştirmek veya araştırma makaleleri için bir öneri sistemi oluşturmak gibi senaryolarda en iyi performansı göstereni belirlemek için farklı algoritmaları karşılaştırmak isteyebiliriz.
Sonuç olarak, algoritmaları karşılaştırmak için her birinin güçlü yönleri ve sınırlamaları olan birkaç istatistiksel test mevcuttur. Bu testler, farklı eğitim setleriyle donatılmış algoritmalar arasındaki performans farklılıkları hakkında fikir verebilir. Bununla birlikte, uygun bir test seçerken hesaplama verimliliğini, yanlış pozitif oranları ve istatistiksel gücü dikkate almak önemlidir. Ek olarak ampirik yaklaşımlar, algoritma karşılaştırmasında istatistiksel testleri tamamlayabilir.
11.5 Algoritma Seçimi için İç İçe Özgeçmiş (L11 Model Değerlendirmesi, Bölüm 4)
11.5 Algoritma Seçimi için İç İçe Özgeçmiş (L11 Model Değerlendirmesi, Bölüm 4)
Pekala, hesaplamalı algoritma seçimi konusuna geçelim. Bu tartışmada, iç içe çapraz doğrulama adı verilen bir tekniğe odaklanacağız ve gelecek videodaki bazı kod örneklerini inceleyeceğiz. Yuvalanmış çapraz doğrulamaya geçmeden önce, daha önce ele aldığımız bazı önemli noktaları hızlıca özetleyelim.
Daha önce, bir model seçme aracı olarak üç yollu uzatma yöntemini tartışmıştık. İşte sürecin kısa bir özeti: Orijinal veri setimizi bir eğitim seti ve bir test seti olarak bölerek başlıyoruz. Ardından, eğitim setini daha küçük bir eğitim setine ve bir doğrulama setine ayırıyoruz. Eğitim seti, bir modeli eğitmek için bir makine öğrenimi algoritması ve belirli hiperparametre değerleri ile birlikte kullanılır. Çeşitli hiperparametre ayarlarını yineleyerek, ilgili performansları ile birden fazla model elde ediyoruz. Son olarak, doğrulama setinde ölçüldüğü şekliyle en yüksek performansa sahip modeli seçiyoruz ve test setindeki son performansını değerlendiriyoruz. Model seçimi sırasında ortaya çıkan herhangi bir seçim yanlılığını azaltmak için bağımsız bir test seti dahil etmek önemlidir.
Şimdi, anlayışımıza yardımcı olması için farklı bir şekil kullanarak kavramı tekrar gözden geçirelim. Bu şemada, üç senaryoyu görselleştirebiliriz. İlk senaryoda herhangi bir model ayarlaması yapmadan eğitim setinde eğitilen ve test setinde test edilen tek bir modeli değerlendiriyoruz. Bu yaklaşım, model ayarı gerekmediğinde uygundur.
İkinci senaryoda, aynı eğitim ve test setlerinde birden çok modeli değerlendiriyoruz. Her model farklı hiperparametre ayarlarıyla eğitilir ve test seti performansına göre en iyi performansı göstereni seçeriz. Bununla birlikte, test setinin model seçimi için birden çok kez kullanılması, seçim yanlılığına yol açarak bu yaklaşımı daha az arzu edilir hale getirebilir.
Üçüncü senaryo, daha önce tartıştığımız üç yollu uzatma yöntemine karşılık gelir. Farklı hiperparametre ayarlarıyla eğitim setinde birden fazla model eğitilir. Doğrulama seti daha sonra test setinde değerlendirilen en iyi performans gösteren modeli seçmek için kullanılır. Bu yaklaşım, model sıralaması için ayrı bir doğrulama seti kullanarak seçim yanlılığını azaltmaya yardımcı olur.
Üç yollu uzatma yöntemi etkili olsa da, daha önceki tartışmamızda ele aldığımız k-katlı çapraz doğrulama daha iyi bir yaklaşımdır. Bu yöntem, verileri k bölüme ayırır ve her kat sırayla doğrulama seti olarak geri kalanı eğitim seti olarak hizmet eder. Bu yaklaşım, veri kümesinin boyutu sınırlı olduğunda özellikle yararlıdır. Daha büyük veri kümeleri için, özellikle veri kümesi boyutlarının tipik olarak daha büyük olduğu ve model yakınsama gibi ek hususların devreye girdiği derin öğrenmede, üç yollu uzatma hala geçerli bir seçenek olabilir.
Şimdi farklı algoritmaları karşılaştırarak bizi bir adım öteye götüren iç içe geçmiş çapraz doğrulamayı tartışalım. K-en yakın komşular, karar ağaçları, gradyan artırma ve rastgele ormanlar gibi algoritmaları karşılaştırmak istediğimizi varsayalım. Her algoritma, en iyi modeli seçmek için hiperparametre ayarlamasına tabi tutulur. Çapraz doğrulama prosedürüne, iç içe geçmiş çapraz doğrulama ile sonuçlanan başka bir döngü ekliyoruz. Dış döngü model değerlendirmesinden sorumluyken, iç döngü hiperparametre ayarına odaklanır. Bu iki adımlı prosedür, iç içe geçmiş çapraz doğrulamayı normal k katlı çapraz doğrulamadan daha karmaşık hale getirir çünkü esas olarak iki iç içe k katlı çapraz doğrulama içerir.
Bu süreci daha iyi anlamak için, orijinal veri setimiz ile başlayan bir çizimi inceleyelim. Son değerlendirme için bağımsız bir test setimiz olduğunu düşünün, ancak şimdilik ana eğitim setimiz yeterli olacaktır. K-katlı çapraz doğrulamaya benzer şekilde, belirli sayıda katlama için bir döngüyü yineleriz, bu durumda beş diyelim. Her yinelemede, veriler eğitim katlarına ve bir test katına bölünür. Ancak modeli sadece eğitim katında eğitip test katında değerlendirmek yerine bir sonraki adıma geçiyoruz.
Bir sonraki adımda, diyagramın alt kısmındaki gibi eğitim katlarından birini alıp daha küçük bir eğitim seti ve bir doğrulama seti olarak bölüyoruz. Daha küçük eğitim seti, çeşitli hiperparametre ayarlarıyla farklı modelleri eğitmek için kullanılırken, doğrulama seti en iyi performans gösteren modeli seçmek için kullanılır.
Mevcut eğitim katmanı için iç döngü tamamlandığında, karşılık gelen hiperparametre ayarlarıyla birlikte seçilmiş bir modelimiz olur. Daha sonra bu modeli, iç döngü sırasında kullanılmayan dış döngüden test katı üzerinde değerlendiriyoruz.
İşlem, dış döngüdeki her kat için devam eder. Her seferinde farklı bir kat, test katı olarak tutulurken, geri kalan katlar eğitim ve doğrulama için kullanılır. Bu, her katlamanın hem test seti hem de doğrulama seti olarak kullanılmasını ve her modelin farklı bir veri seti üzerinde değerlendirilmesini sağlar. Modelin nihai performansı, tüm katlardaki performansın ortalaması alınarak belirlenir.
Yuvalanmış çapraz doğrulama, performansları hakkında daha sağlam bir tahmin sağlayarak farklı algoritmaları karşılaştırmamıza yardımcı olur. İç içe geçmiş çapraz doğrulama sürecini birden çok kez tekrarlayarak daha güvenilir ve istikrarlı performans tahminleri elde edebiliriz.
Özetlemek gerekirse, iç içe geçmiş çapraz doğrulama, model seçimi ve hiperparametre ayarının faydalarını birleştiren bir tekniktir. Birden fazla veri katmanı üzerindeki performanslarını değerlendirerek ve iç içe geçmiş çapraz doğrulama yinelemelerine dayalı olarak en iyi modeli seçerek farklı algoritmaları karşılaştırmamıza olanak tanır. Bu yaklaşım, seçim yanlılığını azaltmaya yardımcı olur ve algoritma performansının daha doğru bir tahminini sağlar.
Gelecek videoda, iç içe çapraz doğrulamanın pratikte nasıl uygulandığını göstermek için kod örneklerini inceleyeceğiz. Bu serinin bir sonraki bölümü için bizi izlemeye devam edin.
11.6 Algoritma Seçim Kodu Örneği için İç İçe Özgeçmiş (L11 Model Değerlendirme Bölüm 4)
11.6 Algoritma Seçim Kodu Örneği için İç İçe Özgeçmiş (L11 Model Değerlendirme Bölüm 4)
Pekala, iç içe çapraz doğrulamanın arkasındaki konsepti tartıştığımıza göre, şimdi bir kod örneğini inceleyelim. Bu örnek, iç içe geçmiş çapraz doğrulamayı hesaplama açısından daha iyi anlamanıza yardımcı olacaktır. Ek olarak, algoritmaları karşılaştırırken sınıf projeleriniz için yararlı olacaktır.
İlk olarak, kod örnekleri GitHub'da bulunabilir. Bunları "l11_code" adı altında normal sınıf depomuza yükledim. Üç not defteri mevcuttur: "verbose_one", "verbose_two" ve "compact". Üç not defteri de aynı sonuçları verir, ancak uygulama yaklaşımlarında farklılık gösterir.
"verbose_one" not defterinde, tabakalı k-katlama yöntemini manuel olarak kullanarak daha manuel bir yaklaşım benimsedim. Öte yandan, "verbose_two" not defterinde cross_validate işlevini kullandım. Son olarak, "kompakt" not defterinde cross_val_score kullandım. Her not defteri analiz edildiğinde farklı düzeylerde bilgi sağlar. Katmanlı k-katlama nesnesine zaten aşina olduğunuz için şimdilik "verbose_one" not defteriyle başlamanızı tavsiye ederim.
Devam etmeden önce, seçtiğiniz uygulama yaklaşımının sonuçları önemli ölçüde etkilemediğini belirtmekte fayda var. Ancak, hiperparametre kümeleri hakkında daha az bilgi sağladığı için "kompakt" not defterinin kullanılmasını önermem. Daha sonra, aşağıdaki içeriği ele aldıktan sonra hiperparametre setlerinin nasıl göründüğünü kısaca gösterebilirim.
Şimdi, yuvalanmış çapraz doğrulamaya manuel yaklaşımı gösteren "verbose_one" not defterini inceleyelim. Bu not defterinde, iç içe çapraz doğrulamanın ve nasıl çalıştığının bir örneğini bulacaksınız. İşlem, iç döngüleri çalıştıran bir dış döngüyü içerir. Her bir dış döngü için kat, eğitim ve test bölümlerine ayrılır. Eğitim kısmı daha sonra hiperparametre ayarı veya model seçimi gerçekleştiren iç döngüye geçirilir. Bu, önceki derste öğrendiğimiz gibi ızgara arama kullanılarak elde edilebilir.
Not defterinde, gerekli kitaplıkları ve modülleri içe aktarmak gibi gerekli kurulum adımlarını bulacaksınız. Bunlar, iç döngüde model ayarı için ızgara aramayı, veri kümesini, karşılaştırmak istediğimiz katmanlı k-katlı çapraz doğrulama, ardışık düzen, standart skalerler ve sınıflandırıcılar kullanarak bölmeyi içerir. Bu örneğin amaçları doğrultusunda, hesaplama fizibilitesini sağlam tutmak için 5000 eğitim örneğinden oluşan "emnes" veri setinin daha küçük bir versiyonunu kullanıyoruz. Ek olarak, veri setinin %20'si test verisi olarak ayrılır ve iç içe geçmiş çapraz doğrulama performansını test seti performansıyla karşılaştırmamıza olanak tanır.
İleriye doğru, kullanacağımız sınıflandırıcıları başlatıyoruz. İlk sınıflandırıcı, bir lojistik regresyon sınıflandırıcısı, özellikle çok terimli bir lojistik regresyon sınıflandırıcısıdır. Bu sınıflandırıcı, derin öğrenmede softmax regresyonu olarak da bilinir. Bu derste ele almamış olsak da, "İstatistik 453" te işleyeceğiz. Bu sınıflandırıcıyı kullanmanın nedeni, karşılaştırılacak daha geniş bir algoritma yelpazesine sahip olmaktır. Ayrıca, diğer algoritmalara kıyasla nispeten hızlıdır. Düşündüğümüz diğer bir nispeten hızlı sınıflandırıcı, özellikle lineer olan destek vektör makinesidir. Bu sınıflandırıcıları dahil ederek, çeşitli hiperparametre ayarlarını karşılaştırmayı amaçlıyoruz.
Karar ağacının kendisi ve rastgele orman sınıflandırıcısı gibi karar ağacı tabanlı sınıflandırıcıların parametre ölçeklendirmesi gerektirmediğine dikkat etmek önemlidir. Bu nedenle, sadece diğer sınıflandırıcılar için ölçeklendirme yapıyoruz. Bunu kolaylaştırmak için, standart ölçekleyiciyi ilgili sınıflandırıcıyla birleştiren ardışık düzenleri kullanırız. Böylece boru hattı, sınıflandırıcının kendisi olarak görülebilir. Her sınıflandırıcı için arayacağımız bir hiperparametre ızgarası tanımlarız. Bu ızgaralar, her bir sınıflandırıcı için ayarlamak istediğimiz parametreleri içerir. Örneğin, lojistik regresyonda, düzenlileştirme ağırlık cezasını ve farklı düzenlileştirme güçlerini dikkate alıyoruz. En yakın komşular, en yakın komşuların sayısını ve mesafeyi dikkate almayı içerir.
"verbose_one" not defterinde, sınıflandırıcıları ve bunların ilgili hiperparametre ızgaralarını tanımladıktan sonra, iç içe geçmiş çapraz doğrulama için dış ve iç döngüleri kurmaya geçiyoruz.
Dış döngü, veri setini eğitim ve test setlerine bölmek için katmanlı k-katlı çapraz doğrulama kullanır. Kıvrımlar üzerinde yinelenir ve katlama indeksini, eğitim indekslerini ve test indekslerini takip eder. Her kat için, eğitim verileri ayrıca iç döngü için eğitim ve doğrulama kümelerine bölünür.
İç döngü, ızgara aramayı kullanarak model seçimi veya hiperparametre ayarı gerçekleştirir. Her sınıflandırıcı için hiperparametre ızgarasını yineler ve her kombinasyon için en iyi hiperparametreleri bulmak için dış döngüdeki eğitim ve doğrulama kümelerini kullanır. Izgara arama, belirtilen hiperparametre ızgarasını kapsamlı bir şekilde arar ve çapraz doğrulama kullanarak her bir kombinasyonun performansını değerlendirir.
İç döngü tamamlandıktan sonra, her sınıflandırıcı için en iyi hiperparametreler kaydedilir. Daha sonra seçilen modellerin performansları başlangıçta ayrılan test setinde değerlendirilir. Her sınıflandırıcı için doğruluk, kesinlik, hatırlama ve F1 puanı gibi değerlendirme ölçütleri hesaplanır.
Son olarak, farklı sınıflandırıcıların performansını ve bunların hiperparametre ayarlarını karşılaştırmanıza izin veren iç içe geçmiş çapraz doğrulama ve test seti değerlendirmesinin sonuçları görüntülenir.
"verbose_two" ve "compact" not defterlerinin, sırasıyla cross_validate işlevi ve cross_val_score işlevi kullanılarak iç içe geçmiş çapraz doğrulamanın alternatif uygulamalarını sağladığına dikkat etmek önemlidir. Bu işlevler, kodu basitleştirerek bazı çapraz doğrulama adımlarını otomatik olarak işler. Ancak, "verbose_one" not defterine kıyasla daha az ayrıntılı bilgi sağlayabilirler.
Umarım bu genel bakış, kod örneklerini ve iç içe çapraz doğrulamanın nasıl uygulandığını anlamanıza yardımcı olur. Kavramı daha iyi anlamak için not defterlerini keşfetmekten ve farklı veri kümeleri ve sınıflandırıcılarla deney yapmaktan çekinmeyin.
12.0 Derse Genel Bakış (L12 Model Değerlendirme 5: Performans Metrikleri)
12.0 Derse Genel Bakış (L12 Model Değerlendirme 5: Performans Metrikleri)
Herkese merhaba,
Umarım hepiniz harika bir Şükran Günü tatili geçirmişsinizdir ve dönemin son haftalarından önce rahatlayıp enerjinizi toplamışsınızdır. Dönemin bitiyor olması talihsiz bir durum olsa da, sabırsızlıkla bekleyecek çok şey var, özellikle de proje sunumlarınız. Bu derste ele aldığımız içeriğe dayalı olarak ne oluşturduğunuzu görmekten ve makine öğrenimi bilginizin yaratıcılığına ve uygulamasına tanık olmaktan heyecan duyuyorum.
Önümüzdeki iki hafta içinde, birlikte kalan zamanımız için bazı planlarım var. Bu hafta, model değerlendirmesini ele alacağım ve beş performans ve değerlendirme ölçütüne odaklanacağım. Amaç, bakış açınızı sınıflandırma doğruluğunun ve hatalarının ötesine genişletmektir. Makine öğrenimi modellerini etkili bir şekilde değerlendirmeye yardımcı olabilecek çeşitli ölçümleri keşfedeceğiz. Bu konunun fazla zaman alacağını tahmin etmiyorum, bu yüzden ek zamanımız olursa özellik seçimine de değineceğim. Kapsamlı bir şekilde ele almak için zamanımız olmayabileceğini bildiğim için, bu konuyla ilgili bazı kendi kendine çalışma materyallerini daha önce paylaşmıştım. Çevrimiçi öğrenmenin getirdiği zorluklara dikkat etmek ve kısa sürede çok fazla konu ile sizi bunaltmamak istiyorum. 4 Aralık'ta teslim edilecek Ev Ödevi 3 ve 6 Aralık'ta video formatında proje sunumlarınız da dahil olmak üzere hepinizin meşgul olduğunu anlıyorum.
Proje sunumları ile ilgili olarak önümüzdeki hafta sunumlarınızı gömebileceğiniz Canvas sayfaları oluşturacağım. Ek olarak, en yaratıcı proje, en iyi sözlü sunum ve en iyi görselleştirme dahil olmak üzere proje ödüllerini oylamak için bir sınav formatı oluşturacağım. Bu ödüller sizlerin oylarıyla belirlenecektir. Sürece eğlenceli bir unsur katacağına inanıyorum. Gelecek hafta için her şeyi ayarlayacağım, yani ders olmayacak. Ancak herkesin proje sunumlarını izlemesini şiddetle tavsiye ederim. Sunumlarla ilgili anketlerin doldurulmasına puan verilecektir. Hepiniz önemli bir çaba sarf ettiğiniz için birbirinizin sunumlarını izlemek de adil. Piazza'da tartışabilir, sorular sorabilir veya etkileşime izin veren diğer platformları keşfedebiliriz. Bu ilişkiyi kolaylaştırmanın en iyi yolunu düşüneceğim.
Bugünkü dersimize geçmeden önce size ders değerlendirmelerini hatırlatmak istiyorum. Bölümümüz, dönemin sizin için nasıl geçtiğine dair geri bildirimde bulunmanızı istedi. Bu yıl çevrimiçi format nedeniyle farklı geçti, bu nedenle görüşleriniz değerli olacaktır. Ders değerlendirmeleri için linkleri Canvas'ta paylaşacağım. Bunları doldurmak için zaman ayırırsanız çok makbule geçer. Ancak, tamamlamamayı seçerseniz herhangi bir ceza olmadığını vurgulamak isterim. Bu yalnızca geri bildiriminizi toplamak için bir istektir.
Bununla birlikte, performans ve değerlendirme ölçütleri üzerine Ders 5 ile başlayalım. Fazla uydurma ve yetersiz uydurmayı anlamak için önyargı-varyans ayrıştırmalarıyla başlayarak, model değerlendirmede uzun bir yol kat ettik. Normal yaklaşım yöntemini kullanarak güven aralıkları oluşturarak, tekrarlanan uzatma ve önyükleme gibi yeniden örnekleme tekniklerini ve model seçimi için çapraz doğrulamayı kullanarak veri kümesi bölümü için uzatma yöntemini ve tuzaklarını araştırdık. Geçen hafta, iç içe çapraz doğrulama dahil olmak üzere model ve algoritma karşılaştırmaları için istatistiksel testleri tartıştık. Bugün, odak noktamız değerlendirme ölçütleri olacak.
Geçen hafta ele alınan McNemar karışıklık matrisinden farklı olan karışıklık matrisini tartışarak başlayacağız. Karışıklık matrisinden, yanlış pozitif oranı, gerçek pozitif oranı ve diğerleri gibi, alıcı çalışma karakteristiğini incelerken faydalı olacak ölçümler türetebiliriz. Ek olarak kesinliği, hatırlamayı, F1 puanını, Matthews korelasyon katsayısını ve dengeli doğruluğu keşfedeceğiz. İkincisi, veri kümesinde sınıf dengesizliklerinin olduğu durumlarda özellikle yararlıdır. Sonlara doğru, zaten çok sınıflı sınıflandırmayla uyumlu olan dengeli doğruluk dışında, ikili ölçümleri çok sınıflı ayarlara genişletmeyi ele alacağız.
Bir sonraki videoda tartışmamıza karışıklık matrisiyle başlayacağız.
12.1 Karışıklık Matrisi (L12 Model Değerlendirme 5: Performans Metrikleri)
12.1 Karışıklık Matrisi (L12 Model Değerlendirme 5: Performans Metrikleri)
Karışıklık matrisini ve önemini tartışarak başlayalım. Derste konuşmacı, dönemin yoğun olması ve konuyu bir Python makine öğrenimi kitabında ele almış olmak gibi çeşitli nedenlerle ders notları hazırlamadıklarını belirtti. Daha fazla ayrıntı için kitabın 6. Bölümüne başvurmayı önerdiler.
Karışıklık matrisi, bir makine öğrenimi sınıflandırıcısının performansını değerlendirmek için kullanılan bir araçtır. Denetimli bir sınıflandırma probleminde tahmin edilen sınıf etiketleri ile gerçek sınıf etiketleri arasındaki karşılaştırmayı gösterir. Matris, sınıflandırıcının ne kadar iyi performans gösterdiğini ve hangi sınıf etiketlerini karıştırma eğiliminde olduğunu anlamamıza yardımcı olur.
Karışıklık matrisi, tipik olarak, beklenmedik durum matrisi olarak da bilinen ikiye-iki formatında temsil edilir. Dört bileşenden oluşur: gerçek pozitifler (TP), yanlış negatifler (FN), yanlış pozitifler (FP) ve gerçek negatifler (TN). "Pozitif" sınıf, tahmin etmek istediğimiz ilgili sınıfı, "negatif" sınıf ise diğer sınıfı ifade eder.
Gerçek pozitifler (TP), pozitif sınıfa ait olan ve sınıflandırıcı tarafından doğru şekilde tanımlanan örneklerdir. Öte yandan, yanlış negatifler (FN), pozitif sınıftan yanlışlıkla negatif olarak tahmin edilen örneklerdir.
Benzer şekilde, yanlış pozitifler (FP), negatif sınıftan yanlış bir şekilde pozitif olarak tahmin edilen örneklerdir. Son olarak, gerçek negatifler (TN), negatif sınıftan doğru bir şekilde negatif olarak tanımlanan örneklerdir.
Bu bileşenleri analiz ederek çeşitli performans ölçümlerini hesaplayabiliriz. Derste iki ortak ölçümden bahsedildi: sınıflandırma doğruluğu ve sınıflandırma hatası. Sınıflandırma doğruluğu, gerçek pozitiflerin ve gerçek negatiflerin toplamının toplam tahmin sayısına bölünmesiyle hesaplanır. Öte yandan, sınıflandırma hatası bir eksi doğruluk olarak hesaplanır.
Konuşmacı daha sonra meme kanseri teşhisleri hakkında bilgi içeren meme kanseri Wisconsin veri setini tanıttı. Veri setinin, her hasta için bir kimlik numarası ve kanser hücresi çekirdeğinin sayısallaştırılmış görüntülerinden çıkarılan özellikler dahil olmak üzere çeşitli sütunlara sahip olduğunu açıkladılar.
Veri setini sınıflandırmaya hazırlamak için konuşmacı, dizi sınıfı etiketlerini (malign ve benign) tamsayı etiketlerine (0 ve 1) dönüştürmek için scikit-learn'den bir etiket kodlayıcı kullandı. Veri setini bir eğitim setine (%80) ve bir test setine (%20) ayırdılar.
Ardından, konuşmacı bir k-en yakın komşu sınıflandırıcı kullanarak bir karışıklık matrisinin nasıl çizileceğini gösterdi. KNN sınıflandırıcıları için özellik ölçeklemenin önemini vurguladılar ve ön işleme için standart bir skaler ve ardışık düzen kullanımından bahsettiler.
Karışıklık matrisini görselleştirmek için, konuşmacı mlxtend kütüphanesinden konfüzyon_matriks işlevini kullandı. Ortaya çıkan karışıklık matrisi, sağ alt köşede gerçek pozitifler ve sol üst köşede gerçek negatifler olacak şekilde matplotlib kullanılarak görüntülendi.
Buna ek olarak, konuşmacı, show_absolute ve show_normed gibi, Consciousness_matrix işlevinin bazı isteğe bağlı parametrelerinden bahsetti. Bu parametreler, mutlak sayıların veya normalleştirilmiş değerlerin gösterilmesi dahil olmak üzere görselleştirmenin özelleştirilmesine izin verir.
Son olarak, konuşmacı gerçek pozitif oranı, yanlış pozitif oranı, yanlış negatif oranı ve gerçek negatif oranı gibi karışıklık matrisinden türetilen metrikleri tartıştı. Bu metrikler, sınıflandırıcı performansını değerlendirmek için önemlidir ve sonraki tartışmalarda alıcı operatör özelliği (ROC) eğrisi ile ilişkili olarak daha ayrıntılı olarak incelenecektir.
Genel olarak, karışıklık matrisi, bir sınıflandırıcının performansına ilişkin değerli içgörüler sağlar ve sınıf etiketlerini doğru bir şekilde tahmin etme yeteneğini değerlendirmemize olanak tanır.
12.2 Kesinlik, Geri Çağırma ve F1 Puanı (L12 Model Değerlendirme 5: Performans Metrikleri)
12.2 Kesinlik, Geri Çağırma ve F1 Puanı (L12 Model Değerlendirme 5: Performans Metrikleri)
Bir önceki videoda, sınıflandırma modellerini değerlendirmek için kullanışlı bir araç olan karışıklık matrisini ele almıştık. Gerçek pozitiflerin, yanlış pozitiflerin, gerçek negatiflerin ve yanlış negatiflerin sayısını hesaplamamızı sağlar. Ayrıca gerçek pozitif oranı ve gerçek negatif oranı da araştırdık. Şimdi, üç ek ölçüm sunarak anlayışımızı genişleteceğiz: kesinlik, hatırlama ve F1 puanı.
Hassasiyetle başlayalım. Kesinlik, gerçek pozitiflerin sayısının gerçek pozitifler ve yanlış pozitiflerin toplamına bölünmesiyle hesaplanır. Gerçek pozitifler, doğru olarak pozitif olarak tahmin edilen örneklerdir, yanlış pozitifler ise yanlışlıkla pozitif olarak tahmin edilen örneklerdir. Örneğin, spam sınıflandırması bağlamında, gerçek pozitifler, spam olarak doğru bir şekilde tanımlanan e-postaları temsil ederken, yanlış pozitifler, spam olmayan e-postaların yanlışlıkla spam olarak sınıflandırılmasını ifade eder. Hassasiyet, şu soruyu yanıtlayarak olumlu tahminlerin doğruluğunu ölçer: Öngörülen spam e-postaların kaç tanesi gerçekten spam?
Ardından, gerçek pozitif oran olarak da bilinen hatırlama var. Hatırlama, gerçek pozitiflerin sayısının gerçek pozitifler ve yanlış negatiflerin toplamına bölünmesiyle hesaplanır. Gerçek pozitifler, pozitif olarak doğru şekilde tahmin edilen örnekleri temsil eder ve yanlış negatifler, yanlış olarak negatif olarak tahmin edilen vakaları temsil eder. Geri çağırma, gerçek pozitif örneklerden kaçının doğru bir şekilde pozitif olarak tanımlandığını gösterir. Başka bir deyişle, bir sınıflandırıcının olumlu örnekleri yakalamadaki etkinliğini ölçer.
Bir diğer önemli ölçüm, kesinliği ve geri çağırmayı tek bir değerde birleştiren F1 puanıdır. Kesinlik ve geri çağırmanın harmonik ortalaması alınarak, iki kat ağırlıklandırılmış olarak hesaplanır. F1 puanı, hem kesinlik hem de hatırlama dikkate alındığında, bir sınıflandırıcının performansının dengeli bir ölçüsünü sağlar. Hem kesinlik hem de hatırlama açısından iyi performans gösteren bir modeli değerlendirmek istediğimizde özellikle yararlıdır.
Tüm bu metriklerin sıfır ile bir arasında bir aralığı vardır ve biri mümkün olan en iyi değerdir. Terminoloji açısından, duyarlılık ve özgüllük hesaplamalı biyolojide daha yaygın olarak kullanılırken, bilgi teknolojisi, bilgisayar bilimi ve makine öğreniminde kesinlik ve geri çağırma popülerdir. Bir makalede veya çalışmada hangi ölçütlerin kullanılacağını seçerken, belirli bir alanın geleneklerini göz önünde bulundurmak önemlidir.
Kesinliği ve hatırlamayı daha iyi anlamak için, Wikipedia'dan faydalı bir diyagram kullanarak bunları görselleştirelim. Bu görselleştirmede, pozitif sınıfı (ör. spam e-postalar) soldaki her şey olarak ve negatif sınıfı her şey sağdaki olarak kabul ediyoruz. Kesinlik, gerçek pozitiflerin tahmin edilen tüm pozitiflere bölünmesiyle temsil edilirken, hatırlama, gerçek pozitiflerin tüm gerçek pozitiflere bölünmesiyle temsil edilir.
Ek olarak, yaygın olarak kullanılan iki başka ölçümüz daha var: duyarlılık ve özgüllük. Duyarlılık, gerçek pozitif oranı temsil eden, hatırlama için başka bir terimdir. Öte yandan özgüllük, negatif sayısına bölünen gerçek negatiflerin sayısıdır. Duyarlılığı tamamlar ve olumsuz durumların doğru bir şekilde tanımlanmasına odaklanır.
Şimdi, Matthews korelasyon katsayısını tartışalım. Başlangıçta biyolojideki protein ikincil yapı tahminlerini değerlendirmek için tasarlanan bu katsayı, gerçek ve tahmin edilen etiketler arasındaki korelasyonu ölçer. Pearson korelasyon katsayısının ikili sınıflandırma karşılığı olarak düşünülebilir. Pearson r'ye benzer şekilde, Matthews korelasyon katsayısı -1 ile 1 arasında değişir ve 1, gerçek ve tahmin edilen etiketler arasında mükemmel bir eşleşme olduğunu gösterir. Bir sınıfın diğerinden önemli ölçüde daha fazla örneğe sahip olduğu dengesiz sınıf problemlerinde özellikle yararlıdır.
Bu ölçümleri hesaplamak için scikit-learn tarafından sağlanan Precision_score, Recall_score, f1_score ve matthews_corrcoef gibi işlevleri kullanabilirsiniz. Bu işlevler, gerçek etiketleri ve tahmin edilen etiketleri girdi olarak alır ve karşılık gelen metrik değerleri döndürür. Alternatif olarak, bu ölçümleri ızgara arama ve hiperparametre ayarlamada kullanarak istenen ölçümü bir dizi bağımsız değişkeni olarak sağlayabilirsiniz.
Çok sınıflı problemler için kesinlik, hatırlama, F1 puanı veya Matthews korelasyon katsayısı gibi ölçümleri kullanmak istediğinizde bir geçici çözüm uygulamanız gerekir. Bir yaklaşım, scikit-learn'den make_scorer işlevini kullanmaktır. Bu işlev, belirli bir metrik için puanlama nesnesi oluşturmanıza olanak tanır.
Örneğin, çok sınıflı bir problem için F1 puanını kullanmak istiyorsanız, make_scorer kullanarak bir puanlayıcı nesne oluşturabilir ve ortalama parametresini "makro" veya "mikro" olarak ayarlayabilirsiniz. "Makro" seçeneği, her sınıf için bağımsız olarak metriği hesaplar ve ardından ortalamayı alırken, "mikro" seçeneği, tüm sınıflardaki gerçek pozitiflerin, yanlış negatiflerin ve yanlış pozitiflerin toplam sayısını dikkate alır.
"Makro" ve "mikro" ortalama alma arasındaki seçimin soruna ve analizinizin özel gereksinimlerine bağlı olduğuna dikkat etmek önemlidir.
Bu metrikleri ayrı ayrı kullanmanın yanı sıra, ızgara arama ve hiperparametre ayarlamada da uygulayabilirsiniz. Puanlama metriği olarak sınıflandırma doğruluğunu kullanmak yerine, ızgara arama sürecinde istenen metriği bir dizi argümanı olarak sağlayabilirsiniz. Bu, yalnızca doğruluğa güvenmekten daha kapsamlı bir değerlendirme sağlayarak modelinizi seçilen metriğe göre optimize etmenize olanak tanır.
Çok sınıflı problemlerle çalışırken ve bu ölçümleri uygularken, ortalama alma seçeneklerini anlamanın ve özel ihtiyaçlarınıza göre uygun yöntemi seçmenin çok önemli olduğunu unutmayın.
Özetle, bu videoda sınıflandırma modelleri için kesinlik, hatırlama, F1 puanı ve Matthews korelasyon katsayısı gibi ek değerlendirme ölçütlerini ele aldık. Bu metrikler, gerçek pozitifler, yanlış pozitifler ve yanlış negatifler gibi faktörleri göz önünde bulundurarak bir sınıflandırıcının performansına ilişkin değerli bilgiler sağlar. Bu ölçümleri kullanarak, modelinizin ne kadar iyi performans gösterdiğini daha iyi anlayabilir ve analiz veya araştırmanızda bilinçli kararlar alabilirsiniz. Bir sonraki videoda, sınıflandırma görevlerinde değerlendirme teknikleri hakkındaki bilgimizi genişleterek, dengeli doğruluğu, alıcı işletim karakteristiği (ROC) eğrilerini ve ikili metrikleri çok sınıflı ayarlara genişletmeyi inceleyeceğiz.
12.3 Dengeli Doğruluk (L12 Model Değerlendirme 5: Performans Metrikleri)
12.3 Dengeli Doğruluk (L12 Model Değerlendirme 5: Performans Metrikleri)
Pekala, şimdi, sınıflandırma görevlerinde sınıf dengesizliği problemleriyle uğraşırken özellikle yardımcı olan dengeli doğruluk kavramını inceleyelim. Sınıf dengesizliği, bir sınıfın başka bir sınıftan çok daha fazla sayıda etikete sahip olması durumunda ortaya çıkar. Bunu göstermek için, İris çiçekleri, özellikle İris setosa, İris versicolor ve İris virginica örneğini kullanarak çok sınıflı bir sınıflandırma problemini ele alalım.
Tipik olarak, tahmin doğruluğunu karışıklık matrisinin köşegenindeki değerleri toplayarak ve bunu toplam örnek sayısına bölerek hesaplarız. Verilen örnekte, Class Zero için 3, Class One için 769 ve Class Two için 18 etiketimiz var. Gördüğünüz gibi, sınıflarda bir dengesizlik var, Birinci Sınıf diğer iki sınıfa göre daha fazla örneğe sahip. Normal doğruluğu hesaplarsak, öncelikle Birinci Sınıf örneklerin yüksek sayısından etkilenerek %80 civarında olacaktır.
Ancak, düzenli doğruluk, özellikle tüm sınıflar için dengeli tahminler elde etmeye odaklanılması gerektiğinde, modelin performansının doğru bir temsilini sağlamayabilir. Bu gibi durumlarda dengeli doğruluk metriği, her sınıfa eşit ağırlık vererek daha adil bir değerlendirme sağlamayı amaçlar.
Dengeli doğruluğu hesaplamak için, her sınıfı pozitif sınıf olarak kabul ediyoruz ve geri kalan sınıfları negatif sınıfta birleştiriyoruz. Örneğin, önce Class Zero'ya odaklanalım. Class Zero'yu pozitif sınıf olarak ele alıyoruz ve Class One ile Class Two'yu negatif sınıf olarak birleştiriyoruz. Karışıklık matrisini analiz ederek, Sınıf Sıfır için gerçek pozitifleri, gerçek negatifleri, yanlış pozitifleri ve yanlış negatifleri belirleyebiliriz. Bu süreç her sınıf için tekrarlanarak ayrı ikili sınıflandırma problemleri oluşturulur.
Python'da, dengeli doğruluğu hesaplamak için mlxtend kitaplığından doğruluk_skor işlevini kullanabilirsiniz. Bu işlev, scikit-learn'ün doğruluk_skoruna benzer şekilde çalışır, ancak ikili sınıflandırma doğruluğunu hesaplamak için ek işlevsellik içerir. Yöntemi ikili olarak belirterek ve pozitif etiketi sağlayarak, her sınıf için ikili doğruluğu hesaplayabilirsiniz. Ek olarak, sınıf başına ortalama doğruluğu doğrudan hesaplamak için ortalama parametresini "makro" veya "mikro" olarak kullanabilirsiniz.
Sağlanan örnekte, karışıklık matrisi yeniden oluşturulur ve düzenli doğruluk, sınıf başına ortalama doğruluk (dengeli doğruluk) ve ikili doğruluklar hesaplanır. İkili doğruluklar, pozitif etiket olarak ayrı ayrı ele alınan her bir sınıfa karşılık gelir. İkili doğrulukların ortalamasını alarak dengeli doğruluğu elde edersiniz. Bu durumda dengeli doğruluk yaklaşık %86'dır.
Dengeli doğruluk veya sınıf başına ortalama doğruluk, bir sınıflandırıcının sınıf dengesizliği olan çok sınıflı problemlerdeki performansının adil bir değerlendirmesini sağlar. Her sınıfı eşit olarak ele alır ve modelin tüm sınıfları doğru bir şekilde tahmin etme becerisine ilişkin içgörüler sunar.
Devam edelim, şimdi makine öğrenimindeki bir diğer önemli değerlendirme metriği olan Alıcı Çalışma Karakteristik (ROC) eğrisini tartışalım. ROC eğrisi, bir ikili sınıflandırıcının performansının grafiksel bir temsilidir ve farklı sınıflandırma eşiklerinde gerçek pozitif oranı (TPR) ile yanlış pozitif oranı (FPR) arasındaki değiş tokuşa ilişkin değerli bilgiler sağlar.
ROC eğrisini anlamak için önce gerçek pozitif oranı (TPR) ve yanlış pozitif oranı (FPR) tanımlayalım. Duyarlılık veya hatırlama olarak da bilinen TPR, sınıflandırıcı tarafından doğru bir şekilde tanımlanan gerçek pozitif örneklerin oranını ölçer. Gerçek pozitiflerin sayısı, gerçek pozitiflerin ve yanlış negatiflerin toplamına bölünerek hesaplanır:
TPR = Gerçek Pozitifler / (Gerçek Pozitifler + Yanlış Negatifler)
Öte yandan, yanlış pozitif oranı (FPR), yanlış bir şekilde pozitif olarak sınıflandırılan gerçek negatif örneklerin oranını ölçer. Yanlış pozitiflerin sayısı, yanlış pozitiflerin ve gerçek negatiflerin toplamına bölünerek hesaplanır:
FPR = Yanlış Pozitifler / (Yanlış Pozitifler + Gerçek Negatifler)
ROC eğrisini oluşturmak için, sınıflandırıcının tahminleri, sınıflandırma puanlarına veya olasılıklarına göre sıralanır. Sınıflandırma eşiğini değiştirerek farklı TPR ve FPR değerleri üretebiliriz. Tüm örnekleri pozitif olarak sınıflandıran eşikten başlayarak (1 TPR ve 1 FPR ile sonuçlanır), daha az örneği pozitif olarak sınıflandırarak eşiği kademeli olarak düşürürüz ve sonuç olarak hem TPR'yi hem de FPR'yi azaltırız.
Her bir eşik değeri için TPR'yi FPR'ye karşı çizmek bize ROC eğrisini verir. Eğri, sınıflandırıcının çeşitli çalışma noktalarındaki performansını gösterir; ideal senaryo, tüm eşik değerleri için yüksek TPR ve düşük FPR'yi gösteren, sol üst köşeyi kucaklayan bir eğridir.
ROC eğrisine ek olarak, buradan elde edilen bir diğer önemli metrik de ROC Eğrisinin Altındaki Alan'dır (AUC-ROC). AUC-ROC, ROC eğrisi altındaki alanı hesaplayarak sınıflandırıcının genel performansını nicelendirir. Mükemmel bir sınıflandırıcının AUC-ROC'si 1'dir, bu da FPR'yi 0'ı korurken TPR'yi 1'e ulaştığını gösterir. Tersine, rastgele bir sınıflandırıcının AUC-ROC'si 0,5'tir, çünkü şanstan daha iyi performans göstermez.
ROC eğrisi ve AUC-ROC, seçilen sınıflandırma eşiğinden bağımsız olarak bir ikili sınıflandırıcının performansının kapsamlı bir analizini sağlar. Farklı sınıflandırıcıları veya aynı sınıflandırıcının farklı ayarlarını karşılaştırmamıza izin vererek, model seçimi hakkında bilinçli kararlar alınmasını sağlar.
Python'da ROC eğrisini ve AUC-ROC'yi hesaplamak için scikit-learn gibi çeşitli kitaplıklar uygun işlevler sunar. Bu işlevler, gerçek etiketleri ve tahmin edilen olasılıkları veya puanları girdi olarak alır ve AUC-ROC değerinin yanı sıra ROC eğrisi için FPR, TPR ve eşikleri döndürür.
Özetle, ROC eğrisi ve AUC-ROC, ikili sınıflandırıcıların performansını değerlendirmek ve karşılaştırmak için değerli araçlardır. Farklı sınıflandırma eşiklerinde gerçek pozitif ve yanlış pozitif oranları arasındaki değiş tokuşa ilişkin öngörüler sağlayarak, model seçiminde bilinçli karar vermeye olanak tanır.
12.4 Alıcı Çalışma Özelliği (L12 Model Değerlendirme 5: Performans Metrikleri)
12.4 Alıcı Çalışma Özelliği (L12 Model Değerlendirme 5: Performans Metrikleri)
Tartışma konusu, alıcı işletim karakteristiği (ROC) eğrisi etrafında döner. Alıcı işletim karakteristiği (ROC) eğrisi olarak da bilinen bu eğri, karmaşık adından dolayı kulağa tekerleme gibi gelebilir. "Alıcı işletim karakteristiği" terimi, radyo yön değiştirme gibi teknolojilerle çalışan radar alıcı operatörlerinin alanından gelmektedir. Başlangıçta, bu bağlamda kullanıldı. Bununla birlikte, iki temel ölçümü birleştirme yeteneği nedeniyle makine öğrenimi alanında popülerlik kazanmıştır: gerçek pozitif oranı ve yanlış pozitif oranı.
ROC eğrisi, tahmin eşiği değiştirilerek oluşturulur. Bunu açıklamak için bir örnek ele alalım. İkili sınıflandırma problemlerinde iki sınıfımız vardır: Class Zero ve Class One. Basit bir ikili sınıflandırma kararına sahip olmak yerine, her örneğe bir sınıf üyelik olasılığı atayabiliriz. Bu olasılık, lojistik regresyon, k-en yakın komşular veya karar ağaçları gibi çeşitli sınıflandırıcılar kullanılarak belirlenebilir. Örneğin, k-en yakın komşu durumunda, sınıf üyelik olasılığı, komşulukta bir sınıfın diğerine olan oranı olarak hesaplanabilir.
K-en yakın komşu algoritmasını kullanan bir örneği ele alalım. Diyelim ki bir dizi komşumuz var ve belirli bir örnek için sınıf üyelik olasılığını belirlemek istiyoruz. En yakın beş komşudan üçünün Sıfır Sınıfına ve ikisinin Birinci Sınıfa ait olduğunu gözlemlersek, sınıf üyelik olasılığı Sıfır Sınıfı için 3/5 yani 0,6 ve Birinci Sınıf için 2/5 olarak hesaplanır. 0.4 olan Bu olasılıklar bir eşiğe göre ayarlanabilir.
Eşik, Class Zero ve Class One arasında karar verdiğimiz noktayı temsil eder. Örneğin, eşiği 0,5 olarak ayarlarsak, 0,5'in üzerindeki herhangi bir olasılık Birinci Sınıf olarak sınıflandırılır ve 0,5'in altındaki herhangi bir olasılık, Sınıf Sıfır olarak sınıflandırılır. Lojistik regresyonda eşik olarak genellikle 0,5 kullanılır. Bununla birlikte, eşik keyfi olabilir ve gerçek pozitif oranı, yanlış pozitif oranı veya başka herhangi bir kriter için optimize etmek isteyip istemediğimize bağlı olarak hedeflerimize bağlıdır. Eşik seçimi, eşitlik durumunda alt sınıfın seçilmesi gibi bir eşitliği bozma kuralını da içerir.
Alıcı işletim karakteristiği (ROC) eğrisi, y ekseninde gerçek pozitif oranı (TPR) ve x ekseninde yanlış pozitif oranı (FPR) çizerek bir sınıflandırıcının performansını gösterir. Eğri üzerindeki her nokta farklı bir eşik değerine karşılık gelir. Eşiği değiştirerek, sınıflandırıcının performansının gerçek pozitif oranı ve yanlış pozitif oranı açısından nasıl etkilendiğini gözlemleyebiliriz. Eğri, sınıflandırıcının farklı eşik değerlerine duyarlılığını gösterir ve davranışını kapsamlı bir şekilde analiz etmemizi sağlar.
Doğruluk açısından, sınıf atamasını belirlemek için genellikle 0,5 gibi sabit bir eşik değeri kullanırız. Bununla birlikte, alıcı çalışma karakteristik eğrisi için, eşik değerini değiştirerek sınıflandırıcının hassasiyetini keşfediyoruz. Bunu yaparak, değişen eşiklerin yanlış pozitif oranı ve gerçek pozitif oranı üzerindeki etkisini değerlendirebiliriz. Eğri, 0,3, 0,4, 0,5, 0,6 gibi farklı eşiklere karşılık gelen farklı noktaları görüntüler. Eğri üzerindeki her nokta, sınıflandırıcının belirli bir eşik için performansını temsil eder.
Şimdi eşik kavramını ve onun sınıf üyeliği olasılığıyla ilişkisini inceleyelim. Daha önce, x ekseninde bir özelliği ve kaydırılan karar sınırını gösteren bir şekil görmüştük. Ancak, bu yalnızca anlamaya yardımcı olacak bir soyutlamaydı. Gerçekte, x ekseni, sınıf üyelik olasılığını temsil eder.
O yüzden kaldığımız yerden devam ederek kod parçacığını daha detaylı anlatacağım. Birinci sınıf için olasılıkları hesapladıktan sonra, farklı eşikler için yanlış pozitif oranı (fpr) ve gerçek pozitif oranı (tpr) hesaplamak için scikit-learn'deki roc_curve işlevini kullanırız. Roc_curve işlevi, gerçek etiketleri (y_true) ve tahmin edilen olasılıkları (y_scores) girdi olarak alır ve fpr, tpr ve eşikleri döndürür.
Ardından, alıcı işletim karakteristik eğrisinin (AUC-ROC) altındaki alanı hesaplamak için roc_auc_score işlevini kullanırız. Bu metrik, sınıflandırıcının tüm olası eşiklerdeki performansını özetleyen tek bir değer sağlar. Daha yüksek bir AUC-ROC, daha iyi sınıflandırma performansını gösterir. AUC-ROC'yi hem eğitim hem de test setleri için ayrı ayrı hesaplıyoruz.
Son olarak, Matplotlib kullanarak ROC eğrisini çiziyoruz. Çizim, eğitim seti için ROC eğrisini mavi ve test seti turuncu olarak gösterir. Ayrıca daha iyi yorumlama için olay örgüsüne etiketler ve bir açıklama ekliyoruz.
ROC eğrilerini görselleştirerek ve AUC-ROC'yi hesaplayarak, sınıflandırıcının performansını değerlendirebilir ve bunu eğitim ve test setleri arasında karşılaştırabiliriz. AUC-ROC 1'e yakınsa, yüksek gerçek pozitif oranı ve düşük yanlış pozitif oranı ile iyi bir sınıflandırıcı olduğunu gösterir. Öte yandan, 0,5'e yakın bir AUC-ROC, rastgele veya etkisiz bir sınıflandırıcı önerir.
Özet olarak, kod parçacığı, ikili bir sınıflandırma problemi için değerlendirme ölçütleri olarak alıcı işletim karakteristiği (ROC) eğrisinin ve eğri altındaki alanın (AUC) nasıl kullanılacağını gösterir. ROC eğrisi, farklı tahmin eşiklerinde gerçek pozitif oranı ile yanlış pozitif oranı arasındaki dengeyi görselleştirirken, AUC-ROC, sınıflandırıcının performansını ölçmek için tek bir değer sağlar.
12.5 İkili Metriği Çok Sınıflı Problemlere Genişletme (L12 Model Değerlendirme 5: Performans Metrikleri)
12.5 İkili Metriği Çok Sınıflı Problemlere Genişletme (L12 Model Değerlendirme 5: Performans Metrikleri)
Bu derste, çok sınıflı ayarlarla çalışacak şekilde genişletilebilen çeşitli sınıflandırıcıları tartıştık. Karar ağaçları, k-en yakın komşular, gradyan artırma, rasgele ormanlar ve diğer sınıflandırıcılar doğal olarak çok sınıflı problemleri çözer. Bununla birlikte, ikili sınıflandırma için daha uygun olan lojistik regresyon veya destek vektör makineleri gibi sınıflandırıcılarla karşılaşabilirsiniz. Bu gibi durumlarda, bu ikili sınıflandırıcıları birden çok sınıfı işleyecek şekilde genişletmenin yollarını bulmamız gerekir.
Bir yaklaşım, OvR veya OvA olarak da bilinen "bire karşı dinlenme" veya "bire karşı hepsi" stratejisidir. Bu yaklaşım, çok sınıflı problemin ayrı ikili sınıflandırma problemlerine bölünmesini içerir. Her sınıf, bir ikili sınıflandırıcıda pozitif sınıf olarak ele alınırken, geri kalan sınıflar negatif sınıf olarak ele alınır. Örneğin, üç sınıfımız varsa (sarı daireler, kırmızı kareler ve mavi üçgenler), üç ikili sınıflandırıcı yaratırız: biri sarı daireleri diğerlerine göre sınıflandırmak için, biri diğerlerine karşı kırmızı kareler için ve biri de diğerlerine karşı mavi üçgenler için. dinlenmek. Eğitim sırasında, üç sınıflandırıcıyı da uyguluyoruz ve tahmin sırasında, üç sınıflandırıcıyı da çalıştırıyoruz ve en yüksek güven puanına sahip olanı seçiyoruz.
Başka bir yaklaşım, her bir sınıf çifti için bir ikili sınıflandırıcı yerleştirdiğimiz "bire karşı bir" stratejisidir. Üç sınıfımız varsa, üç ikili sınıflandırıcımız olur: biri sarı daireleri kırmızı karelere karşı, biri sarı daireleri mavi üçgenlere karşı ve biri kırmızı kareleri mavi üçgenlere göre sınıflandırmak için. Tahmin sırasında, tüm sınıflandırıcıları çalıştırır ve son sınıf etiketini belirlemek için çoğunluk oylamasını kullanırız.
Hem OvR hem de OvO stratejileri, ikili sınıflandırıcıları çok sınıflı problemleri ele alacak şekilde genişletmemize izin verir. Bununla birlikte, OvO, birden çok sınıflandırıcının sığdırılmasını gerektirdiğinden, özellikle sınıf sayısı fazla olduğunda, hesaplama açısından pahalı olabilir.
Çok sınıflı sınıflandırıcıların performansını değerlendirirken, birden çok sınıfı işlemek için ikili sınıflandırma ölçümlerini genişletmemiz gerekir. Bunu yapmak için iki yaygın yaklaşım, mikro ve makro ortalama almadır. Mikro ortalama, tüm sınıflardaki gerçek pozitifleri ve yanlış pozitifleri toplayarak kesinlik, hatırlama ve F1 puanının hesaplanmasını içerir. Makro ortalama, her sınıf için kesinlik, geri çağırma ve F1 puanını ayrı ayrı hesaplamayı ve ardından bunların ortalamasını almayı içerir. Mikro ortalama, her örneği veya tahmini eşit şekilde ele alırken, makro ortalama, tüm sınıfları eşit olarak ağırlıklandırır. Ek olarak, her etiket için gerçek örneklerin sayısını hesaba katarak sınıf dengesizliğini dikkate alan ağırlıklı yaklaşım vardır.
Scikit-learn'de kesinlik, geri çağırma ve F1 puanı gibi sınıflandırma metriklerini kullanırken ortalama alma yöntemini (mikro, makro veya ağırlıklı) belirleyebilirsiniz. Örneğin, sırasıyla mikro veya makro ortalamalı metriği hesaplamak için averaj='mikro' veya averaj='makro' kullanabilirsiniz. Ayrıca, roc_auc_score işlevi kullanılarak hesaplanabilen alıcı işletim karakteristiği (ROC) ve eğri altındaki alan (AUC) puanı da vardır. ROC AUC için varsayılan ortalama alma yöntemi makrodur.
Sınıf dengesizliği ile başa çıkmak, çok sınıflı sınıflandırmada başka bir zorluktur. Aşırı örnekleme ve yetersiz örnekleme gibi teknikler bu sorunu çözmek için kullanılabilir. Dengesiz öğrenme kitaplığı, sınıf dengesizliğini ele almak için ek yöntemler sağlar ve scikit-learn ile uyumludur.
Genel olarak, çok sınıflı sınıflandırmada model değerlendirmesi, ikili sınıflandırıcıları genişletmeyi, değerlendirme ölçütleri için uygun ortalama alma yöntemlerini seçmeyi ve sınıf dengesizliğini dikkate almayı içerir. Bu derste tüm detayları ele alamasak da, bu konular hakkında daha fazla bilgi sağlayan dengesiz-öğrenme kitaplığı belgeleri gibi kaynaklar var.