Çok Ortalamalı Sınıflandırma Ortamında Mikro Ortalama vs Makro Ortalama Performans


102

3 sınıflı çoklu sınıflandırma sınıflandırma ayarını deniyorum. Sınıf dağılımı, 3 sınıfın 1'inde düşen verilerin çoğu ile çarpılır. (sınıf etiketleri 1,2,3'tür, verinin% 67,28'i sınıf 1'ine düşerken, sınıf 2'de% 11,99 ve sınıf 3'te kalır)

Bu veri kümesi üzerinde çok sınıflı bir sınıflandırıcı yetiştiriyorum ve şu performansı alıyorum:

                    Precision           Recall           F1-Score
Micro Average       0.731               0.731            0.731
Macro Average       0.679               0.529            0.565

Neden tüm Micro avg emin değilim. performanslar eşittir ve ayrıca Makro ortalama performansların bu kadar düşük olmasının nedenidir.


1
ortalamadan önce bireysel gerçek pozitiflere vb. bakamaz mısın? ayrıca, makro ortalamalar mikro ortalamalardan daha düşük olma eğilimindedir
oW_

... Are Mikro ve Makro F-ölçer metin sınıflandırma veya alma özeldir, yoksa her önemini ya da başka herhangi refrence alabileceğiniz Eğer öyleyse bunlar ..... herhangi tanıma veya sınıflandırma problemi için kullanılabilir
Idrees

1
Micro Average Precision bir veri setinin Doğruluk oranı ile aynı değil mi? Anladığım kadarıyla, Micro Average Precision için, tüm gerçek pozitiflerin toplamını hesaplar ve tüm gerçek pozitiflerin toplamına artı tüm hatalı pozitiflerin toplamına bölersiniz. Bu nedenle, temel olarak doğru tanımlanmış tahmin sayısını, toplam tahmin sayısına bölün. Bunun doğruluk hesaplamasından farkı nedir? Neden doğruluk değerine bağlı kalmak yerine işleri daha karmaşık hale getiren yeni bir özel hassasiyet terimine ihtiyacımız var? Lütfen yanlış olduğumu kanıtla, böylece huzur içinde uyuyabilirim.
Nico Zettler

1
@NicoZettler Haklısın. Mikro ortalama hassasiyet ve mikro ortalama geri çağırma, her veri noktası tam olarak bir sınıfa atandığında doğruluğa eşittir. İkinci sorunuza göre, mikro-ortalamalı metrikler, sınıflandırmalar çok etiketli olduğunda (her veri noktasına birden fazla etiket atanabilir) ve / veya bazı sınıflar çok sınıflı durumda hariç tutulduğunda genel doğruluktan farklıdır. Bkz. Scikit-learn.org/stable/modules/… .
Johnson

Yanıtlar:


144

Mikro ve makro ortalamalar (hangi metrik için olursa olsun) biraz farklı şeyler hesaplar ve bu yüzden yorumlamaları farklılık gösterir. Bir makro-ortalama, metriği her sınıf için bağımsız olarak hesaplar ve daha sonra ortalamayı alır (bu nedenle tüm sınıfları eşit şekilde işleme tabi tutar), oysa bir mikro ortalama, tüm sınıfların ortalama metriği hesaplamak için katkısını toplar. Çok sınıflı bir sınıflandırma kurulumunda, sınıf dengesizliği olabileceğinden şüpheleniyorsanız, mikro-ortalama tercih edilir (yani, bir sınıftan diğer sınıflardan çok daha fazla örneğe sahip olabilirsiniz).

Nedenini göstermek için, örneğin hassasiyeti . Diyelim ki Dört Sınıflı ve test edildiğinde aşağıdaki sayıları içeren bir Sınıf Karşıt-All (örneğin yalnızca bir doğru sınıf çıktısı var) çok sınıflı bir sınıflandırma sistemine sahip olduğunuzu düşünelim :Pr=TP(TP+FP)

  • A sınıfı: 1 TP ve 1 FP
  • B sınıfı: 10 TP ve 90 FP
  • Sınıf C: 1 TP ve 1 FP
  • D sınıfı: 1 TP ve 1 FP

, olduğunu kolayca görebilirsiniz .PrA=PrC=PrD=0.5PrB=0.1

  • Sonra bir makro-ortalama hesaplar:Pr=0.5+0.1+0.5+0.54=0.4
  • Bir mikro ortalama hesaplar:Pr=1+10+1+12+100+2+2=0.123

Bunlar hassasiyet için oldukça farklı değerler. Sezgisel olarak, makro ortalamada, A, C ve D sınıflarının "iyi" kesinlik derecesi (0,5), "iyi" bir genel kesinlik sürdürmeye katkıda bulunur (0,4). Bu teknik olarak doğru olsa da (sınıflar arasında, ortalama hassasiyet 0,4'tür), çok sayıda örnek uygun şekilde sınıflandırılmadığından, bu biraz yanıltıcıdır. Bu örnekler ağırlıklı olarak B sınıfına karşılık gelir, bu nedenle test verilerinizin% 94,3'ünü oluşturmasına rağmen ortalamaya 1/4 oranında katkıda bulunurlar. Mikro ortalama, bu sınıf dengesizliğini yeterince yakalayacak ve genel hassasiyet ortalamasını 0.123'e düşürecektir (baskın B sınıfının (0.1) hassasiyetine paralel olarak).

Hesaplamalı nedenlerden dolayı, bazen sınıf ortalamalarını hesaplamak ve daha sonra bunları makro ortalamalamak daha uygun olabilir. Sınıf dengesizliğinin bir sorun olduğu biliniyorsa, bunun birkaç yolu vardır. Biri sadece makro ortalamayı değil aynı zamanda standart sapmasını da bildirmektir (3 veya daha fazla sınıf için). Bir diğeri, ortalamaya her bir sınıf katkısının, bunun için mevcut olan göreceli örnek sayısına göre ağırlıklandırıldığı ağırlıklı bir makro ortalamasını hesaplamaktır. Yukarıdaki senaryoda, şunları elde ederiz:

Prmacromean=0.25·0.5+0.25·0.1+0.25·0.5+0.25·0.5=0.4 Prmacrostdev=0.173

Prmacroweighted=0.0189·0.5+0.943·0.1+0.0189·0.5+0.0189·0.5=0.009+0.094+0.009+0.009=0.123

Büyük standart sapma (0.173) bize zaten 0.4 ortalamanın sınıflar arasında tek tip bir hassasiyetten kaynaklanmadığını, fakat aslında mikro-ortalamayı hesaplamanın başka bir yolu olan ağırlıklı makro-ortalamayı hesaplamanın daha kolay olabileceğini söylüyor. .


10
Bu cevap daha fazla avantajı hak ediyor, çünkü sadece formülleri listelemek yerine mikro ve makronun neden farklı davrandığını anlamada yardımcı oluyor (ve orijinal içerik).
steffen

2
Bu, orijinal sorudaki farklı makro değerlerini nasıl açıklar?
shakedzy

3
Cevapta çizilen senaryoyu çevirirseniz, büyük sınıf küçük olanlardan daha iyi performans gösteriyorsa, mikro ortalamanın makro ortalamasından daha yüksek olduğunu görmeyi beklersiniz (soruda bildirilen davranış budur). Farklı değerleri ölçtüğünüz için makro değerlerinin farklı olması beklenenden daha az ya da çok azdır (hassasiyet, hatırlama ...). Mikro ortalamaların neden hepsi aynı olduğuna inanıyorum.
18:18

4
Dengesiz veri setleri durumunda mikro ortalamanın makro yerine tercih edilmesi gerektiği fikrine katılmıyorum. Aslında, F puanları için, makro, her sınıfa eşit derecede önem verdiğinden, mikro, mikroda tercih edilir, oysa daha sonra her örneğe eşit önem verir (bu, daha fazla finalde olduğu anlamına gelir. çoğunluğu sınıfları çok doğruluk lehine). Kaynaklar: 1. cse.iitk.ac.in/users/purushot/papers/macrof1.pdf 2. clips.uantwerpen.be/~vincent/pdf/microaverage.pdf
shahensha

3
"Ağırlıklı makro ortalama" her zaman mikro ortalamaya eşit mi olacak? Scikit-Learn'de "ağırlıklı" tanımı biraz farklıdır: "Her etiket için metrikleri hesaplayın ve destekle ağırlıklandırılmış ortalamalarını bulun (her etiket için gerçek örneklerin sayısı.") F1 Score için dokümanlardan .
18'de

20

Orijinal Gönderi - http://rushdishams.blogspot.in/2011/08/micro-and-macro-average-of-precision.html


Mikro-ortalama yönteminde, bireysel bireysel pozitif pozitifleri, yanlış pozitifleri ve sistemin farklı kümelerdeki yanlış negatiflerini toplar ve bunları istatistiklere ulaşmak için uygularsınız.

Zor, ama bunu çok ilginç buldum. Bu kadar ortalama bir bilgi alma ve sınıflandırma istatistiği elde etmenin iki yöntemi vardır.

1. Mikro Ortalama Yöntemi

Mikro-ortalama yönteminde, bireysel bireysel pozitif pozitifleri, yanlış pozitifleri ve sistemin farklı kümelerdeki yanlış negatiflerini toplar ve bunları istatistiklere ulaşmak için uygularsınız. Örneğin, bir veri kümesi için, sistemin

True positive (TP1)  = 12
False positive (FP1) = 9
False negative (FN1) = 3

Ardından hassasiyet (P1) ve geri çağırma (R1) ve57.14%=TP1TP1+FP180%=TP1TP1+FN1

ve farklı bir veri kümesi için, sistemin

True positive (TP2)  = 50
False positive (FP2) = 23
False negative (FN2) = 9

Ardından hassasiyet (P2) ve geri çağırma (R2) 68.49 ve 84.75 olacaktır.

Şimdi, Micro-average yöntemini kullanarak sistemin ortalama hassasiyeti ve geri çağrılması,

Micro-average of precision=TP1+TP2TP1+TP2+FP1+FP2=12+5012+50+9+23=65.96

Micro-average of recall=TP1+TP2TP1+TP2+FN1+FN2=12+5012+50+3+9=83.78

Mikro-Ortalama F-Skoru bu iki figürün harmonik ortalaması olacaktır.

2. Makro Ortalama Yöntemi

Yöntem yalındır. Sadece hassasiyetin ortalamasını alın ve sistemi farklı setlerde geri çağırın. Örneğin, verilen ortalama için makro ortalama hassasiyet ve sistemin hatırlanması

Macro-average precision=P1+P22=57.14+68.492=62.82 Macro-average recall=R1+R22=80+84.752=82.25

Makro-ortalama F-Skoru, sadece bu iki rakamın harmonik ortalaması olacaktır.

Uygunluk Makro ortalama yöntemi, sistemin veri kümelerinde genel olarak nasıl performans gösterdiğini bilmek istediğinizde kullanılabilir. Bu ortalamaya ilişkin herhangi bir karar vermemelisiniz.

Diğer taraftan, veri kümenizin boyutu değiştiğinde mikro ortalama yararlı bir önlem olabilir.


21
bu blog gönderisine kredi vermeli misiniz ?
xiaohan2012

3
Evet @ xiaohan2012, cevabı kopyaladı.
Manuel G

Bu yığın taşma konusundaki ilk cevabımdı, bunun nasıl yapılacağından emin değildim. Bir düzenleme önerebilir misiniz? Kabul edeceğim. Teşekkürler
Rahul Reddy Vemireddy

Buradaki F1 puanının, yaygın olarak kullanılan makro-ortalama F1 puanı ile aynı olması gerekmediğine dikkat etmek gerekebilir ( scikit'te uygulandığı veya bu makalede anlatıldığı gibi ). Genellikle, her sınıf için ayrı ayrı F1 puanı hesaplanır / ayrı olarak ayarlanır ve daha sonra ortalama, farklı F1 puanlarından hesaplanır (burada, tam tersi şekilde yapılır: önce makro-ortalamalı hassasiyet / hatırlama ve sonra F1-puanı hesaplanır. ).
Milania

11

Çok sınıflı bir ortamda, mikro-ortalamalı hassasiyet ve hatırlama her zaman aynıdır.

P=cTPccTPc+cFPcR=cTPccTPc+cFNc
burada c sınıf etiketidir.

Çok sınıflı bir ayarda tüm yanlış örnekleri , bu

cFPc=cFNc

Dolayısıyla, P = R. Başka bir deyişle, her bir Yanlış Tahmin, bir sınıf için Yanlış Olumlu olacaktır ve her Tek Olumsuz, bir sınıf için Yanlış bir Olumsuz olacaktır. İkili bir sınıflandırma davasını iki sınıflı bir sınıflandırma olarak ele alırsanız ve mikro-ortalamalı kesinliği hesaplarsanız ve hatırlarsanız aynı olacaktır.

Rahul tarafından verilen cevap, ortalama ikili hassasiyet ve çoklu veri setinden geri çağırma durumundadır. Bu durumda mikro ortalama hassasiyet ve hatırlama farklıdır.


2

Böyle olması gerekiyor. Araştırmam için de aynı sonucu aldım. İlk başta garip görünüyordu. Ancak, çok sınıflı tek etiketli sınıflandırıcının sonucunun mikro ortalaması alınırken hassasiyet ve hatırlama aynı olmalıdır. Bunun nedeni, eğer bir sınıflandırma c1 = c2 (burada c1 ve c2'nin 2 farklı sınıf olduğu), yanlış sınıflamanın c2'ye göre yanlış bir pozitif (fp) ve c1'e göre yanlış negatif (fn) olmasıdır. Tüm sınıflar için fn ve fp'yi toplarsanız, aynı numarayı alırsınız, çünkü her bir yanlış sınıflandırmayı bir sınıfa göre fp ve diğer sınıfa göre fn olarak sayıyorsunuzdur.


0

Makro ortalamanın mikro ortalamanın altında olmasının sebebi, pythiest'in cevabı ile iyi açıklandığını düşünüyorum (egemen sınıf daha iyi tahminlere sahiptir ve bu nedenle mikro ortalama artar).

Ancak, mikro ortalamanın Precision, Recall ve F1 skorları için eşit olması, bu ölçümlerin ortalama alınmasının genel Doğruluk ile sonuçlanmasından kaynaklanmaktadır (micro avg tüm sınıfları pozitif olarak kabul eder). Hassasiyet ve Geri Çağırma eşit ise, F1 puanının yalnızca hassasiyete / geri çağırmaya eşit olduğunu unutmayın.

"Ağırlıklı makro ortalama" her zaman "mikro ortalama" ya eşit olacak mı? Farklı no ile bazı deneyler yaptım. sınıfların ve farklı sınıf dengesizliklerinin ortaya çıktığı ve bunun doğru olmadığı ortaya çıktı.

Bu açıklamalar aynı veri setindeki tüm sınıfları göz önünde bulundurduğumuzu varsaymaktadır (Rahul Reddy Vemireddy'nin cevabının aksine)


0

Makro F1 Puanını kullanmanın avantajı, tüm veri noktalarına eşit ağırlık vermesidir, örneğin: F1 micro, farklı etiketlerin tüm Geri Çağırma ve Presession'larının toplamını bağımsız olarak aldığından, yani sınıf dengesizliğine sahip olduğumuzda düşünelim. T1 =% 90 gibi, T2 =% 80, T3 = 5 ve sonra F1 Micro tüm sınıfa eşit ağırlık verir ve sınıf günlüğünün dağılımındaki sapmalardan etkilenmez Log kayıdı, sınıftaki küçük sapmalara ceza verir

Licensed under cc by-sa 3.0 with attribution required.