投稿

[Python 100日チャレンジ] Day 96 - モデル評価の基本

機械学習モデルを評価するために、訓練データとテストデータ、交差検証、分類指標を学びます。

[Python 100日チャレンジ] Day 96 - モデル評価の基本

評価が必要な理由

モデルは、学習に使ったデータだけで良い結果を出しても意味がありません。未知のデータに対してどれくらい当たるかを確認する必要があります。

train/test分割

分割前のXは特徴量、yは各行の正解で、行の対応がそろっていることが前提です。交差検証には選んだモデルmodelを用意し、最後の分類レポートにはテスト用データから得た予測predが必要です。分割しただけではモデルも予測値も作られないため、分類の学習・予測を済ませてから指標を読みましょう。

1
2
3
4
5
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

交差検証

1
2
3
4
from sklearn.model_selection import cross_val_score

scores = cross_val_score(model, X, y, cv=5)
print(scores.mean())

複数回に分けて評価することで、結果の偏りを減らせます。

分類指標

1
2
3
from sklearn.metrics import classification_report

print(classification_report(y_test, pred))

精度、再現率、F1スコアなどを確認できます。

今日のゴール

モデル評価では、未知データでの性能を見ることが大切です。train/test分割、交差検証、評価指標を使って、過信しないモデル開発をしましょう。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。