Mengapa akurasi bukan ukuran terbaik untuk menilai model klasifikasi?

107

Ini adalah pertanyaan umum yang ditanyakan secara tidak langsung beberapa kali di sini, tetapi tidak memiliki jawaban otoritatif tunggal. Alangkah baiknya memiliki jawaban terperinci untuk ini sebagai referensi.

Akurasi , proporsi klasifikasi yang benar di antara semua klasifikasi, adalah ukuran yang sangat sederhana dan sangat "intuitif", namun itu mungkin ukuran yang buruk untuk data yang tidak seimbang . Mengapa intuisi kita menyesatkan kita di sini dan apakah ada masalah lain dengan ukuran ini?

Tim
sumber

Jawaban:

112

Sebagian besar jawaban lain fokus pada contoh kelas yang tidak seimbang. Ya ini penting. Namun, saya berpendapat bahwa akurasi bermasalah bahkan dengan kelas yang seimbang.

Frank Harrell telah menulis tentang ini di blog-nya: Klasifikasi vs Prediksi dan Kerusakan yang Disebabkan oleh Akurasi Klasifikasi dan Aturan Penilaian Akurasi Tidak Tepat Lainnya yang Tidak Terputus .

Pada dasarnya, argumennya adalah bahwa komponen statistik dari latihan Anda berakhir ketika Anda mengeluarkan probabilitas untuk setiap kelas sampel baru Anda. Memetakan probabilitas yang diprediksi ini ke klasifikasi 0-1, dengan memilih ambang batas di mana Anda mengklasifikasikan pengamatan baru karena 1 vs 0 bukan bagian dari statistik lagi . Itu adalah bagian dari komponen keputusan . Dan di sini, Anda memerlukan keluaran probabilistik dari model Anda - tetapi juga pertimbangan seperti:(p^,1p^)

  • Apa konsekuensi dari memutuskan untuk memperlakukan pengamatan baru sebagai kelas 1 vs 0? Apakah saya kemudian mengirimkan surat pemasaran murah ke semua pelanggan? Atau apakah saya menerapkan perawatan kanker invasif dengan efek samping yang besar?
  • Apa konsekuensi dari memperlakukan "benar" 0 sebagai 1, dan sebaliknya? Apakah saya akan menandai pelanggan? Menundukkan seseorang ke perawatan medis yang tidak perlu?
  • Apakah "kelas" saya benar-benar terpisah? Atau adakah sebenarnya sebuah kontinum (misalnya, tekanan darah), di mana ambang klinis pada kenyataannya hanyalah jalan pintas kognitif? Jika demikian, seberapa jauh melampaui ambang batas dalam kasus saya "mengklasifikasikan" sekarang?
  • Atau apakah probabilitas rendah tetapi positif untuk menjadi kelas 1 sebenarnya berarti "dapatkan lebih banyak data", "jalankan tes lain"?

Bergantung pada konsekuensi keputusan Anda, Anda akan menggunakan ambang yang berbeda untuk membuat keputusan. Jika tindakannya adalah operasi invasif, Anda akan memerlukan probabilitas yang jauh lebih tinggi untuk klasifikasi pasien Anda sebagai menderita sesuatu daripada jika tindakannya adalah merekomendasikan dua aspirin. Atau Anda mungkin memiliki tiga keputusan berbeda walaupun hanya ada dua kelas (sakit vs sehat): "pulanglah dan jangan khawatir" vs. "jalankan tes lain karena yang kita miliki tidak meyakinkan" vs "operasikan segera" .

Cara yang benar untuk menilai probabilitas yang diprediksi adalah tidak membandingkannya dengan ambang batas, memetakannya ke berdasarkan ambang batas dan kemudian menilai transformasi klasifikasi. Sebagai gantinya, seseorang harus menggunakan tepat . Ini adalah fungsi kerugian yang memetakan probabilitas yang diprediksi dan hasil pengamatan yang sesuai dengan nilai kerugian, yang diminimalkan dalam ekspektasi oleh probabilitas sebenarnya . Idenya adalah bahwa kita mengambil rata-rata atas aturan penilaian yang dievaluasi pada beberapa hasil (terbaik: banyak) yang diamati dan probabilitas keanggotaan kelas yang diprediksi yang sesuai, sebagai perkiraan ekspektasi aturan penilaian.(p^,1p^)( 0 , 1 ) ( 0 , 1 ) ( p , 1 - p )(0,1)(0,1)(p,1p)

Perhatikan bahwa "benar" di sini memiliki makna yang didefinisikan secara tepat - ada aturan penilaian yang tidak tepat serta aturan penilaian yang tepat dan akhirnya aturan penilaian yang benar-benar tepat . Aturan penilaian seperti itu adalah fungsi kerugian dari kepadatan dan hasil prediksi. Aturan penilaian yang tepat adalah aturan penilaian yang diminimalkan dalam harapan jika kepadatan prediktif adalah kepadatan sebenarnya. Aturan penilaian yang benar-benar tepat adalah aturan penilaian yang hanya diminimalkan dalam harapan jika kepadatan prediktif adalah kepadatan sebenarnya.

Seperti yang dicatat oleh Frank Harrell , akurasi adalah aturan penilaian yang tidak tepat. (Lebih tepatnya, akurasi bahkan bukan aturan penilaian sama sekali : lihat jawaban saya untuk Apakah akurasi aturan penilaian yang tidak tepat dalam pengaturan klasifikasi biner? ) Ini dapat dilihat, misalnya, jika kita tidak memiliki prediktor sama sekali dan hanya sejumput koin yang tidak adil dengan probabilitas (0.6,0.4) . Akurasi dimaksimalkan jika kita mengklasifikasikan semuanya sebagai kelas pertama dan sepenuhnya mengabaikan probabilitas 40% bahwa hasil apa pun mungkin berada di kelas kedua. (Di sini kita melihat bahwa akurasi bermasalah bahkan untuk kelas yang seimbang.) Yang tepat akan lebih memilih (0.6,0.4) prediksi keharapan(1,0) . Secara khusus, akurasi terputus-putus dalam ambang batas: memindahkan ambang sedikit mungkin membuat satu (atau beberapa) prediksi mengubah kelas dan mengubah keseluruhan akurasi dengan jumlah yang berbeda. Ini tidak masuk akal.

Informasi lebih lanjut dapat ditemukan di dua posting blog Frank yang ditautkan di atas, serta dalam Bab 10 dari Strategi Pemodelan Regresi Frank Harrell .

(Ini tanpa malu disebutkan dari jawaban saya sebelumnya .)


SUNTING. Jawaban saya terhadap Contoh ketika menggunakan akurasi sebagai ukuran hasil akan mengarah pada kesimpulan yang salah memberikan contoh ilustratif di mana memaksimalkan akurasi dapat menyebabkan keputusan yang salah bahkan untuk kelas yang seimbang .

Stephan Kolassa
sumber
6
@Tim Frank's point (yang dia bahas dalam berbagai jawaban di situs kami dan di tempat lain), seperti yang saya pahami, adalah bahwa jika algoritma klasifikasi tidak mengembalikan probabilitas maka itu sampah dan tidak boleh digunakan. Sejujurnya, sebagian besar algoritma yang biasa digunakan mengembalikan probabilitas.
amoeba
6
Saya akan mengatakan bahwa suatu algoritma yang mengambil pengamatan masa lalu dan hanya menghasilkan klasifikasi tanpa memperhitungkan poin-poin di atas (misalnya, biaya salah-keputusan) mengonfigurasikan aspek statistik dan keputusan. Ini seperti seseorang merekomendasikan jenis mobil tertentu kepada Anda tanpa terlebih dahulu menanyakan apakah Anda ingin mengangkut tim bisbol liga kecil, sekelompok bahan bangunan, atau hanya diri Anda sendiri. Jadi saya juga akan mengatakan algoritma seperti itu akan menjadi sampah.
Stephan Kolassa
8
Saya akan menulis jawaban, tetapi kemudian tidak perlu. Bravo. Saya membahas ini dengan siswa saya sebagai "pemisahan keprihatinan" antara pemodelan statistik dan pengambilan keputusan. Jenis konsep ini sangat mengakar dalam budaya rekayasa.
Matthew Drury
8
@ chainD: jika classifier Anda (ingat, itu yang memiliki akurasi tertinggi ) mengatakan bahwa "semua orang dalam sampel ini sehat", lalu dokter atau analis apa yang akan percaya bahwa ada lebih banyak hal dalam cerita ini? Saya setuju bahwa pada akhirnya, ini adalah panggilan untuk analis, tetapi "semua orang sehat" jauh lebih tidak membantu analis daripada sesuatu yang menarik perhatian pada ketidakpastian residual seperti prediksi 95% / 5%.
Stephan Kolassa
11
Jawaban dan komentar @StephanKolassa luar biasa. Komentar orang lain menyiratkan bahwa ada perbedaan dalam cara ini dilihat tergantung pada budaya mana Anda menjadi bagian. Ini tidak benar-benar terjadi; hanya saja beberapa bidang berusaha memahami literatur dan yang lainnya tidak. Peramalan cuaca, misalnya, telah berada di garis depan dan telah menggunakan aturan penilaian yang tepat untuk menilai akurasi peramalan sejak setidaknya tahun 1951.
Frank Harrell
78

Ketika kami menggunakan akurasi, kami menetapkan biaya yang sama untuk positif palsu dan negatif palsu. Ketika kumpulan data itu tidak seimbang - katakan itu memiliki 99% contoh dalam satu kelas dan hanya 1% di kelas lain - ada cara yang bagus untuk menurunkan biaya. Memprediksi bahwa setiap instance milik kelas mayoritas, dapatkan akurasi 99% dan pulang lebih awal.

Masalahnya dimulai ketika biaya aktual yang kami tetapkan untuk setiap kesalahan tidak sama. Jika kita berurusan dengan penyakit langka tapi fatal, biaya kegagalan untuk mendiagnosis penyakit orang yang sakit jauh lebih tinggi daripada biaya mengirim orang sehat ke tes lebih lanjut.

Secara umum, tidak ada ukuran umum terbaik. Ukuran terbaik berasal dari kebutuhan Anda. Dalam arti tertentu, ini bukan pertanyaan pembelajaran mesin, tetapi pertanyaan bisnis. Adalah umum bahwa dua orang akan menggunakan kumpulan data yang sama tetapi akan memilih metrik yang berbeda karena tujuan yang berbeda.

Akurasi adalah metrik yang bagus. Sebenarnya, sebagian besar metrik hebat dan saya suka mengevaluasi banyak metrik. Namun, pada titik tertentu Anda harus memutuskan antara menggunakan model A atau B. Di sana Anda harus menggunakan metrik tunggal yang paling sesuai dengan kebutuhan Anda.

Untuk kredit tambahan, pilih metrik ini sebelum analisis, sehingga Anda tidak akan terganggu ketika membuat keputusan.

Dl
sumber
3
Jawaban yang bagus - Saya telah mengusulkan beberapa pengeditan hanya untuk mencoba dan memperjelas hal ini kepada para pemula dalam pembelajaran mesin (kepada siapa pertanyaan ini ditujukan)
otomatis
1
Saya tidak setuju bahwa ini bukan masalah pembelajaran mesin. Tetapi mengatasinya akan melibatkan melakukan pembelajaran mesin pada masalah meta dan mengharuskan mesin memiliki akses ke beberapa jenis data di luar informasi klasifikasi dasar.
Shufflepants
3
Saya tidak melihatnya sebagai fungsi hanya data karena tujuan yang berbeda dapat dikenakan biaya / model / kinerja / metrik yang berbeda. Saya setuju bahwa secara umum, masalah biaya dapat ditangani secara matematis. Namun pertanyaan seperti biaya perawatan pasien bergantung pada informasi yang sama sekali berbeda. Informasi ini diperlukan untuk data meta biasanya tidak cocok untuk metodologi pembelajaran mesin sehingga sebagian besar waktu itu ditangani dengan metode yang berbeda.
Dal
2
Dengan "salah mendiagnosis seseorang dengan penyakit", maksud Anda "salah mendiagnosis seseorang yang memiliki penyakit (tidak memiliki penyakit)", bukan? Karena ungkapan itu bisa ditafsirkan dengan cara baik.
Tanner Swett
Anda benar Tanner. Saya mengubah tes untuk membuatnya lebih jelas.
DaL
20

Masalah dengan akurasi

Akurasi standar didefinisikan sebagai rasio klasifikasi yang benar dengan jumlah klasifikasi yang dilakukan.

SebuahcckamurSebuahcy: =klasifikasi yang benarjumlah klasifikasi

Oleh karena itu, ini adalah ukuran keseluruhan dari semua kelas dan karena kita akan segera melihat itu bukan ukuran yang baik untuk mengatakan ramalan selain dari tes yang berguna sebenarnya. Oracle adalah fungsi klasifikasi yang mengembalikan tebakan acak untuk setiap sampel. Demikian juga, kami ingin dapat menilai kinerja klasifikasi dari fungsi klasifikasi kami. Akurasi \ textit {bisa} menjadi ukuran yang berguna jika kita memiliki jumlah sampel yang sama per kelas tetapi jika kita memiliki set sampel yang tidak akurat, akurasi sampel tidak berguna sama sekali. Terlebih lagi, tes dapat memiliki akurasi tinggi tetapi sebenarnya berkinerja lebih buruk daripada tes dengan akurasi lebih rendah.

Jika kita memiliki distribusi sampel sedemikian rupa sehingga 90 \% sampel milik kelas SEBUAH , 5 \% milik B dan 5 \% milik C maka fungsi klasifikasi berikut akan memiliki akurasi 0,9 :

clSebuahsssayafy(sSebuahmhalle): ={SEBUAHjika 

Namun, jelas mengingat bahwa kita tahu bagaimana clSebuahsssayafy bekerja bahwa ini tidak dapat memberitahu kelas terpisah sama sekali. Demikian juga, kita dapat membangun fungsi klasifikasi

clSebuahsssayafy(sSebuahmhalle): =kira{SEBUAHdengan p =0,96Bdengan p =0,02Cdengan p =0,02

yang memiliki akurasi 0.960.9+0.020.052=0.866 dan tidak akan selalu memprediksi A tapi masih mengingat bahwa kita tahu bagaimana classify bekerja jelas bahwa ia tidak dapat memberitahu kelas terpisah. Akurasi dalam hal ini hanya memberi tahu kita seberapa bagus fungsi klasifikasi kita dalam menebak. Ini berarti bahwa keakuratan bukanlah ukuran yang baik untuk menceritakan oracle selain dari tes yang bermanfaat.

Akurasi per Kelas

Kita bisa menghitung akurasi secara individual per kelas dengan memberikan fungsi klasifikasi kami hanya sampel dari kelas yang sama dan mengingat dan menghitung jumlah klasifikasi yang benar dan klasifikasi yang salah kemudian menghitung accuracy:=correct/(correct+incorrect) . Kami ulangi ini untuk setiap kelas. Jika kita memiliki fungsi klasifikasi yang dapat secara akurat mengenali kelas A tetapi akan menghasilkan perkiraan acak untuk kelas-kelas lain maka ini menghasilkan akurasi 1.00 untuk A dan akurasi 0.33untuk kelas lainnya. Ini sudah memberi kami cara yang jauh lebih baik untuk menilai kinerja fungsi klasifikasi kami. Sebuah oracle selalu menebak kelas yang sama akan menghasilkan akurasi per kelas 1.00 untuk kelas itu, tetapi 0.00 untuk kelas lainnya. Jika pengujian kami bermanfaat, semua akurasi per kelas harus >0.5 . Kalau tidak, tes kami tidak lebih baik dari kebetulan. Namun, akurasi per kelas tidak memperhitungkan false positive. Meskipun fungsi klasifikasi kami memiliki akurasi 100 \% untuk kelas A akan ada juga false positive untuk A (seperti B salah diklasifikasikan sebagai SEBUAH ).

Sensitivitas dan Spesifisitas

Dalam tes medis sensitivitas didefinisikan sebagai rasio antara orang yang diidentifikasi dengan benar memiliki penyakit dan jumlah orang yang benar-benar memiliki penyakit. Spesifisitas didefinisikan sebagai rasio antara orang yang diidentifikasi dengan benar sebagai sehat dan jumlah orang yang sebenarnya sehat. Jumlah orang yang benar-benar menderita penyakit ini adalah jumlah hasil tes positif sejati ditambah jumlah hasil tes negatif palsu. Jumlah orang yang benar-benar sehat adalah jumlah hasil tes negatif yang sebenarnya ditambah jumlah hasil tes positif palsu.

Klasifikasi Biner

Dalam masalah klasifikasi biner ada dua kelas P dan N . Tn mengacu pada jumlah sampel yang benar diidentifikasi sebagai milik kelas n dan Fn mengacu pada jumlah sampel yang werey palsu diidentifikasi sebagai milik kelas n . Dalam hal ini sensitivitas dan spesifisitas didefinisikan sebagai berikut:

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β. Ini berarti bahwa jika kita hanya memiliki dua kelas kita tidak perlu sensitivitas dan spesifisitas per kelas.

Klasifikasi N-Ary

Sensitivitas dan spesifisitas per kelas tidak berguna jika kita hanya memiliki dua kelas, tetapi kita dapat memperluasnya ke beberapa kelas. Sensitivitas dan spesifisitas didefinisikan sebagai:

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

Tni(Fn,i)i(Fi,n)nsaya(Tsaya)-T(n)nnsaya(k(Fsaya,k))nnsaya(Fn,saya)nsaya(Fsaya,n)saya(Tsaya)-T(n)+saya(k(Fn,saya))-saya(Fn,saya)-saya(Fsaya,n). Sebagai ringkasan, kami memiliki:

positif sejati: =Tnnegatif sejati: =saya(Tsaya)-T(n)+saya(k(Fn,saya))-saya(Fn,saya)-saya(Fsaya,n)positif palsu: =saya(Fsaya,n)negatif palsu: =saya(Fn,saya)

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)

Memperkenalkan Keyakinan

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

mroman
sumber
Bisakah Anda memberikan contoh penghitungan Mean Accuracy menggunakan matriks kebingungan.
Aadnan Farooq A
Anda dapat menemukan deskripsi yang lebih terperinci dengan contoh-contoh di sini: mroman.ch/guides/sensspec.html
mroman
Membacanya lagi ada kesalahan dalam definisi confidence_false. Saya terkejut tidak ada yang melihat itu. Saya akan memperbaikinya dalam beberapa hari ke depan.
mroman
8

Kelas yang tidak seimbang dalam dataset Anda

Singkatnya: bayangkan, 99% dari satu kelas (misalkan apel) dan 1% dari kelas lain ada dalam kumpulan data Anda (katakanlah pisang). Algoritma super duper saya mendapatkan akurasi 99% yang menakjubkan untuk set data ini, periksa:

return "it's an apple"

Dia akan benar 99% dari waktu dan karenanya mendapatkan akurasi 99%. Bisakah saya menjual algoritma saya kepada Anda?

Solusi: jangan gunakan ukuran absolut (akurasi) tetapi ukuran relatif untuk setiap kelas (ada banyak hal di luar sana, seperti ROC AUC)

Mayou36
sumber
Tidak, AUC juga tidak sesuai untuk dataset yang tidak seimbang.
SiXUlm
@ SiXUlm, bisakah Anda menguraikan itu?
Mayou36
P(D)/P(DC)P(T|D)P(F|DC)
Ilustrasi yang lebih jelas dapat ditemukan di sini: quora.com/… . Lihatlah jawaban Jerry Ma.
SiXUlm
Saya masih tidak mengerti maksud Anda. Bukankah itu (termasuk Quora) yang saya katakan dalam solusi dan persis mendukung jawaban saya? Intinya adalah bahwa prior tidak boleh mempengaruhi metrik yang mengukur kinerja jaringan. Apa yang tepat tergantung sepenuhnya pada masalah Anda, mis. Yang terbaik adalah mengoptimalkan untuk setiap kemungkinan pemotongan . Jadi biar tahu: a) karena merupakan invarian ke prior tetapi peka terhadap kinerja, mengapa adalah bahwa tidak pantas? b) apa lagi yang akan Anda pikirkan adalah sesuai atau yang karakteristik yang dibutuhkan?
Mayou36
2

Jawaban DaL persis seperti ini. Saya akan menggambarkannya dengan contoh yang sangat sederhana tentang ... menjual telur.

21

21

Jika pengklasifikasi Anda tidak membuat kesalahan, maka Anda mendapatkan penghasilan maksimum yang dapat Anda harapkan. Jika tidak sempurna, maka:

  • 1
  • 1

Maka keakuratan classifier Anda adalah seberapa dekat Anda dengan pendapatan maksimum. Itu adalah ukuran yang sempurna.

a

  • a
  • 2a

a=0.00120.001

Jika classifier adalah tentang menemukan dokumen yang relevan dalam database misalnya, maka Anda dapat membandingkan "berapa banyak" waktu yang terbuang untuk membaca dokumen yang tidak relevan dibandingkan dengan menemukan dokumen yang relevan.

Benoit Sanchez
sumber
1

Akurasi klasifikasi adalah jumlah prediksi yang benar dibagi dengan jumlah total prediksi.

Akurasi bisa menyesatkan. Misalnya, dalam masalah di mana terdapat ketidakseimbangan kelas yang besar, suatu model dapat memprediksi nilai kelas mayoritas untuk semua prediksi dan mencapai akurasi klasifikasi yang tinggi. Jadi, ukuran kinerja lebih lanjut diperlukan seperti skor F1 dan skor Brier.

jeza
sumber
-3

R2

R2

Seperti yang telah dicatat orang lain, masalah lain dengan akurasi adalah ketidakpedulian implisit terhadap harga kegagalan - yaitu asumsi bahwa semua klasifikasi salah adalah sama. Dalam praktiknya tidak demikian, dan biaya untuk mendapatkan klasifikasi yang salah sangat tergantung pada subjek dan Anda mungkin lebih memilih untuk meminimalkan jenis kesalahan tertentu daripada memaksimalkan akurasi.

James
sumber
2
Bersenandung. (1) Saya berasumsi bahwa mengevaluasi akurasi atau out-of-sample metrik lainnya akan dipahami, jadi saya tidak benar-benar melihat bagaimana akurasi memiliki lebih dari masalah overfitting tertentu . (2) jika Anda menerapkan model yang dilatih pada populasi A ke populasi B yang berbeda , maka Anda membandingkan apel dengan jeruk, dan saya sekali lagi tidak benar-benar melihat bagaimana ini merupakan masalah spesifik untuk akurasi .
Stephan Kolassa
(1) Namun demikian, masalah untuk akurasi, dan pertanyaannya adalah tentang menggunakan akurasi sebagai standar emas. (2) Tujuan membangun classifier adalah menggunakannya pada jeruk, bukan hanya apel. Itu harus cukup umum untuk menangkap sinyal penting dalam data (sedemikian rupa sehingga ada), daripada menjadi katekismus untuk data pelatihan Anda.
James