【Scikit-learn】訓練データに対する適合性を評価する方法とサンプルコード

Pythonライブラリ「Scikit-learn」で生成した学習済みモデルの訓練データに対する適合性を評価する方法をサンプルコード付きで解説します。

訓練データに対する適合性評価

訓練データに対する適合性評価は、学習済みモデルが訓練用データにどれだけ合っているかを決定係数 $ R^2 $などの指標で評価することです。ただし、スコアが高すぎると、過学習の可能性もあるので注意が必要です。
決定係数 $ R^2 $ は、回帰直線が実測値(訓練用データなど)にどれだけうまく沿っているかを示す指標です。決定係数$ R^2 $は 0〜1の範囲の値をとります。値が1に近いほど、実測値に近いと評価できます。

  • $ R^2 = 1 $:すべての実測値が回帰直線上にあり、完全に再現できている。(理想的なモデル)
  • $ R^2 \approx 0.8 $:実測値が回帰直線の付近にあり、高い予測精度がある。(実用的なモデル)
  • $ R^2 = 0 $:実測値が回帰直線から大きく外れており、予測精度が低い。(不適なモデル)

決定係数の計算方法など、数理的な内容は以下ページで解説しています。

【単回帰分析とは】計算式の仕組みをVTuberの視聴者数予測を例にわかりやすく解説
単回帰分析とは?計算式の仕組みや求め方、決定係数による性能検証方法などをVTuberの視聴者数予測を例をわかりやすく解説します。

サンプルコード① 単回帰分析の場合

単回帰モデルの決定係数を求めるサンプルコードが以下になります。


※読み込んだデータ:dataset01.csv

コード解説

重要な箇所に絞って解説します。

from sklearn.metrics import r2_score
  • scikit-learnmetrics モジュールには、モデルの性能を評価する関数が多数あります。
  • r2_score はその中の1つで、回帰モデルの決定係数(R²)を計算する関数です。
r2_train = r2_score(y_train, y_train_pred)
  • r2_score() は、実際の値 y_train と予測値 y_train_pred の一致度を評価し、訓練データに対する決定係数 R² が得られます。
print("訓練データに対する R²(決定係数):", r2_train)
  • R²を表示。1.0に近いほど「訓練データに対してよく当てはまっている」

関連ページ

以下ページでは、Pythonライブラリ「scikit-learn」の使い方を数理的な背景も含めて解説していますので、是非ご一読ください。

【Scikit-learn超入門】使い方をサンプルコード付きで解説
Pythonライブラリ「Scikit-learn」で機械学習を行う方法を入門者向けに解説します。
この記事を書いた人
西住技研

プログラミング言語「Python」を研究、仕事、趣味でデータ分析や作業自動化などに活用してきたノウハウを情報発信しています。
筆者の詳しいプロフィールやお問合せはこちらのページまで。
YoutubeX(旧Twitter)でも情報発信中です!

西住技研をフォローする
Scikit-learn

コメント