Python で回帰モデルの評価指標を計算
Python で回帰モデルの評価指標を計算する方法を紹介します。
回帰モデルは訓練データの目的変数が数値である。そのため,比較的直観的な指標でモデルを評価することができます。
主な評価指標
回帰モデルの主な評価指標は以下のとおりです。
平均二乗誤差 (Mean Squared Error : MSE)
予測値と正解の差(残差)の二乗をサンプルごとに足し上げる。それを残差平均和 (sum of squared errors : SSE) という。それを最後にサンプル数で悪ことで得られるものが平均二乗誤差 MSE である。
MSE はシンプルでわかりやすい指標である。ゆえに,さまざまなアルゴリズムの性能評価に使用される。
平均二乗偏差 (Root Mean Squared Error : RMSE)
平均二乗偏差は,数値予測モデルの良さを図る指標の一つである。RMSE は,MSE に平方根をとることで計算される。
低ければ低いほどよく,最良の場合には 0 になる。
平均絶対誤差 (Mean Absolute Error : MAE)
残差の絶対値をサンプルごとに足し上げる。それをサンプル数で割ることで得られるのが平均絶対誤差 MAE である。
MSE と比べ,残差が二乗されていない。その分,(予測の)外れ値の影響を受けにくいという特徴がある。
決定係数 (R2)
決定係数 R2 は,検証データの平均値で予測した場合の残差平方和 SST (sum of squared total) と,モデルの残差平方和 SSE (sum of squared errors) の比率で,R2 = 1 – SSE/SST と定義される。
平均値予測というナイーブな予測に対して二乗誤差をどれだけ削げたかを示す指標である。誤差をすべてなくせば 1.0,平均値予測と同等で 0.0 になる。
Python で計算
Python で回帰モデルの評価指標を計算する。今回は,予測値 df[‘B’] と正解 df[‘A’] の回帰モデルを対象とする。
import pandas as pd
import numpy as np
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score
print('MAE : ', mean_absolute_error(df['B'], df['A']))
print('MSE : ', mean_squared_error(df['B'], df['A']))
print('RMSE : ', np.sqrt(mean_squared_error(df['B'], df['A']))
print('R2 : ', r2_score(df['B'], df['A']))