まとめ
- 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 #
| Metrik | Fokus | Catatan |
|---|---|---|
| RMSE | Error kuadrat absolut | Didominasi nilai besar |
| MAE | Error absolut tangguh | Tidak melihat aspek relatif |
| RMSLE | Error relatif/rasio | Tidak 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.