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^,1−p^)
- 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 aturan penilaian yang 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^,1−p^)( 0 , 1 ) ( 0 , 1 ) ( p , 1 - p )(0,1)(0,1)(p,1−p)
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 scoring-aturan 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 .
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.
sumber
Masalah dengan akurasi
Akurasi standar didefinisikan sebagai rasio klasifikasi yang benar dengan jumlah klasifikasi yang dilakukan.
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 kelasSEBUAH , 5 \% milik B dan 5 \% milik C maka fungsi klasifikasi berikut akan memiliki akurasi 0,9 :
Namun, jelas mengingat bahwa kita tahu bagaimanac l a s s i fy bekerja bahwa ini tidak dapat memberitahu kelas terpisah sama sekali. Demikian juga, kita dapat membangun fungsi klasifikasi
yang memiliki akurasi0.96⋅0.9+0.02⋅0.05⋅2=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 menghitungaccuracy:=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.33 untuk 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 A ).
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 kelasP 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:
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:
Memperkenalkan Keyakinan
sumber
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)
sumber
Jawaban DaL persis seperti ini. Saya akan menggambarkannya dengan contoh yang sangat sederhana tentang ... menjual telur.
Jika pengklasifikasi Anda tidak membuat kesalahan, maka Anda mendapatkan penghasilan maksimum yang dapat Anda harapkan. Jika tidak sempurna, maka:
Maka keakuratan classifier Anda adalah seberapa dekat Anda dengan pendapatan maksimum. Itu adalah ukuran yang sempurna.
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.
sumber
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.
sumber
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.
sumber