Doğrulukta iyileşmenin önemli olup olmadığını kontrol etme


14

Her şeyi iki kategoriye ayıran bir algoritmam olduğunu varsayalım. Diyelim ki 1000 test nesnesi üzerinde algoritmanın doğruluğunu ölçebilirim - düşünelim ki şeylerin% 80'i doğru sınıflandırılmıştır.

Diyelim ki algoritmayı bir şekilde değiştiriyorum, böylece şeylerin% 81'i doğru bir şekilde sınıflandırılıyor.

İstatistikler algoritmadaki gelişimimin istatistiksel olarak anlamlı olup olmadığı hakkında bir şey söyleyebilir mi? İstatistiksel anlamlılık kavramı bu durumda geçerli mi? Lütfen beni alakalı olabilecek bazı kaynaklara yönlendirin.

Çok teşekkürler.

Yanıtlar:


3

Kısacası, evet. İstatistiksel anlamlılık burada önemlidir. Sınıflandırma hatasına bakıyorsunuz (ya da burada verdiğiniz gibi doğruluk = 1- sınıflandırma hatası). Farklı 1000 numunedeki sınıflandırıcıları karşılaştırırsanız binom testini kullanabilirsiniz, eğer aynı 1000 numuneyse McNemar testini kullanmanız gerekir. Sınıflandırma hatasının ya gerçek sınıftan bağımsız olduğunu ya da gerçek sınıfların oranının potansiyel uygulamalarınızda aynı olduğunu varsaydığınız için, sınıflandırma hatasını bu şekilde sınamanın yeterli olmadığını unutmayın.

Bu, gerçek pozitif oran, yanlış pozitif oran veya AUC gibi önlemlere bakmanız gerektiği anlamına gelir. Hangi önlemin kullanılacağı ve nasıl test edileceği, sınıflandırıcınızın çıktısına bağlıdır. Sadece bir sınıf olabilir veya belirli bir sınıfa ait olma olasılığını veren sürekli bir sayı olabilir.


Bu harika teşekkürler. Aslında metin belgelerinin duyarlılık analizine bakıyorum - onları "pozitif" veya "negatif" olarak sınıflandırıyorum - insanların% 1 doğruluk iyileştirmesi ile özellik seçimini ince bir şekilde değiştirdiği birçok çalışma yayınlandı - ve yaz bunun hakkında bir makale. Bu vakaların çoğunda yazarların sınıflandırma doğruluğunda istatistiksel olarak anlamlı bir iyileşme için kanıt sağlamada başarısız olup olmadıklarını merak ediyorum.
Ben

McNemar'ın testi, modellerin önemli ölçüde farklı olup olmadığını söyler, bu da doğruluktaki farkın her zaman önemli olduğu anlamına gelmez (farklı modeller aynı doğruluğa sahip olabilir). Doğruluk artışının önemini doğrudan kontrol etmek için, doğruluk dağılımlarını haritalamak ve böylece farklı olup olmadıklarını tahmin etmek için birçok doğruluk tahmini yapmak istersiniz. Bu, modellerinizi birçok kez eğitmek anlamına gelir.
drevicko

3

As Erik dedi evet istatistiksel anlamlılık için bunu kontrol edebilirsiniz. Ancak, bir an için tam olarak ne kontrol etmek istediğinizi düşünün. Daha ilginç bir soru, gözlemlenen% 1'lik bir farkın verileri göz önüne alındığında , iddia edilen "geliştirilmiş" algoritmanın orijinalinden daha iyi (veya anlamlı olarak daha iyi) olduğunu sormak olabilir . "İstatistiksel anlamlılık" açısından soru sormak, tam tersi soru türüne yol açma eğilimindedir: İki algoritmanın aynı olduğu göz önüne alındığında, en azından bu kadar bir gelişme gözlemleme şansı% 5'ten az mıdır?

Bana göre, ikinci soru geriye dönük, ama bir şekilde standart haline geldi. İstatistiksel hipotez testindeki tartışma hakkında Wikipedia'ya bakabilirsiniz . Daha sonra Bayesci çıkarımla ilgilenebilirsiniz . Bayesian veri analizine gerçekten girmek istiyorsanız, Gelman ve arkadaşlarının "Bayesian Veri Analizine" bakabilir veya bu soruyu inceleyebilirsiniz .


2

Erik'in cevabını Michael'ın cevabına uygulamak :

Performans ölçüsünü seçerken Erik'in ifade ettiği düşünceyi de yapabilirsiniz.

Yanıtladıkları sorularla bu tür farklı önlemlere atıfta bulunmayı yararlı buluyorum (burada en tanıdığım tıbbi teşhis dilinde - ancak belki hastayı metin ve hastalık yerine spam ;-) ile değiştirebilirsiniz):

  • Duyarlılık: hasta gerçekten hastalığa sahipse, sınıflandırıcı bunu fark etme olasılığı nedir?

  • Özgüllük: Hastanın gerçekten hastalığı olmadığı göz önüne alındığında, sınıflandırıcının bunu gerçekleştirme olasılığı nedir?

  • Pozitif öngörücü değer: sınıflandırıcı hastanın hastalıklı olduğunu iddia ettiğinde, hasta gerçekten hastalığa yakalanma olasılığı nedir?

  • Negatif prediktif değer: sınıflandırıcı hastanın hastalıklı olmadığını iddia ettiğinde, hasta gerçekten hastalığa yakalanma ihtimali nedir?

Gördüğünüz gibi, öngörücü değerler doktorların ve hastaların gerçekten ilgilendiği şeydir. Bununla birlikte, neredeyse herkes sınıflandırıcısını hassasiyet ve özgüllük ile karakterize eder. Bunun nedeni, öngörücü değerlerin hastalığın prevalansını hesaba katması gerektiğidir ve bu, farklı hastalar için büyük ölçüde değişebilir (büyüklük sıraları!).

Sorunuz için daha fazla konu:

Eminim endişelenme hakkın vardır.

Erik'in her iki senaryosunu da bir örnek olarak ele alalım:

İşte bağımsız test örnekleri:

> binom.test (x = 810, n = 1000, p = 0.8)

    Exact binomial test

data:  810 and 1000 
number of successes = 810, number of trials = 1000, p-value = 0.4526
alternative hypothesis: true probability of success is not equal to 0.8 
95 percent confidence interval:
 0.7842863 0.8338735 
sample estimates:
probability of success 
                  0.81 

(sonuçlar farklı bir şekilde olsa bile, iki sınıflandırıcının yayınlanacağını varsayarak bu testin iki taraflı olduğunu unutmayın.)

Mümkün olan en iyi durum: Eşleştirilmiş test ve yeni sınıflandırıcı, eskisinin doğru olduğu tüm örnekler için de artı 10 tane daha:

> ## mc.nemar: best possible case
> oldclassif <- c (rep ("correct", 800), rep ("wrong", 200))
> newclassif <- c (rep ("correct", 810), rep ("wrong", 190))
> table (oldclassif, newclassif)
          newclassif
oldclassif correct wrong
   correct     800     0
   wrong        10   190
> mcnemar.test (oldclassif, newclassif)

    McNemar's Chi-squared test with continuity correction

data:  oldclassif and newclassif 
McNemar's chi-squared = 8.1, df = 1, p-value = 0.004427

( 1000'den 10'dan fazla örnek iki sınıflandırıcı tarafından farklı şekilde tahmin edildiği sürece p değeri büyülü 0.05'in altında kalır ).

P-değerleri yanlış soruya doğru cevap olsa bile, bunun biraz sıkı bir yer olduğuna dair bir işaret vardır.

Bununla birlikte, olağan bilimsel uygulama dikkate alındığında, bilinmeyen (yayınlanmamış) sayıda yeni özellik test edildi ve sadece biraz daha iyi çalışan özellik yayınlandı, yer daha da sıkılaşıyor. Ve sonra,% 80 sınıflandırıcı sadece% 79 klasifikatörün halefi olabilir ...

Almanca okumaktan hoşlanıyorsanız, Beck-Bornhold ve Dubben'in gerçekten güzel kitapları var. Doğru hatırlıyorsam, Mit an Wahrscheinlichkeit grenzender Sicherheit'in bu problemler hakkında çok güzel bir tartışması var. (İngilizce baskısı olup olmadığını bilmiyorum, başlığın oldukça gerçek bir çevirisi "Olasılıkla sınırlıdır")


1

Herhangi bir süreksiz uygunsuz puanlama kuralı (hassasiyet, özgüllük, sahte bir modelde optimize edilmiş sonuçlar elde edildiğinde doğru olarak sınıflandırılan oran gibi bir doğruluk skoru) kullanılmasını ve bunun yerine yeni katma değer için olasılık oranı testlerini veya kısmi F testlerini kullanmanızı şiddetle tavsiye ederim. değişkenler.

Oranları doğru sınıflandırılmış olarak görmenin birkaç yolundan biri, bir kategorideki toplam oran 0.9 ise, verileri yok sayarak ve her gözlemi bu kategoride olarak sınıflandırarak zamanın 0,9'u doğru olacaktır.


2
Evet, bazen doğruluk kullanımı berbat bir metriktir ve bazen de müthiş bir yöntemdir; değişir. Bu, sorunun ne hakkında olduğuna tamamen teğet gibi görünüyor. Soru, yeni bir algoritmanın bilinen bir metriğe göre daha iyi olup olmadığını belirlemekle ilgilidir, ilk etapta bir metrik seçmekle ilgili değildir.
Michael McGowan

Hedefleri ve fayda fonksiyonlarını dikkatlice tanımlamamız gerektiğini düşünüyorum ve eğer fayda fonksiyonlarını sağlamak istemiyorsak, sınıflandırma yapılırken etkin olarak kabul edilen fayda fonksiyonu için geri çözmemiz gerekir.
Frank Harrell

Bu kadar anonim downvotes için bir neden var mı?
chl

2
@chl Sorduğum soruyu gerçekten cevaplamadığım için indirgediğimi düşündüm.
Michael McGowan

@MichaelMcGowan Yeterince adil.
chl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.