Sınıflandırma modellerini değerlendirmek için doğruluk neden en iyi önlem değildir?


107

Bu, dolaylı olarak burada defalarca sorulan genel bir sorudur, ancak tek bir yetkili cevaptan yoksundur. Referans için bu konuda ayrıntılı bir cevap almak çok iyi olurdu.

Tüm sınıflandırmalar arasında doğru sınıflandırmaların oranı olan doğruluk , çok basit ve “sezgisel” bir önlemdir, ancak dengesiz veriler için zayıf bir ölçü olabilir . Sezgimiz neden bizi burada yanlış yönlendiriyor ve bu önlemle ilgili başka sorunlar var mı?

Yanıtlar:


112

Diğer cevapların çoğu dengesiz sınıflara odaklanmaktadır. Evet, bu önemli. Ancak, doğruluğun dengeli sınıflarda bile sorunlu olduğunu savunuyorum.

Frank Harrell bunu blogunda şöyle yazmıştır: Sınıflandırma Doğruluğu ve Diğer Süreksiz Uygunsuz Doğruluk Puanlama Kurallarının Sebep Olduğu Tahmin ve Zarar .

Temel olarak, argümanı, alıştırmanızın istatistiksel bileşeninin, yeni örneğinizin her bir sınıfı için bir olasılık ortaya çıkardığınızda sona ermesidir. Bu öngörülen olasılıkları 0-1 sınıflandırmasına eşlemek, ötesinde yeni bir gözlemi 1'e 0 olarak sınıflandırdığınız bir eşik seçerek, istatistiklerin bir parçası değildir. . Bu bir parçası olan karar bileşeni. Ve burada, modelinizin olasılıksal çıktısına ihtiyacınız var - ama aynı zamanda gibi hususlar:(p^,1p^)

  • Yeni bir gözlemi sınıf 1'e karşı 0 olarak kabul etmeye karar vermenin sonuçları nelerdir? Daha sonra herkese ucuz bir pazarlama postası gönderir miyim? Yoksa büyük yan etkileri olan istilacı bir kanser tedavisi mi uyguluyorum?
  • "Doğru" 0'ı 1 olarak kabul etmenin sonuçları nedir ve tam tersi? Bir müşteriyi işaretler miyim? Birisini gereksiz tıbbi tedaviye maruz bırakmak?
  • "Sınıflarım" gerçekten ayrık mı? Yoksa klinik eşiklerin gerçekte sadece bilişsel kısayollar olduğu bir süreklilik (örneğin, kan basıncı) var mı? Öyleyse, şu anda "sınıflandırdığım" durumun eşiğin ne kadar ötesinde olduğu?
  • Ya da 1. sınıf olma olasılığı düşük ama olumlu bir olasılık aslında "daha fazla veri almak", "başka bir test çalıştırmak" anlamına mı geliyor?

Kararınızın sonuçlarına bağlı olarak, karar vermek için farklı bir eşik kullanacaksınız. Eğer eylem invaziv cerrahi ise, hastanın iki şeyden şikayetçi olarak sınıflandırılması için, eylemin iki aspirin önereceğinden çok daha yüksek bir olasılık gerekir. Veya sadece iki sınıf olmasına rağmen (hastaya karşı sağlıklı) üç farklı karar almanız bile mümkün: "eve gidin ve endişelenmeyin" - "başka bir sınav yapın çünkü elimizdeki sonuç yetersiz" vs. "hemen çalışın" .

Tahmini olasılıkları değerlendirmek doğru bir şekilde olduğu değil , bir eşik değeri ile karşılaştırmak için bunları eşlemek için eşiğe göre ve daha sonra transforme edilmiş değerlendirmek sınıflandırma. Bunun yerine, uygun . Bunlar, öngörülen olasılıkları haritalayan kayıp fonksiyonlarıdır ve gözlemlenen sonuçları, gerçek olasılıklar beklentisiyle en aza indirilen zarar değerlerine eşittir . Buradaki fikir, puanlama kuralı beklentisinin bir tahmini olarak, birden fazla (en iyi: çok sayıda) gözlemlenen sonuç ve buna karşılık gelen öngörülen sınıf üyeliği olasılıklarında değerlendirilen puanlama kuralı üzerinden ortalamayı almamızdır.(p^,1p^)( 0 , 1 ) ( 0 , 1 ) ( s , 1 - p )(0,1)(0,1)(p,1p)

Burada "uygun" un kesin olarak tanımlanmış bir anlamı olduğuna dikkat edin - uygun puanlama kuralları ve son olarak kesin puanlama kuralları gibi uygun olmayan puanlama kuralları vardır . Bu gibi puanlama kuralları , tahmin edici yoğunlukların ve sonuçların kayıp fonksiyonlarıdır. Doğru puanlama kuralları , öngörü yoğunluğu gerçek yoğunluk ise, beklentide en aza indirilen puanlama kurallarıdır . Kesinlikle doğru puanlama kuralları vardır kurallarını skorlanmasıdır sadece öngörü yoğunluk gerçek yoğunluk ise beklenti içinde minimize.

As Frank Harrell notları , doğruluk uygunsuz bir puanlama kuraldır. (Daha doğrusu, doğruluk hiç hatta bir puanlama kural değil : bkz cevabımı için Is doğruluk bir ikili sınıflandırma ortamda uygunsuz puanlama kuralı? ) Hiç hiç yordayıcılarını ve sadece bir flip varsa, bu, örneğin, görülebilir olasılıkları olan haksız bir madeni para . Her şeyi birinci sınıf olarak sınıflandırırsak ve herhangi bir sonucun ikinci sınıfta olma olasılığını% 40 göz ardı edersek doğruluk en üst seviyeye çıkarılır. (Burada, dengeli sınıflar için bile doğruluğun sorunlu olduğunu görüyoruz.) Uygun , tahminini tercih edecektir .(0.6,0.4)( 0.6 , 0.4 ) ( 1 , 0 )(0.6,0.4)(1,0) bir beklenti içinde. Özellikle, eşikte doğruluk süreksizdir: eşiği küçük bir küçük uca hareket ettirmek bir (veya çok) tahmin sınıfını değiştirebilir ve bütün doğruluğu ayrı bir miktar değiştirebilir. Bu çok az mantıklı.

Frank'in yukarıdan bağlantılı iki blog yazısında ve Frank Harrell Regresyon Modelleme Stratejileri'nin 10. Bölümünde daha fazla bilgi bulunabilir .

(Bu utanmadan benim önceki bir cevabımdan toplandı .)


DÜZENLE. Benim cevabım için yanlış bir sonuca yol açacaktır sonuç ölçümü olarak doğruluğunu kullanılarak Örnek maksimize doğruluğu yanlış kararlara yol açabilir bir umutla açıklayıcı örnek verir hatta dengeli sınıflar için .


6
@Tim Frank'in amacı (sitemizdeki ve başka yerlerdeki sayısız cevapta konuştuğu), anladığım gibi, bir sınıflandırma algoritması olasılıkları geri getirmezse, o zaman çöp ve kullanılmamalıdır. Dürüst olmak gerekirse, yaygın olarak kullanılan algoritmaların çoğu olasılıkları geri getirmektedir.
amip

6
Eski gözlemleri alan ve sadece sınıflandırmaları çıkaran bir algoritmanın, yukarıda belirtilenleri göz önünde bulundurmadan (örneğin, yanlış kararların maliyeti) istatistiği ve karar yönünü sınırlandırdığını söyleyebilirim. Küçük bir lig beyzbol takımı mı, bir grup inşaat malzemesi mi yoksa sadece kendin mi taşımak istediğinizi sormadan, size belirli bir araba türü öneren biri gibi. Yani böyle bir algoritmanın çöp olacağını da söyleyebilirim.
Stephan Kolassa

8
Bir cevap yazacaktım ama sonra gerek yoktu. Bravo. Bunu, öğrencilerimle istatistiksel modelleme ve karar verme arasında “endişelerin ayrılması” olarak tartışıyorum. Bu tür bir kavram mühendislik kültüründe çok derinlemesine dayanır.
Matthew Drury

8
@chainD: sınıflandırıcınız (hatırlayın, en yüksek doğruluğa sahip olanıdır ), "bu örnekteki herkes sağlıklı" diyorsa, hangi doktor veya analist hikayenin daha fazlası olduğuna inanır? Sonunda, analistin yapması için bir çağrı yapılması gerektiğine katılıyorum, ancak “herkes sağlıklı” analisti için% 95 /% 5 öngörüsü gibi kalıntı belirsizliğe dikkat çeken bir şeyden çok daha az faydalıdır.
Stephan Kolassa

11
@StephanKolassa'nın cevabı ve yorumları mükemmel. Bir başkası yorumda, hangi kültüre bağlı olduğunuza bağlı olarak bunun nasıl göründüğü konusunda bir fark olduğu ima edildi. Bu gerçekten durum böyle değil; sadece bazı alanların literatürü anlamak için uğraştığı, bazılarının anlamadığı. Örneğin, hava durumu tahminleri ön planda ve en azından 1951'den bu yana tahminci doğruluğunu değerlendirmek için uygun puanlama kurallarını kullandı.
Frank Harrell

78

Doğruluk kullandığımızda, yanlış pozitiflere ve yanlış negatiflere eşit maliyet atarız. Bu veri seti dengesiz olduğunda - bir sınıftaki örneklerin% 99'unun ve diğerinin yalnızca% 1'inin olduğunu söyleyin - maliyeti düşürmenin harika bir yolu var. Her vakanın çoğunluk sınıfına ait olduğunu tahmin edin,% 99 doğruluk elde edin ve erken eve gidin.

Her hataya verdiğimiz asıl maliyet eşit olmadığı zaman problem başlar. Nadir görülen ancak ölümcül bir hastalıkla baş edersek, hasta bir kişinin hastalığını teşhis etmeme maliyeti, sağlıklı bir kişiyi daha fazla teste gönderme maliyetinden çok daha yüksektir.

Genel olarak, genel en iyi önlem yoktur. En iyi önlem ihtiyaçlarınızdan elde edilir. Bir anlamda, bir makine öğrenme sorusu değil, bir iş sorusu. İki kişinin aynı veri kümesini kullanması, ancak farklı hedefler nedeniyle farklı ölçümler seçmesi yaygındır.

Doğruluk harika bir ölçümdür. Aslında, çoğu ölçüm harika ve birçok ölçümü değerlendirmeyi seviyorum. Ancak, bir noktada A veya B modelini kullanma konusunda karar vermeniz gerekir. Orada ihtiyacınıza en iyi şekilde uyan tek bir ölçüm kullanmanız gerekir.

Ekstra kredi için, analizden önce bu ölçümü seçin, böylece karar verirken dikkatiniz dağılmayacak.


3
Mükemmel cevap - Sadece makine öğreniminde yeni başlayanlar için daha net bir noktaya getirmek için birkaç düzenleme önerdim (bu soruya yönelik).
nekomatic

1
Bunun bir makine öğrenme sorunu olmadığı konusunda hemfikirim. Ancak bunun ele alınması, meta problemi üzerinde makine öğrenmesi yapılmasını içerecek ve makinenin sadece temel sınıflandırma bilgilerinin ötesinde bir tür verilere erişmesini gerektirecektir.
Shufflepants

3
Bunu sadece verinin bir fonksiyonu olarak görmüyorum, çünkü farklı hedefler farklı maliyet / model / performans / ölçütlere bağlı olabilir. Genel olarak, maliyet sorununun matematiksel olarak ele alınabileceğini kabul ediyorum. Ancak hastaların tedavi maliyeti gibi sorular tamamen farklı bilgilere dayanmaktadır. Meta veri için gerekli olan bu bilgiler genellikle makine öğrenme metodolojisi için uygun değildir, bu nedenle çoğu zaman farklı yöntemlerle ele alınır.
DaL

2
"Hastalığı olan bir kişiyi yanlış teşhis etmek" ile, "hastalığı olan bir kişiyi (hastalığa sahip olmadığı gibi) yanlış teşhis etmek" demek , değil mi? Çünkü bu ifade iki şekilde de yorumlanabilir.
Tanner Swett,

Haklısın Tanner. Daha net yapmak için testi değiştirdim.
DaL

20

Doğruluk ile sorun

Standart doğruluk, doğru sınıflandırmaların, yapılan sınıflandırma sayısına oranı olarak tanımlanmaktadır.

accuracy:=correct classificationsnumber of classifications

Bu nedenle, tüm sınıflar üzerinde genel bir önlemdir ve kısaca göreceğimiz gibi, gerçek bir yararlı testten başka bir kehanete anlatmanın iyi bir önlem olmadığını görürüz. Bir kehanet, her örnek için rastgele bir tahmin döndüren bir sınıflandırma işlevidir. Aynı şekilde, sınıflandırma işlevimizin sınıflandırma performansını da derecelendirmek istiyoruz. Doğruluk \ textit {olabilir}, eğer sınıf başına aynı miktarda örneğe sahipsek, ancak dengesiz bir örneklem doğruluğuna sahipsek, hiç de faydalı olmaz. Daha da ötesi, bir test yüksek bir kesinliğe sahip olabilir, ancak aslında daha düşük bir kesinliğe sahip bir testten daha kötü bir performans sergileyebilir.

ABC0.9

classify(sample):={Aif 

classify

classify(sample):=guess{Awith p =0.96Bwith p =0.02Cwith p =0.02

0.960.9+0.020.052=0.866Aclassify

Sınıf Başına Doğruluk

accuracy:=correct/(correct+incorrect)A1.00A0.331.000.00>0.5AABA

Hassasiyet ve özgüllük

Tıbbi testlerde duyarlılık, hastalığa sahip olduğu doğru tespit edilen kişiler ile hastalığa sahip olanların miktarı arasındaki oran olarak tanımlanır. Özgüllük, sağlıklı olarak doğru bir şekilde tanımlanmış insanlar ile gerçekten sağlıklı olan insanlar arasındaki oran olarak tanımlanır. Gerçekten hastalığı olan kişilerin miktarı, gerçek pozitif test sonuçlarının yanı sıra yanlış negatif test sonuçlarının miktarıdır. Aslında sağlıklı insanların miktarı gerçek negatif test sonuçlarının yanı sıra yanlış pozitif test sonuçlarının miktarıdır.

İkili Sınıflandırma

PNTnnFnn

sensitivity:=TPTP+FNspecificity:=TNTN+FP

TPFNTNFPαβαTααTα+FβαTβαTβ+FααββTββTβ+FαβTαβTα+Fβ

sensitivityα:=TαTα+Fβspecificityα:=TβTβ+Fαsensitivityβ:=TβTβ+Fαspecificityβ:=TαTα+Fβ

sensitivityα=specificityβspecificityα=sensitivityβ. Bunun anlamı, eğer sadece iki sınıfa sahipsek, sınıf başına duyarlılığa ve özgüllüğe ihtiyacımız yok demektir.

N-Ary Sınıflandırması

Sınıf başına duyarlılık ve özgüllük, yalnızca iki sınıfımız varsa kullanışsızdır, ancak bunu birden fazla sınıfa genişletebiliriz. Hassasiyet ve özgüllük şöyle tanımlanır:

sensitivity:=true positivestrue positives+false negativesspecificity:=true negativestrue negatives+false-positives

Tni(Fn,i)i(Fi,n)ni(Ti)T(n)nni(k(Fi,k))nni(Fn,i)ni(Fi,n)i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n). Özet olarak elimizde:

true positives:=Tntrue negatives:=i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n)false positives:=i(Fi,n)false negatives:=i(Fn,i)

sensitivity(n):=TnTn+i(Fn,i)specificity(n):=i(Ti)Tn+i(k(Fi,k))i(Fn,i)i(Fi,n)i(Ti)Tn+i(k(Fi,k))i(Fn,i)

Güven Tanıtımı

confidenceTn+i(Fi,n)nTn

confidence(n):=TnTn+i(Fi,n)

confidencenn

i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)

confidence(n)=i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)i(k(Fi,k))i(Fi,n)+i(Ti)Tn


Lütfen karışıklık matrisini kullanarak Ortalama Doğruluğu hesaplama örneğini verebilir misiniz?
Aadnan Farooq

Örneklerle daha ayrıntılı bir açıklamayı burada bulabilirsiniz: mroman.ch/guides/sensspec.html
mroman

Tekrar okumak, confidence_false tanımında bir hata var. Bunu kimsenin göremediğine şaşırdım. Bunu birkaç gün içinde düzeltirim.
mroman

8

Veri kümenizdeki dengesiz sınıflar

Kısacası: hayal edin, bir sınıfın% 99'u (elmalar diyor) ve başka bir sınıfın% 1'i veri kümenizde (muz diyor). Süper duper algoritmam, bu veri seti için şaşırtıcı bir% 99 doğruluk elde ediyor, göz atın:

return "it's an apple"

Zamanın% 99'unda haklı olacak ve bu nedenle% 99 doğruluk elde edecek. Algoritmamı satabilir miyim?

Çözüm: mutlak bir ölçü (doğruluk) kullanmayın, ancak her sınıfa göre bir ölçü birimi kullanın (orada bir sürü var, ROC AUC gibi)


Hayır, AUC de dengesiz veri seti için uygun değildir.
SiXUlm

@SiXUlm, bu konuda ayrıntılı bilgi verebilir misiniz?
Mayou36

P(D)/P(DC)P(T|D)P(F|DC)

Daha net bir örnek burada bulunabilir: quora.com/… . Jerry Ma'nın cevabına bir bak.
SiXUlm

Hala amacını anlamadım. Bu (Quora dahil) çözümde söylediklerimi ve tam olarak cevabımı desteklemiyor muyum? Mesele şu ki, öncelikler ağın performansını ölçen metriği etkilememelidir. Ne olduğunu en iyi optimize etmektir örneğin uygun, sorununuza tamamen bağlıdır olası her kesim . Yani bana bildirin: Bu performans priors için değişmez ama duyarlıdır a) beri, neden olduğu bu uygunsuz? b) başka ne düşünürdüm olduğu uygun ya hangi özellikleri gereklidir?
Mayou36

2

DaL cevabı tam olarak bu. Yumurta satmakla ilgili çok basit bir örnekle açıklayacağım.

21

21

Sınıflandırıcınız hata yapmazsa, beklediğiniz maksimum geliri elde edersiniz. Mükemmel değilse, o zaman:

  • 1
  • 1

Öyleyse, sınıflandırıcınızın doğruluğu tam olarak maksimum gelire ne kadar yakın olduğunuzdur. Mükemmel bir ölçüdür.

a

  • a
  • 2a

a=0.00120.001

Sınıflandırıcı, örneğin bir veritabanında ilgili belgeleri bulma ile ilgiliyse, alakasız bir belgeyi okurken "ne kadar" boşa harcanan zamanı, ilgili bir belgeyi bulmakla karşılaştırarak karşılaştırabilirsiniz.


1

Sınıflandırma doğruluğu, toplam tahmin sayısına bölünen doğru tahmin sayısıdır.

Doğruluk yanıltıcı olabilir. Örneğin, büyük bir sınıf dengesizliğinin olduğu bir problemde, bir model tüm tahminler için çoğunluk sınıfının değerini tahmin edebilir ve yüksek bir sınıflandırma doğruluğu elde edebilir. Bu nedenle, F1 puanı ve Brier puanı gibi ilave performans ölçütlerine ihtiyaç duyulmaktadır.


-3

R2

R2

Diğerlerinin de belirttiği gibi, doğrulukla ilgili başka bir problem, başarısızlığın fiyatına dolaysız bir kayıtsızlık - yani tüm yanlış sınıflandırmaların eşit olduğu varsayımıdır. Uygulamada değildirler ve yanlış sınıflandırmanın elde edilmesinin maliyetleri yüksek oranda konuya bağlıdır ve doğruluğu en üst düzeye çıkarmak yerine belirli bir tür yanlışlığı en aza indirmeyi tercih edebilirsiniz.


2
Hum. (1) Doğruluk değerlendirmesinin veya başka bir örnek dışı metrik değerlendirmenin anlaşılacağına karar verdim, bu nedenle doğruluğun daha fazla belirli bir aşırı yüklenme problemi olduğunu görmüyorum . (2) eğer A popülasyonu üzerine eğitilmiş bir modeli farklı bir B popülasyonuna uygularsanız , o zaman elmaları portakallarla karşılaştırıyorsunuz ve bunun kesinliğin belirli bir sorunun nasıl olduğunu gerçekten göremiyorum .
Stephan Kolassa

(1) Bununla birlikte, doğruluk için bir problemdir ve soru, doğruluğu altın standart olarak kullanmaktır. (2) Bir sınıflandırıcı oluşturmanın amacı, sadece elmalar değil portakallar üzerinde kullanmaktır. Antrenman verileriniz için bir iltihap olmak yerine verilerdeki (mevcut oldukları şekilde) temel sinyalleri yakalamak için yeterince genel olmalıdır.
James
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.