Saya mulai melihat ke area di bawah kurva (AUC) dan saya sedikit bingung tentang kegunaannya. Ketika pertama kali menjelaskan kepada saya, AUC tampaknya menjadi ukuran kinerja yang hebat tetapi dalam penelitian saya, saya telah menemukan bahwa beberapa mengklaim keunggulannya sebagian besar marjinal karena yang terbaik untuk menangkap model 'beruntung' dengan pengukuran akurasi standar tinggi dan AUC rendah .
Jadi haruskah saya menghindari mengandalkan AUC untuk memvalidasi model atau kombinasi yang terbaik? Terima kasih atas seluruh bantuan Anda.
machine-learning
accuracy
aidankmcl
sumber
sumber
Jawaban:
Pertanyaan yang sangat bagus, dan satu yang saya temukan bahwa kebanyakan orang tidak benar-benar mengerti pada tingkat intuitif.
AUC
sebenarnya sering lebih disukai daripada akurasi untuk klasifikasi biner karena sejumlah alasan berbeda. Pertama-tama, mari kita bicara tentang apa tepatnyaAUC
. Sejujurnya, karena menjadi salah satu metrik kemanjuran yang paling banyak digunakan, sangat mengherankan untuk mengetahui secara tepat caraAUC
kerjanya.AUC
singkatanArea Under the Curve
, kurva mana yang Anda tanyakan? Nah, itu akan menjadiROC
kurva.ROC
singkatan dari Receiver Operating Characteristic , yang sebenarnya sedikit tidak intuitif. Tujuan implisitnyaAUC
adalah untuk menghadapi situasi di mana Anda memiliki distribusi sampel yang sangat miring, dan tidak ingin mengenakan pakaian berlebih ke satu kelas.Contoh yang bagus adalah dalam deteksi spam. Secara umum, dataset spam sangat bias terhadap ham, atau bukan-spam. Jika kumpulan data Anda adalah ham 90%, Anda bisa mendapatkan akurasi yang sangat bagus dengan hanya mengatakan bahwa setiap email adalah ham, yang jelas merupakan sesuatu yang menunjukkan klasifikasi yang tidak ideal. Mari kita mulai dengan beberapa metrik yang sedikit lebih berguna bagi kita, khususnya tingkat positif sebenarnya (
TPR
) dan tingkat positif palsu (FPR
):Sekarang dalam grafik ini,
TPR
secara khusus rasio benar positif untuk semua positif, danFPR
rasio positif palsu untuk semua negatif. (Perlu diingat, ini hanya untuk klasifikasi biner.) Pada grafik seperti ini, harus cukup mudah untuk mengetahui bahwa prediksi semua 0 atau semua 1 akan menghasilkan titik(0,0)
dan(1,1)
masing - masing. Jika Anda menggambar garis melalui garis-garis ini, Anda akan mendapatkan sesuatu seperti ini:Yang pada dasarnya terlihat seperti garis diagonal (itu), dan dengan beberapa geometri mudah, Anda dapat melihat bahwa
AUC
model seperti itu akan menjadi0.5
(tinggi dan basis keduanya 1). Demikian pula, jika Anda memprediksi bermacam-macam acak 0 dan 1, katakanlah 90% 1, Anda bisa mendapatkan poin(0.9, 0.9)
, yang lagi-lagi jatuh di sepanjang garis diagonal itu.Sekarang sampai pada bagian yang menarik. Bagaimana jika kita tidak hanya memprediksi 0 dan 1? Bagaimana jika sebaliknya, kami ingin mengatakan bahwa, secara teoritis kami akan menetapkan batas, di mana setiap hasil adalah 1, dan di bawah ini setiap hasil adalah 0. Ini berarti bahwa pada ekstrem Anda mendapatkan situasi asli di mana Anda memiliki semua 0 dan semua 1 (pada cutoff masing-masing 0 dan 1), tetapi juga serangkaian negara perantara yang termasuk dalam
1x1
grafik yang berisi grafik AndaROC
. Dalam praktiknya Anda mendapatkan sesuatu seperti ini:Jadi pada dasarnya, apa yang sebenarnya Anda dapatkan ketika Anda melakukan
AUC
akurasi berlebih adalah sesuatu yang akan sangat mencegah orang untuk mencari model yang representatif, tetapi tidak diskriminatif, karena ini hanya akan benar-benar memilih model yang mencapai tingkat positif palsu dan positif yang benar. secara signifikan di atas peluang acak, yang tidak dijamin untuk keakuratan.sumber
AUC dan akurasi adalah hal yang sangat berbeda. AUC berlaku untuk pengklasifikasi biner yang memiliki beberapa gagasan tentang ambang keputusan secara internal. Misalnya regresi logistik mengembalikan positif / negatif tergantung pada apakah fungsi logistik lebih besar / lebih kecil dari ambang, biasanya 0,5 secara default. Saat Anda memilih ambang, Anda memiliki classifier. Anda harus memilih satu.
Untuk pilihan ambang tertentu, Anda dapat menghitung akurasi, yang merupakan proporsi positif dan negatif sebenarnya di seluruh kumpulan data.
AUC mengukur seberapa benar tingkat positif (penarikan) dan nilai tukar positif palsu, sehingga dalam arti itu sudah mengukur sesuatu yang lain. Lebih penting lagi, AUC bukan fungsi ambang batas. Ini adalah evaluasi dari classifier karena ambang bervariasi untuk semua nilai yang mungkin. Ini adalah metrik yang lebih luas, menguji kualitas nilai internal yang dihasilkan oleh penggolong dan kemudian membandingkannya dengan ambang batas. Itu tidak menguji kualitas pilihan ambang tertentu.
AUC memiliki interpretasi yang berbeda, dan itu adalah juga probabilitas bahwa contoh positif yang dipilih secara acak diberi peringkat di atas contoh negatif yang dipilih secara acak, sesuai dengan nilai internal pengklasifikasi untuk contoh.
AUC dapat dihitung bahkan jika Anda memiliki algoritma yang hanya menghasilkan peringkat pada contoh. AUC tidak dapat dihitung jika Anda benar-benar hanya memiliki klasifikasi kotak-hitam, dan bukan yang memiliki ambang internal. Ini biasanya akan menentukan yang mana dari keduanya bahkan tersedia untuk masalah yang dihadapi.
AUC, saya pikir, ukuran yang lebih komprehensif, meskipun berlaku dalam situasi yang lebih sedikit. Ini tidak sepenuhnya lebih baik daripada akurasi; Ini berbeda. Itu sebagian tergantung pada apakah Anda lebih peduli tentang positif sejati, negatif palsu, dll.
F-ukuran lebih seperti akurasi dalam arti bahwa itu adalah fungsi dari classifier dan pengaturan ambangnya. Tetapi mengukur ketepatan vs recall (tingkat positif sejati), yang tidak sama dengan yang di atas.
sumber
Saya ingin merujuk pada bagaimana Anda harus memilih ukuran kinerja. Sebelum itu saya akan merujuk ke pertanyaan spesifik akurasi dan AUC.
Seperti yang dijawab sebelumnya, pada dataset yang tidak seimbang menggunakan mayoritas berjalan sebagai pengklasifikasi akan menghasilkan akurasi tinggi apa yang akan membuatnya menjadi ukuran yang menyesatkan. AUC agregat di atas ambang batas kepercayaan, baik dan buruk. Demi kebaikan, Anda mendapatkan hasil berat untuk semua tingkat kepercayaan. Yang buruk adalah bahwa Anda biasanya hanya peduli pada tingkat kepercayaan diri yang benar-benar akan Anda gunakan dan sisanya tidak relevan.
Namun, saya ingin berkomentar tentang memilih ukuran kinerja yang tepat untuk model. Anda harus membandingkan model dengan tujuannya. Tujuan dari suatu model bukanlah pertanyaan tentang pembelajaran mesin atau statistik, dalam hal ini adalah pertanyaan tentang domain bisnis dan kebutuhannya.
Jika Anda menggali untuk emas (sebuah skenario di mana Anda memiliki manfaat besar dari positif benar, tidak terlalu tinggi biaya positif palsu) maka penarikan kembali adalah ukuran yang baik.
Jika Anda mencoba untuk memutuskan apakah akan melakukan prosedur medis yang kompleks pada orang-orang (biaya palsu positif yang tinggi, semoga biaya palsu palsu yang rendah), ketepatan adalah ukuran yang harus Anda gunakan.
Ada banyak langkah yang bisa Anda gunakan. Anda juga dapat menggabungkannya dengan berbagai cara.
Namun, tidak ada ukuran universal "terbaik". Ada model terbaik untuk kebutuhan Anda, model yang memaksimalkannya akan memaksimalkan keuntungan Anda.
sumber