Bagaimana Anda Menafsirkan RMSLE (Root Mean Squared Logarithmic Error)?

29

Saya telah melakukan kompetisi pembelajaran mesin di mana mereka menggunakan RMSLE (Root Mean Squared Logarithmic Error) untuk mengevaluasi kinerja memprediksi harga jual suatu kategori peralatan. Masalahnya adalah saya tidak yakin bagaimana menafsirkan keberhasilan hasil akhir saya.

Sebagai contoh jika saya mencapai RMSLE dari bisa saya membesarkannya yang eksponensial kekuatan dan menafsirkannya seperti RMSE? (mis. )?e e 1,052 = 2,863 = R M S E1,052ee1,052=2.863=RM.SE

Bisakah saya kemudian mengatakan bahwa prediksi saya adalah rata-rata dari harga yang sebenarnya? Atau adakah cara yang lebih baik untuk menafsirkan metrik? Atau bisakah metrik itu ditafsirkan sama sekali dengan pengecualian membandingkan dengan RMSLE lain dari model lain? ±$2.863

Karya
sumber
Dengan pengetahuan saya yang terbatas, itu untuk: 1. untuk menghapus heteroskedastisitas 2. untuk memecahkan masalah dimensi yang berbeda

Jawaban:

26

Saya belum pernah melihat RMSLE sebelumnya, tapi saya berasumsi itu .1Nsaya=1N(log(xsaya)-log(ysaya))2

Jadi eksponensial itu tidak akan memberi Anda RMSE, itu akan memberi Anda

e1Nsaya=1N(log(xsaya)-log(ysaya))21Nsaya=1N(xsaya-ysaya)2 .

Jika kita mengambil log dari kedua sisi, kita mendapatkan RMSLE versus , yang jelas bukan hal yang sama.12log(1Nsaya=1N(xsaya-ysaya)2)

Sayangnya, tidak ada hubungan mudah yang baik secara umum (meskipun seseorang lebih pintar dariku / memikirkannya lebih sulit daripada aku mungkin bisa menggunakan ketidaksetaraan Jensen untuk mencari tahu hubungan di antara keduanya).

Ini, tentu saja, RMSE dari variabel log-transformed, untuk apa nilainya. Jika Anda ingin rasa kasar dari distribusi, Anda bisa mendapatkan rasa kasar dari penyebaran logaritma mereka, sehingga RMSLE dari 1,052 berarti bahwa "rata-rata" adalah kali lebih besar dari nilai sebenarnya, atau 1 / 2.86. Tentu saja bukan itu yang dimaksud dengan RMSE ....2.86

Dougal
sumber
Hai, Dougal, terima kasih! ini pasti membantu membersihkan semuanya.
Opus
18

Saya tidak tahu apakah ada interpretasi generik langsung, bahkan menganalisis kasus tertentu.

Misalnya, Anda mungkin tertarik untuk mengevaluasi kesalahan apa yang akan terjadi jika Anda memprediksi semua kasus dengan nilai rata-rata dan membandingkannya dengan pendekatan Anda.

Bagaimanapun, saya percaya RMSLE biasanya digunakan ketika Anda tidak ingin menghukum perbedaan besar dalam nilai yang diprediksi dan benar ketika nilai yang diprediksi dan benar adalah angka yang sangat besar. Dalam kasus ini hanya perbedaan persentasi yang penting karena Anda dapat menulis ulang

logPsaya+1-logSEBUAHsaya+1=logPsaya+1SEBUAHsaya+1 .

Misalnya untuk P = 1000 dan A = 500 akan memberi Anda kesalahan yang kira-kira sama seperti ketika P = 100000 dan A = 50000.

Euclides
sumber
1

logx+1

y=logx+1

Hai
sumber
1

Ada cara tidak langsung untuk mengukur kinerja fungsi kerugian dalam hal sesuatu yang lebih mudah dimengerti, meskipun tidak akan secara langsung mengkonversi nilai seperti yang Anda harapkan.

Setelah model telah dilatih dan diuji menggunakan RMSLE, cukup ambil metrik baru. Hanya karena model tersebut dilatih pada RMSLE, itu tidak berarti Anda tidak dapat mengambil fungsi kerugian lainnya yang lebih dimengerti sebagai metrik.

Dalam Keras, misalnya, Anda dapat menentukan fungsi kerugian tambahan dalam kategori metrik dalam kompiler model. Di bawahnya MSLE digunakan untuk melatih model (Setara dengan RMSLE), tetapi MAE dan MSE juga dicatat:

model.compile(loss='mean_squared_logarithmic_error', optimizer='adam', metrics=['mean_absolute_error','mean_squared_error'])
HowdyEarth
sumber