Micro Average vs Macro Performa rata-rata dalam pengaturan klasifikasi Multi Kelas


103

Saya mencoba pengaturan klasifikasi multi kelas dengan 3 kelas. Distribusi kelas miring dengan sebagian besar data termasuk dalam 1 dari 3 kelas. (label kelas menjadi 1,2,3, dengan 67,28% dari data termasuk dalam label kelas 1, data 11,99% di kelas 2, dan sisanya di kelas 3)

Saya melatih classifier multiclass pada dataset ini dan saya mendapatkan kinerja berikut:

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

Saya tidak yakin mengapa semua Micro rata-rata. pertunjukan adalah sama dan juga mengapa rata-rata kinerja Makro sangat rendah.


1
tidak bisakah Anda melihat pada individu yang benar-benar positif, dll. sebelum rata-rata? juga, rata-rata makro cenderung lebih rendah dari rata
oW_

Apakah Mikro dan Makro ukuran-F adalah khusus untuk klasifikasi atau pengambilan teks, atau mereka dapat digunakan untuk masalah pengenalan atau klasifikasi ..... Jika demikian di mana kita bisa mendapatkan signifikansi dari masing-masing atau referensi lainnya ...
idrees

2
Bukankah Presisi Rata-Rata Mikro sama dengan Akurasi set data? Dari apa yang saya mengerti, untuk Micro Average Precision Anda menghitung jumlah semua positif sejati dan membaginya dengan jumlah semua positif benar ditambah jumlah semua positif palsu. Jadi pada dasarnya Anda membagi jumlah prediksi yang diidentifikasi dengan benar dengan jumlah total prediksi. Di mana itu berbeda dari perhitungan akurasi? Mengapa kita membutuhkan istilah presisi khusus baru yang membuat segalanya lebih rumit, bukan hanya menempel pada nilai akurasi? Tolong buktikan saya salah sehingga saya bisa tidur nyenyak.
Nico Zettler

2
@NicoZettler Anda benar. Presisi rata-rata mikro dan daya ingat rata-rata mikro sama dengan akurasi ketika setiap titik data ditetapkan tepat satu kelas. Mengenai pertanyaan kedua Anda, metrik mikro-rata-rata berbeda dari akurasi keseluruhan ketika klasifikasi multi-label (setiap titik data dapat ditugaskan lebih dari satu label) dan / atau ketika beberapa kelas dikecualikan dalam kasus multi-kelas. Lihat scikit-learn.org/stable/modules/… .
Johnson

Jawaban:


146

Mikro dan makro rata-rata (untuk metrik apa pun) akan menghitung hal-hal yang sedikit berbeda, dan dengan demikian interpretasinya berbeda. Rata-rata makro akan menghitung metrik secara independen untuk setiap kelas dan kemudian mengambil rata-rata (karenanya memperlakukan semua kelas secara merata), sedangkan rata-rata mikro akan mengumpulkan kontribusi semua kelas untuk menghitung metrik rata-rata. Dalam pengaturan klasifikasi multi-kelas, rata-rata mikro lebih disukai jika Anda menduga ada ketidakseimbangan kelas (yaitu Anda mungkin memiliki lebih banyak contoh satu kelas daripada kelas lainnya).

Untuk menggambarkan alasannya, ambil contoh presisi . Bayangkan Anda memiliki sistem klasifikasi multi-kelas One-vs-All (hanya ada satu output yang benar per contoh) dengan empat kelas dan angka-angka berikut ketika diuji:Pr=TP(TP+FP)

  • Kelas A: 1 TP dan 1 FP
  • Kelas B: 10 TP dan 90 FP
  • Kelas C: 1 TP dan 1 FP
  • Kelas D: 1 TP dan 1 FP

Anda dapat melihat dengan mudah bahwa , sedangkan .PrA=PrC=PrD=0.5PrB=0.1

  • Rata-rata makro akan menghitung:Pr=0.5+0.1+0.5+0.54=0.4
  • Mikro-rata-rata akan menghitung:Pr=1+10+1+12+100+2+2=0.123

Ini adalah nilai yang sangat berbeda untuk presisi. Secara intuitif, dalam rata-rata makro presisi "baik" (0,5) dari kelas A, C dan D berkontribusi untuk mempertahankan presisi keseluruhan "baik" (0,4). Meskipun ini benar secara teknis (lintas kelas, presisi rata-rata adalah 0,4), ini agak menyesatkan, karena sejumlah besar contoh tidak diklasifikasikan dengan benar. Contoh-contoh ini sebagian besar sesuai dengan kelas B, sehingga mereka hanya berkontribusi 1/4 terhadap rata-rata meskipun merupakan 94,3% dari data pengujian Anda. Rata-rata mikro akan secara memadai menangkap ketidakseimbangan kelas ini, dan membawa rata-rata presisi keseluruhan turun ke 0,123 (lebih sesuai dengan ketepatan kelas B yang mendominasi (0,1)).

Untuk alasan komputasi, kadang-kadang mungkin lebih nyaman untuk menghitung rata-rata kelas dan kemudian rata-rata makro. Jika ketidakseimbangan kelas diketahui sebagai masalah, ada beberapa cara untuk mengatasinya. Pertama adalah melaporkan tidak hanya rata-rata makro, tetapi juga standar deviasinya (untuk 3 kelas atau lebih). Lain adalah untuk menghitung rata-rata makro tertimbang, di mana setiap kontribusi kelas rata-rata tertimbang oleh jumlah relatif contoh yang tersedia untuk itu. Dalam skenario di atas, kami memperoleh:

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

Deviasi standar yang besar (0,173) telah memberi tahu kita bahwa rata-rata 0,4 tidak berasal dari ketepatan seragam di antara kelas-kelas, tetapi mungkin lebih mudah untuk menghitung rata-rata makro tertimbang, yang pada dasarnya adalah cara lain menghitung rata-rata mikro .


10
Jawaban ini layak mendapatkan lebih banyak suara, karena ini membantu membangun pemahaman mengapa mikro dan makro berperilaku berbeda daripada hanya mendaftar formula (dan itu adalah konten asli).
steffen

2
Bagaimana ini menjelaskan perbedaan nilai makro dalam pertanyaan awal?
shakedzy

3
Jika Anda membalik skenario yang digambarkan dalam balasan, dengan kelas besar berkinerja lebih baik daripada yang kecil, Anda akan mengharapkan untuk melihat rata-rata mikro lebih tinggi dari rata-rata makro (yang merupakan perilaku yang dilaporkan dalam pertanyaan). Nilai makro yang berbeda lebih atau kurang diharapkan, karena Anda mengukur berbagai hal (presisi, ingat ...). Mengapa rata-rata mikro semuanya sama, saya percaya adalah pertanyaannya.
pythiest

4
Saya tidak setuju dengan pernyataan bahwa rata-rata mikro lebih disukai daripada makro jika terjadi ketidakseimbangan dataset. Bahkan, untuk skor F, makro lebih disukai daripada mikro karena yang pertama memberikan kepentingan yang sama untuk setiap kelas sedangkan yang berikutnya memberikan kepentingan yang sama untuk setiap sampel (yang berarti semakin banyak jumlah sampel, semakin banyak yang dikatakan memiliki skor akhir sehingga mendukung kelas mayoritas seperti akurasi). Sumber: 1. cse.iitk.ac.in/users/purushot/papers/macrof1.pdf 2. clips.uantwerpen.be/~vincent/pdf/microaverage.pdf
shahensha

3
Apakah "rata-rata makro tertimbang" selalu akan sama dengan rata-rata mikro? Dalam Scikit-Learn, definisi "weighted" sedikit berbeda: "Hitung metrik untuk setiap label, dan temukan rata-rata, terbobot oleh dukungan (jumlah instance sebenarnya untuk setiap label)." Dari dokumen untuk Skor F1.
willk

20

Posting Asli - http://rushdishams.blogspot.in/2011/08/micro-and-macro-average-of-precision.html


Dalam metode Mikro-rata-rata, Anda meringkas masing-masing positif benar, positif salah, dan negatif palsu sistem untuk perangkat yang berbeda dan menerapkannya untuk mendapatkan statistik.

Tricky, tetapi saya menemukan ini sangat menarik. Ada dua metode dimana Anda bisa mendapatkan statistik rata-rata pengambilan informasi dan klasifikasi.

1. Metode Mikro-rata-rata

Dalam metode Mikro-rata-rata, Anda meringkas masing-masing positif benar, positif salah, dan negatif palsu sistem untuk perangkat yang berbeda dan menerapkannya untuk mendapatkan statistik. Misalnya, untuk satu set data, sistem

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

Kemudian presisi (P1) dan recall (R1) akan menjadi dan57.14%=TP1TP1+FP180%=TP1TP1+FN1

dan untuk set data yang berbeda, sistem

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

Kemudian presisi (P2) dan recall (R2) akan menjadi 68,49 dan 84,75

Sekarang, rata-rata presisi dan daya ingat sistem menggunakan metode Micro-average

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

F-Score Mikro rata-rata hanya akan menjadi rata-rata harmonik dari kedua angka ini.

2. Metode rata-rata makro

Metode ini lurus ke depan. Ambil saja rata-rata presisi dan daya ingat sistem pada perangkat yang berbeda. Misalnya, presisi rata-rata makro dan penarikan kembali sistem untuk contoh yang diberikan adalah

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

Skor-rata-rata Makro akan menjadi rata-rata harmonik dari kedua angka ini.

Kecocokan Metode rata-rata makro dapat digunakan ketika Anda ingin tahu bagaimana kinerja sistem secara keseluruhan di seluruh set data. Anda tidak boleh membuat keputusan khusus dengan rata-rata ini.

Di sisi lain, mikro-rata-rata bisa menjadi ukuran yang berguna ketika dataset Anda bervariasi ukurannya.


21
Anda harus memberi kredit pada posting blog ini ?
xiaohan2012

3
Yeah @ xiaohan2012, dia baru saja menyalin jawaban.
Manuel G

Ini adalah jawaban pertama saya di Stack overflow, saya tidak yakin bagaimana melakukan ini. Bisakah Anda menyarankan edit. Saya akan menerimanya. Terima kasih
Rahul Reddy Vemireddy

Mungkin perlu dicatat bahwa skor F1 di sini tidak harus sama dengan skor rata-rata makro yang biasa digunakan (seperti yang diterapkan dalam scikit atau dijelaskan dalam makalah ini ). Biasanya, skor F1 dihitung untuk setiap kelas / set secara terpisah dan kemudian rata-rata dihitung dari skor F1 yang berbeda (di sini, dilakukan dengan cara yang berlawanan: pertama menghitung presisi / penarikan rata-rata makro dan kemudian skor-F1 ).
Milania

11

Dalam pengaturan multi-kelas, presisi dan daya ingat rata-rata mikro selalu sama.

P=cTPccTPc+cFPcR=cTPccTPc+cFNc
mana c adalah label kelas.

Karena dalam pengaturan multi-kelas Anda menghitung semua contoh palsu ternyata

cFPc=cFNc

Karenanya P = R. Dengan kata lain, setiap Prediksi Salah tunggal akan menjadi False Positive untuk sebuah kelas, dan setiap Negatif Tunggal akan menjadi False Negative untuk sebuah kelas. Jika Anda memperlakukan kasus klasifikasi biner sebagai klasifikasi dua kelas dan menghitung ketelitian rata-rata mikro dan memanggilnya akan sama.

Jawaban yang diberikan oleh Rahul adalah dalam hal rata-rata presisi biner dan penarikan kembali dari banyak dataset. Dalam hal ini presisi dan penarikan rata-rata mikro berbeda.


2

Begitulah seharusnya. Saya memiliki hasil yang sama untuk penelitian saya. Awalnya terasa aneh. Tetapi ketepatan dan daya ingat harus sama ketika mikro-rata-rata hasil dari multi-class-label classifier tunggal. Ini karena jika Anda menganggap kesalahan klasifikasi c1 = c2 (di mana c1 dan c2 adalah 2 kelas yang berbeda), kesalahan klasifikasi adalah positif palsu (fp) berkenaan dengan c2 dan false negatif (fn) berkenaan dengan c1. Jika Anda menjumlahkan fn dan fp untuk semua kelas, Anda mendapatkan nomor yang sama karena Anda menghitung setiap kesalahan klasifikasi sebagai fp sehubungan dengan satu kelas dan fn sehubungan dengan kelas lain.


0

Saya pikir alasan mengapa rata-rata makro lebih rendah dari rata-rata mikro dijelaskan dengan baik oleh jawaban pythiest (kelas yang mendominasi memiliki prediksi yang lebih baik sehingga kenaikan rata-rata mikro).

Tetapi fakta bahwa rata-rata mikro sama untuk skor Precision, Recall dan F1 adalah karena rata-rata mikro metrik ini menghasilkan Akurasi keseluruhan (karena rata-rata mikro menganggap semua kelas sebagai positif). Perhatikan bahwa jika Precision dan Recall sama maka skor F1 sama dengan precision / recall.

Adapun pertanyaan apakah "rata-rata makro tertimbang" selalu akan sama dengan "rata-rata mikro"? Saya melakukan beberapa percobaan dengan no berbeda. kelas dan ketidakseimbangan kelas yang berbeda dan ternyata ini tidak perlu benar.

Pernyataan ini dibuat dengan asumsi bahwa kami mempertimbangkan semua kelas dataset yang sama (berbeda dengan jawaban Rahul Reddy Vemireddy)


0

keuntungan menggunakan Skor Makro F1 adalah memberikan bobot yang sama untuk semua titik data, misalnya: mari kita anggap sebagai mikro F1 mengambil Jumlah semua Pengambilan dan Pengakuan label yang berbeda secara independen, jadi ketika kita memiliki ketidakseimbangan kelas seperti T1 = 90%, T2 = 80%, T3 = 5 maka F1 Mikro memberikan bobot yang sama untuk semua kelas dan tidak terpengaruh oleh penyimpangan dalam distribusi kelas log. Log loss. Ia menghukum penyimpangan kecil di kelas.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.