Python

Pythonで機械学習を学ぶ モデルの検証法を確認する ホールドアウト法、交差検証法

機械学習モデルでは汎化性能(学習したデータだけでなく、未知のデータでも正しく予想できること)が求められる。

ホールドアウト法

学習用とテスト用にデータを2つに分けて検証する。具体的には、学習データとテストデータにランダムに分割し、学習データでモデルを学習させ、テストデータでモデルを検証する。具体的には、以下のようにする。(重回帰のサンプルより抜粋

# 訓練データ、テストデータの準備
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=0)

しかし、分割するという操作であるため、たまたま高く評価されてしまう可能性、分割したために学習用のデータ量が少なくなってしまうという2つの問題がある。

交差検証法

限られたデータを最大限活用し、学習用、検証用に役割を交差する検証法。

代表的な手法に「k分割交差検証法」、その応用として「1個抜き交差検証法」がある。