RMSLE を用いた評価指標


前回の記事は【ROC曲線とAUC】機械学習の評価指標を説明しました。今回は連続値回帰モデルの評価指標のRMSLEを紹介したいと思います。

先ず、RMSEを説明します。

RMSE (Root Mean Squared Error)

定義式

RMSE

 

(n = 件数 、y = 実測の値、ŷ =予測の値)

RMSEとか平均平方二乗誤差といいます。すべての誤差の平方根の平均です。

連続値の値でどれぐらい離れているかを平均を取り、平方根で評価します。

 

コード:

from sklearn.metrics import mean_squared_error

import numpy as np

y_true = [100, 110, 120, 130]

y_pred = [110, 120, 130, 140]

RMSE=np.sqrt(mean_squared_error(y_true, y_pred))

print(RMSE)

10

 

RMSLE (Root Mean Squared Logarithmic Error)

定義式

RMSLE

 

(n = 件数 、y = 実測の値、ŷ =予測の値)

 

ただしRMSEには弱点があります。というのは以下になります。

  • はずれ値があると弱い(はずれ値)にひきずられてしまいます。
  • データの分布が正規分布でないと精度がない。
  • 狭い値で変化している場合に弱い。

対数の差をとった平方平均二乗誤差です。

RMSLEとか対数平方平均二乗誤差といいます。

 

コード:

from sklearn.metrics import mean_squared_log_error

import numpy as np

y_true = [100, 110, 120, 130]

y_pred = [110, 120, 130, 140]

RMSLE=np.sqrt(mean_squared_log_error (y_true, y_pred))

print(RMSLE)

 

0.08377189734210047

 

これには以下の特徴があります。

  • はずれ値に強い。
  • 多めに予測するよりも小さく予測するのに、誤差がでるようになっている。