Saya mencoba untuk lebih memahami kehilangan log dan bagaimana cara kerjanya tetapi satu hal yang sepertinya tidak bisa saya temukan adalah memasukkan nomor kehilangan log ke dalam semacam konteks. Jika model saya memiliki kehilangan log 0,5, apakah itu bagus? Apa yang dianggap sebagai skor baik dan buruk? Bagaimana ambang batas ini berubah?
machine-learning
loss-functions
log-loss
pengguna1923975
sumber
sumber
Jawaban:
Logloss hanya mana p hanyalah probabilitas yang dikaitkan dengan kelas nyata.L ( hlmsaya) = - log( halsaya) hal
Jadi adalah baik, kami dikaitkan probabilitas 1 untuk kelas yang tepat, sementara L ( p ) = + ∞ buruk, karena kita dikaitkan probabilitas 0 ke kelas yang sebenarnya.L ( p ) = 0 1 L ( p ) = + ∞ 0
Jadi, menjawab pertanyaan Anda, berarti, rata-rata, Anda dikaitkan dengan kelas yang tepat probabilitas p ≈ 0,61 di sampel.L ( p ) = 0,5 p ≈ 0,61
Sekarang, memutuskan apakah ini cukup baik sebenarnya tergantung pada aplikasi, dan jadi terserah argumen.
sumber
Seperti halnya metrik apa pun, metrik yang baik adalah yang lebih baik daripada yang "bodoh", tebak secara kebetulan, jika Anda harus menebak tanpa informasi tentang pengamatan. Ini disebut model intersep-only dalam statistik.
Tebak "bodoh" ini tergantung pada 2 faktor:
Dalam kasus metrik LogLoss, satu metrik biasa "terkenal" adalah mengatakan bahwa 0,693 adalah nilai non-informatif. Angka ini diperoleh dengan memprediksi
p = 0.5
untuk setiap kelas masalah biner. Ini hanya berlaku untuk masalah biner seimbang . Karena ketika prevalensi satu kelas adalah 10%, maka Anda akan selalu memprediksip =0.1
untuk kelas itu. Ini akan menjadi dasar Anda prediksi bodoh, kebetulan, karena memprediksi0.5
akan menjadi bodoh.I. Dampak dari jumlah kelas
N
pada dumb-logloss:Dalam kasus seimbang (setiap kelas memiliki prevalensi yang sama), ketika Anda memprediksi
p = prevalence = 1 / N
untuk setiap pengamatan, persamaannya menjadi sederhana:Logloss = -log(1 / N)
log
sedangLn
, logaritma neperian untuk mereka yang menggunakan konvensi itu.Dalam kasus biner,
N = 2
:Logloss = - log(1/2) = 0.693
Jadi Logosses bodoh adalah sebagai berikut:
II Dampak dari prevalensi kelas pada dumb-Logloss:
Sebuah. Kasus klasifikasi biner
Dalam hal ini, kami selalu memprediksi
p(i) = prevalence(i)
, dan kami mendapatkan tabel berikut:Jadi, ketika kelas sangat tidak seimbang (prevalensi <2%), logloss 0,1 sebenarnya bisa sangat buruk! Seperti akurasi 98% akan buruk dalam kasus itu. Jadi mungkin Logloss tidak akan menjadi metrik terbaik untuk digunakan
b. Kasing tiga kelas
"Bodoh" -logloss tergantung pada prevalensi - kasus tiga kelas:
Kita bisa melihat di sini nilai-nilai kasus biner seimbang dan tiga kelas (0,69 dan 1,1).
KESIMPULAN
Logloss 0,69 mungkin baik dalam masalah multikelas, dan sangat buruk dalam kasus bias biner.
Bergantung pada kasus Anda, Anda sebaiknya menghitung sendiri garis dasar masalah, untuk memeriksa arti prediksi Anda.
Dalam kasus bias, saya mengerti bahwa logloss memiliki masalah yang sama dengan keakuratan dan fungsi kerugian lainnya: ia hanya menyediakan pengukuran kinerja global Anda. Jadi, Anda sebaiknya melengkapi pemahaman Anda dengan metrik yang berfokus pada kelas-kelas minoritas (mengingat dan presisi), atau mungkin tidak menggunakan logloss sama sekali.
sumber
Jadi ini sebenarnya lebih rumit daripada respons Firebugs dan semuanya tergantung pada variasi inheren dari proses yang Anda coba prediksi.
Ketika saya mengatakan variasi, apa yang saya maksudkan adalah 'jika suatu kejadian berulang di bawah kondisi yang sama persis, diketahui dan tidak diketahui, berapa probabilitas bahwa hasil yang sama akan terjadi lagi'.
Prediktor yang sempurna akan memiliki kerugian, untuk probabilitas P: Kehilangan = P ln P + (1-P) ln (1-P)
Jika Anda mencoba untuk memprediksi sesuatu di mana, yang lebih buruk, beberapa peristiwa akan diprediksi dengan hasil 50/50, maka dengan mengintegrasikan dan mengambil rata-rata kerugian rata-rata akan menjadi: L = 0,5
Jika apa yang Anda coba prediksi adalah sedikit lebih berulang, kehilangan model sempurna lebih rendah. Jadi misalnya, katakanlah dengan informasi yang memadai model yang sempurna dapat memprediksi hasil dari suatu peristiwa di mana di semua peristiwa yang mungkin terburuk yang bisa dikatakan adalah 'peristiwa ini akan terjadi dengan probabilitas 90%' maka kerugian rata-rata adalah L = 0,18 .
Ada juga perbedaan jika distribusi probabilitas tidak seragam.
Jadi dalam menjawab pertanyaan Anda, jawabannya adalah 'itu tergantung pada sifat dari apa yang Anda coba prediksi'
sumber
Saya akan mengatakan jawaban statistik standar adalah dibandingkan dengan model intersep saja. (ini menangani kelas tidak seimbang yang disebutkan dalam jawaban lain) cf pseudo r ^ 2 mcFadden. https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/
Sekarang masalahnya adalah apa nilai maksimumnya. pada dasarnya masalahnya adalah bahwa probabilitas suatu peristiwa tidak ditentukan di luar model untuk peristiwa tersebut. cara yang saya sarankan adalah Anda mengambil data pengujian dan mengumpulkannya ke tingkat tertentu, untuk mendapatkan perkiraan probabilitas. lalu hitung logloss dari estimasi ini.
mis. Anda memperkirakan rasio klik-tayang berdasarkan pada (web_site, ad_id, consumer_id), lalu Anda mengagregasikan klik, tayangan ke tingkat web_site misalnya dan menghitung RKPT pada set pengujian untuk setiap situs web. lalu hitung log_loss pada data uji Anda menggunakan set klik uji ini sebagai prediksi. Ini kemudian logloss optimal pada set pengujian Anda untuk model hanya menggunakan id situs web . Masalahnya adalah kita bisa membuat kerugian ini sekecil yang kita mau dengan hanya menambahkan lebih banyak fitur sampai setiap record diidentifikasi secara unik.
sumber