為什麼有些 Kaggle competition 用 Root Mean Squared Logarithmic Error (RMSLE) 評估演算法?Yao Wu2015-04-10 17:02:47

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

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

為什麼有些 Kaggle competition 用 Root Mean Squared Logarithmic Error (RMSLE) 評估演算法?Louis2015-05-28 09:39:07

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

為什麼有些 Kaggle competition 用 Root Mean Squared Logarithmic Error (RMSLE) 評估演算法?Color Pen2017-09-07 11:50:24

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

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

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

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

假如

p_{i1}<a_{i}<p_{i2},

\left| p_{i1}-a_{i} \right|=\left| p_{i2}-a_{i} \right|

根據對數曲線的話肯定也是

(log(p_{i1}+1)-log(a_{i}+1))^2>(log(p_{i2}+1)-log(a_{i}+1))^2

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

為什麼有些 Kaggle competition 用 Root Mean Squared Logarithmic Error (RMSLE) 評估演算法?達科塔.厚2018-09-06 02:35:19

上圖:圖的最低點是真實值:3,從圖來看,越偏離真實值,誤差越大。但偏左邊和偏右邊誤差增長幅度不一樣,所以對於skew資料有效。

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

為什麼有些 Kaggle competition 用 Root Mean Squared Logarithmic Error (RMSLE) 評估演算法?tmac2018-12-05 14:24:13

使用RMSLE的好處一:

假如真實值為1000,若果預測值是600,那麼RMSE=400, RMSLE=0。510

假如真實值為1000,若預測結果為1400, 那麼RMSE=400, RMSLE=0。336

可以看出來在均方根誤差相同的情況下,預測值比真實值小這種情況的錯誤比較大,即對於預測值小這種情況懲罰較大。

使用RMSLE的好處二:

當資料當中有少量的值和真實值差值較大的時候,使用log函式能夠減少這些值對於整體誤差的影響。

各種迴歸指標對比:

MSE和MAE適用於誤差相對明顯的時候,大的誤差也有比較高的權重,RMSE則是針對誤差不是很明顯的時候;MAE是一個線性的指標,所有個體差異在平均值上均等加權,所以它更加凸顯出異常值,相比MSE;

RMSLE: 主要針對資料集中有一個特別大的異常值,這種情況下,data會被skew,RMSE會被明顯拉大,這時候就需要先對資料log下,再求RMSE,這個過程就是RMSLE。對低估值(under-predicted)的判罰明顯多於估值過高(over-predicted)的情況(RMSE則相反)

參考:

https://www。

quora。com/What-is-the-d

ifference-between-an-RMSE-and-RMSLE-logarithmic-error-and-does-a-high-RMSE-imply-low-RMSLE

https://

dataquestion。com/questi

on/5890-2