logloss vs gini / auc

14

Saya sudah melatih dua model (pengklasifikasi biner menggunakan h2o AutoML) dan saya ingin memilih satu untuk digunakan. Saya memiliki hasil sebagai berikut:

 model_id        auc     logloss    logloss_train   logloss_valid   gini_train  gini_valid

DL_grid_1   0.542694    0.287469         0.092717        0.211956     0.872932    0.312975
DL_grid_2   0.543685    0.251431         0.082616        0.186196     0.900955    0.312662

yang aucdan loglosskolom metrik cross-validasi (validasi silang hanya menggunakan data training). yang ..._traindan ..._validmetrik ditemukan dengan menjalankan metrik pelatihan dan validasi melalui model masing-masing. Saya ingin menggunakan logloss_validatau gini_validuntuk memilih model terbaik.

Model 1 memiliki gini yang lebih baik (yaitu AUC lebih baik) tetapi model dua memiliki logloss yang lebih baik. Pertanyaan saya adalah mana yang harus saya pilih yang menurut saya menimbulkan pertanyaan, apa kelebihan / kekurangan menggunakan salah satu gini (AUC) atau logloss sebagai metrik keputusan.

Dan
sumber
1
Video ini memiliki penjelasan yang bagus tentang mengapa logloss lebih disukai jika Anda tertarik pada probabilitas dan bukan hanya klasifikasi. Perhatikan bahwa untuk klasifikasi biner, logloss sama dengan skor brier.
Dan

Jawaban:

10

Sedangkan AUC dihitung sehubungan dengan klasifikasi biner dengan ambang keputusan yang bervariasi, logloss benar-benar mempertimbangkan "kepastian" klasifikasi.

Oleh karena itu, menurut pemahaman saya, logloss secara konseptual melampaui AUC dan khususnya relevan dalam kasus-kasus dengan data yang tidak seimbang atau dalam kasus biaya kesalahan yang didistribusikan secara tidak merata (misalnya deteksi penyakit mematikan).

Selain jawaban yang sangat mendasar ini, Anda mungkin ingin melihat mengoptimalkan auc vs logloss dalam masalah klasifikasi biner

Sebuah contoh sederhana dari perhitungan logloss dan konsep yang mendasari dibahas dalam pertanyaan baru-baru ini. Fungsi Kehilangan Log di scikit-learn mengembalikan nilai yang berbeda

Selain itu, titik yang sangat bagus telah dibuat dalam stackoverflow

Orang harus memahami perbedaan penting antara AUC ROC dan metrik "point-wise" seperti akurasi / presisi, dll. ROC adalah fungsi dari ambang batas. Diberikan model (pengklasifikasi) yang menampilkan probabilitas milik masing-masing kelas, kami biasanya mengklasifikasikan elemen ke kelas dengan dukungan tertinggi. Namun, kadang-kadang kita bisa mendapatkan skor yang lebih baik dengan mengubah aturan ini dan membutuhkan satu dukungan menjadi 2 kali lebih besar dari yang lain untuk benar-benar diklasifikasikan sebagai kelas yang diberikan. Ini sering berlaku untuk dataset yang tidak seimbang. Dengan cara ini Anda benar-benar memodifikasi kelas yang dipelajari sebelum lebih cocok dengan data Anda. ROC melihat "apa yang akan terjadi jika saya mengubah ambang ini ke semua nilai yang mungkin" dan kemudian AUC ROC menghitung integral dari kurva tersebut.

Nikolas Rieble
sumber
Tautan pertama Anda berisi "AUC memaksimalkan kemampuan model untuk membedakan antara kelas sementara logloss menghukum perbedaan antara probabilitas aktual dan taksiran" , jadi saya pada dasarnya bertanya bagaimana saya memilih antara dua tujuan? Apakah ini kasus jika saya bekerja langsung dengan output 'probabilitas' dari model saya harus mengoptimalkan logloss (dan kemudian mungkin juga melakukan kalibrasi probabilitas ) di mana-seolah-olah saya benar-benar menggunakannya sebagai penggolong untuk membuat keputusan sulit yang itu salah satu sahabat atau yang lain saya harus pergi dengan AUC?
Dan
2
Jika Anda hanya peduli tentang keputusan benar atau salah -> gunakan AUC - jika Anda peduli seberapa banyak "benar" atau "salah" Anda -> gunakan logloss
Nikolas Rieble
Pilihan ukuran kinerja lebih lanjut tidak dapat digeneralisasi tetapi tergantung pada domain / aplikasi.
Nikolas Rieble