前回の記事は【ROC曲線とAUC】機械学習の評価指標を説明しました。今回は連続値回帰モデルの評価指標のRMSLEを紹介したいと思います。
先ず、RMSEを説明します。
RMSE (Root Mean Squared Error)
定義式
(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)
定義式
(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
これには以下の特徴があります。
- はずれ値に強い。
- 多めに予測するよりも小さく予測するのに、誤差がでるようになっている。