【機械学習・Python】Scikit-learnで回帰モデルの性能評価指標(決定係数・RMSE・MAE)を出力

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

機械学習における回帰問題の性能評価のために、Pythonで評価指標を出力する方法を解説します。ライブラリはScikit-learn(サイキット・ラーン)を用い、R2(決定係数)、RMSE、MAEをプログラムする方法を学んでいきましょう!

目次

本記事で取り扱う機械学習モデルの評価指標

本記事では下記に示すような回帰モデルの評価指標を対象として、Pythonでのプログラミング方法を解説していきます。

  • R2(決定係数)
  • MSE(平均二乗誤差)
  • RMSE(平均平方二乗誤差)
  • MAE(平均絶対誤差)

ここで、各評価指標の意味について知りたい方は下記の記事をご参照下さい。

Pythonを用いた回帰モデルの性能評価

R2(決定係数)

R2(決定係数)を得るためプログラミング方法を下記に示します。

from sklearn.metrics import r2_score

# サンプルデータ
y_true = [11, 14, 19, 29, 29, 34] # 実測値
y_pred = [11, 12, 17, 27, 30, 35] # 予測値

# R2(決定係数)
r2 = r2_score(y_true,                        # 実測値
              y_pred,                        # 予測値
              sample_weight=None,            # サンプルの重み
              multioutput="uniform_average"  # 複数スコアの集計方法
             )

print(r2)

MSE(平均二乗誤差)

MSEを得るためのプログラミング方法を下記に示します。

from sklearn.metrics import mean_squared_error

# サンプルデータ
y_true = [21, 24, 29, 39, 39, 44] # 実測値
y_pred = [21, 22, 27, 37, 40, 45] # 予測値

# MSE算出
mse  = mean_squared_error(y_true,                         # 実測値 
                          y_pred,                         # 予測値
                          sample_weight=None,             # サンプルの重み
                          multioutput='uniform_average',  # 複数スコアの集計方法
                          squared=True                    # True(MSEを算出), False(RMSEを算出)
                          )

print(mse)

RMSE(平均平方二乗誤差)

RMSEを得るためのプログラミング方法を下記に示します。RMSEはMSEと同様にmean_squared_errorメソッドを用いて導出できます。

from sklearn.metrics import mean_squared_error

# サンプルデータ
y_true = [21, 24, 29, 39, 39, 44] # 実測値
y_pred = [21, 22, 27, 37, 40, 45] # 予測値

# RMSE算出
rmse  = mean_squared_error(y_true,                         # 実測値 
                           y_pred,                         # 予測値
                           sample_weight=None,             # サンプルの重み
                           multioutput='uniform_average',  # 複数スコアの集計方法
                           squared=False                   # True(MSEを算出), False(RMSEを算出)
                          )

print(rmse)

MAE(平均絶対誤差)

MAEを得るためのプログラミング方法を下記に示します。

from sklearn.metrics import mean_absolute_error

# サンプルデータ
y_true = [51, 54, 59, 69, 69, 74] # 実測値
y_pred = [51, 52, 57, 67, 70, 75] # 予測値

# MAE算出
mae = mean_absolute_error(y_true,                       # 実測値
                          y_pred,                       # 予測値
                          sample_weight = None,         # サンプルの重み
                          multioutput='uniform_average' # 複数スコアの集計方法
                          )

print(mae)

【参考】AI・機械学習における配信情報まとめ

当サイトではAI・機械学習における「基礎」から「最新のプログラミング手法」に至るまで幅広く解説しております。また「おすすめの勉強方法」をはじめ、副業・転職・フリーランスとして始める「AI・機械学習案件の探し方」についても詳しく言及しています。

【仕事探し】副業・転職・フリーランス

【教育】おすすめ勉強法

【参考】記事一覧

最後に

この記事が気に入ったら
フォローしてね!

目次