為什麼有些 Kaggle competition 用 Root Mean Squared Logarithmic Error (RMSLE) 評估演算法?

https://www.kaggle.com/wiki/RootMeanSquaredLogarithmicError

這些kaggle competition都用這個,,為何不用root mean squared error這些比較常見的評估模型呢


如果預測的值的範圍很大,RMSE會被一些大的值主導。這樣即使你很多小的值預測准了,但是有一個非常大的值預測的不準確,RMSE就會很大。 相應的,如果另外一個比較差的演算法對這一個大的值準確一些,但是很多小的值都有偏差,可能RMSE會比前一個小。

先取log再求RMSE,可以稍微解決這個問題。RMSE一般對於固定的平均分布的預測值才合理。


如果是有較大值的話 那麼data就會有skew 在做模型之前就先log轉換了不就行了 最後在算RMSE的時候在exp轉換回來 這樣RMSE也不會太受較大值影響把?!?!


求助:用xgboost的eval_metric只有rmse,沒有rmsle。怎麼自定義?


RMSLE懲罰欠預測大於過預測。

我是看bike sharing demand問題見到這個指標的,結合實際考慮某些情況下會存在欠預測比過預測的損失會更大的情況,而這個RMSLE可以體現這一點。隨便兩個假設兩個數也能推導出來:

假如 p_{i1} 且 <img src=

根據對數曲線的話肯定也是 (log(p_{i1}+1)-log(a_{i}+1))^2>(log(p_{i2}+1)-log(a_{i}+1))^2

所以欠預測的loss更大。這裡公式的+1實際問題中為了防止log(0)的問題。


同意@Yao Wu的說法,RMSE在值範圍較大時loss會過大,RMSLE bound更tight.


推薦閱讀:

TAG:數據挖掘 | 計算機 | 數據分析 | 機器學習 | 大數據 |