Saya memiliki dua pengklasifikasi
- A: jaringan Bayesian yang naif
- B: tree (terhubung sendiri) jaringan Bayesian
Dalam hal akurasi dan langkah-langkah lain, A melakukan relatif lebih buruk daripada B. Namun, ketika saya menggunakan paket R ROCR dan AUC untuk melakukan analisis ROC, ternyata AUC untuk A lebih tinggi daripada AUC untuk B. Mengapa ini kejadian?
Nilai true positive (tp), false positive (fp), false negative (fn), true negative (tn), sensitivitas (sen), spesifisitas (spec), nilai prediktif positif (ppv), nilai prediktif negatif (npv), dan akurasi (acc) untuk A dan B adalah sebagai berikut.
+------+---------+---------+
| | A | B |
+------+---------+---------+
| tp | 3601 | 769 |
| fp | 0 | 0 |
| fn | 6569 | 5918 |
| tn | 15655 | 19138 |
| sens | 0.35408 | 0.11500 |
| spec | 1.00000 | 1.00000 |
| ppv | 1.00000 | 1.00000 |
| npv | 0.70442 | 0.76381 |
| acc | 0.74563 | 0.77084 |
+------+---------+---------+
Dengan pengecualian dari sens dan ties (spec dan ppv) pada marginal (tidak termasuk tp, fn, fn, dan tn), B tampaknya berkinerja lebih baik daripada A.
Ketika saya menghitung AUC untuk sens (sumbu y) vs 1-spec (sumbu x)
aucroc <- auc(roc(data$prediction,data$labels));
di sini adalah perbandingan AUC.
+----------------+---------+---------+
| | A | B |
+----------------+---------+---------+
| sens vs 1-spec | 0.77540 | 0.64590 |
| sens vs spec | 0.70770 | 0.61000 |
+----------------+---------+---------+
Jadi inilah pertanyaanku:
- Mengapa AUC untuk A lebih baik daripada B, ketika B "tampaknya" mengungguli A sehubungan dengan akurasi?
- Jadi, bagaimana saya benar-benar menilai / membandingkan kinerja klasifikasi A dan B? Maksud saya, apakah saya menggunakan nilai AUC? Apakah saya menggunakan nilai acc, dan jika demikian mengapa?
- Selanjutnya, ketika saya menerapkan aturan penilaian yang tepat untuk A dan B, B mengungguli A dalam hal kehilangan log, kehilangan kuadratik, dan kehilangan bola (p <0,001). Bagaimana hal ini dipertimbangkan dalam menilai kinerja klasifikasi sehubungan dengan AUC?
- Grafik ROC untuk A terlihat sangat halus (itu adalah lengkungan melengkung), tetapi grafik ROC untuk B terlihat seperti serangkaian garis yang terhubung. Kenapa ini?
Seperti yang diminta, berikut adalah plot untuk model A.
Berikut adalah plot untuk model B.
Berikut adalah plot histogram dari distribusi probabilitas untuk A dan B. (jeda ditetapkan ke 20).
Berikut adalah sebar plot probabilitas B vs A.
sumber
Jawaban:
sumber
Mengapa AUC untuk A lebih baik daripada B, ketika B "tampaknya" mengungguli A sehubungan dengan akurasi?
Akurasi dihitung pada nilai ambang 0,5. Sementara AUC dihitung dengan menambahkan semua "akurasi" yang dihitung untuk semua nilai ambang yang mungkin. ROC dapat dilihat sebagai rata-rata (nilai yang diharapkan) dari keakuratan tersebut ketika dihitung untuk semua nilai ambang.
Jadi, bagaimana saya benar-benar menilai / membandingkan kinerja klasifikasi A dan B? Maksud saya, apakah saya menggunakan nilai AUC? apakah saya menggunakan nilai acc? dan mengapa?
Tergantung. Kurva ROC memberi tahu Anda sesuatu tentang seberapa baik model Anda model Anda memisahkan dua kelas, di mana pun nilai ambangnya. Akurasi adalah ukuran yang bekerja dengan baik biasanya ketika kelas menjaga keseimbangan yang sama di kereta dan set tes, dan ketika skor benar-benar probabilitas. ROC memberi Anda lebih banyak petunjuk tentang bagaimana model akan berperilaku jika asumsi ini dilanggar (namun hanya sebuah ide).
selanjutnya, ketika saya menerapkan aturan penilaian yang tepat untuk A dan B, B mengungguli A dalam hal kehilangan log, kehilangan kuadratik, dan kehilangan bola (p <0,001). bagaimana hal ini dipertimbangkan dalam menilai kinerja klasifikasi sehubungan dengan AUC?
Saya tidak tahu. Anda harus memahami dengan lebih baik tentang apa data Anda. Apa yang masing-masing model mampu mengerti dari data Anda. Dan putuskan nanti mana yang merupakan kompromi terbaik. Alasan mengapa itu terjadi adalah bahwa tidak ada metrik universal tentang kinerja classifier.
Grafik ROC untuk A terlihat sangat halus (itu adalah lengkungan melengkung), tetapi grafik ROC untuk B terlihat seperti serangkaian garis yang terhubung. kenapa ini?
Itu mungkin karena model bayesian memberi Anda transisi yang mulus antara kedua kelas. Itu diterjemahkan dalam banyak nilai ambang batas. Yang berarti banyak titik pada kurva ROC. Model kedua mungkin menghasilkan nilai lebih sedikit karena prediksi dengan nilai yang sama pada daerah yang lebih besar dari ruang input. Pada dasarnya, juga kurva ROC pertama dibuat oleh garis, satu-satunya perbedaan adalah bahwa ada begitu banyak garis kecil yang berdekatan, yang Anda lihat sebagai kurva.
sumber
Pertama, meskipun cut-off (0,5) adalah sama, itu tidak sebanding sama sekali antara A dan B. Sebenarnya, itu terlihat sangat berbeda dari histogram Anda! Lihatlah B: semua prediksi Anda <0,5.
Kedua, mengapa B begitu akurat? Karena ketidakseimbangan kelas. Dalam tes B, Anda memiliki 19138 contoh negatif, dan 6687 positif (mengapa jumlahnya berbeda dalam A tidak jelas bagi saya: nilai yang hilang mungkin?). Ini berarti bahwa dengan hanya mengatakan bahwa semuanya negatif, saya sudah dapat mencapai akurasi yang cukup baik: tepatnya 19138 / (19138 + 6687) = 74%. Perhatikan bahwa ini sama sekali tidak memerlukan pengetahuan sama sekali di luar fakta bahwa ada ketidakseimbangan di antara kelas-kelas: bahkan model paling bodoh pun bisa melakukannya!
Dan inilah yang dilakukan tes B pada ambang batas 0,5 ... Anda mendapatkan (hampir) hanya prediksi negatif.
A lebih dari tas campuran dengan. Meskipun memiliki akurasi yang sedikit lebih rendah, perhatikan bahwa sensitivitasnya jauh lebih tinggi pada ...
Akhirnya, Anda tidak dapat membandingkan akurasi (kinerja pada satu ambang batas) dengan AUC (kinerja rata-rata pada semua ambang yang mungkin). Karena metrik ini mengukur hal-hal yang berbeda, tidak mengherankan bahwa mereka berbeda.
Anda harus berpikir: apa yang sebenarnya ingin Anda lakukan? Apa yang penting? Pada akhirnya, hanya Anda yang bisa menjawab pertanyaan ini berdasarkan pengetahuan Anda tentang pertanyaan itu. Mungkin AUC masuk akal (jarang benar-benar terjadi ketika Anda benar-benar memikirkannya, kecuali ketika Anda tidak ingin membuat keputusan sendiri tetapi biarkan orang lain melakukannya - itu kemungkinan besar jika Anda membuat alat untuk digunakan orang lain), mungkin keakuratannya (jika Anda membutuhkan biner, jawaban go-no go), tetapi mungkin pada ambang yang berbeda, mungkin beberapa tindakan lain yang lebih berkelanjutan, mungkin salah satu langkah yang disarankan oleh Frank Harrell ... seperti yang telah dinyatakan, tidak ada pertanyaan universal sini.
Kembali ke prediksi yang Anda tunjukkan di histogram. A memberi Anda prediksi terus-menerus, atau hampir-terus-menerus. Sebaliknya, B mengembalikan sebagian besar hanya beberapa nilai yang berbeda (seperti yang Anda lihat oleh histogram "runcing").
Dalam kurva ROC, setiap titik sesuai dengan ambang. Di A, Anda memiliki banyak ambang (karena prediksinya berkelanjutan), sehingga kurva menjadi halus. Di B, Anda hanya memiliki beberapa ambang, sehingga kurva terlihat "melompat" dari SN / SP ke yang lain.
Anda melihat lompatan vertikal ketika sensitivitas hanya berubah (ambang membuat perbedaan hanya untuk kasus positif), melompat horizontal ketika kekhususan hanya berubah (ambang membuat perbedaan hanya untuk contoh negatif), dan melompat diagonal ketika perubahan ambang mempengaruhi kedua kelas.
sumber