RMSLE (Root Mean Squared Log Error)

Eval

RMSLE (Root Mean Squared Log Error)

まとめ
  • RMSLE menerapkan RMSE pada skala log sehingga menonjolkan perbedaan relatif atau persentase.
  • Cocok ketika under-forecast lebih berisiko daripada over-forecast, misalnya pada ramalan permintaan atau pertumbuhan.
  • Pastikan menangani nilai nol dan negatif sebelum menggunakannya.

1. Definisi #

$$ \mathrm{RMSLE} = \sqrt{\frac{1}{n} \sum_{i=1}^n \left( \log(1 + \hat{y}_i) - \log(1 + y_i) \right)^2 } $$

  • Penambahan 1 memungkinkan nilai nol; nilai negatif tetap tidak valid.
  • Error dengan rasio sama memberikan kontribusi yang sama (mis. 10↔20 dan 100↔200).

2. Implementasi di Python #

from sklearn.metrics import mean_squared_log_error

rmsle = mean_squared_log_error(y_test, y_pred, squared=False)
print(f"RMSLE = {rmsle:.3f}")

mean_squared_log_error akan error jika terdapat nilai negatif; bersihkan atau geser data terlebih dahulu.


3. Kapan memakai RMSLE #

  • Peramalan permintaan/penjualan: menyorot under-forecast yang bisa menyebabkan kehabisan stok.
  • Metrik pertumbuhan (trafik, populasi, instalasi): perubahan relatif lebih penting daripada selisih absolut.
  • Target non negatif: hanya gunakan jika semua nilai ≥ 0.

4. Intuisi dan perhatian #

  • Memberikan nuansa “error persentase” sambil tetap mudah diterjemahkan.
  • Sedikit lebih menghukum under-forecast karena sifat logaritmik yang asimetris.
  • Untuk nilai sangat kecil, pertimbangkan menambahkan ambang minimal sebelum training.

5. Perbandingan metrik #

MetrikFokusCatatan
RMSEError kuadrat absolutDidominasi nilai besar
MAEError absolut tangguhTidak melihat aspek relatif
RMSLEError relatif/rasioTidak berlaku untuk nilai negatif

Ringkasan #

  • RMSLE memadukan RMSE dengan log transform untuk menekankan akurasi relatif dan penalti under-forecast.
  • Mudah dihitung namun membutuhkan data non negatif.
  • Sertakan bersama MAE atau RMSE untuk menyajikan gambaran relatif sekaligus absolut.