組み込み開発のためのPython · レッスン 135 / 220

学習データとテストデータを分ける

テストデータを最後の評価まで保留すると、未知データへの性能を見積もりやすくなります。時系列や同一装置の反復測定では、無作為分割が漏えいを招く場合があります。

テストデータを最後の評価まで保留すると、未知データへの性能を見積もりやすくなります。時系列や同一装置の反復測定では、無作為分割が漏えいを招く場合があります。 仕組みだけでなく、検証方法と運用上の注意も具体例で確認します。

基本の考え方

テストデータを最後の評価まで保留すると、未知データへの性能を見積もりやすくなります。時系列や同一装置の反復測定では、無作為分割が漏えいを招く場合があります。

安全に試すための確認

例は学習用データを使うもので、品質を保証する予測器ではありません。実データの欠損、単位、偏り、データ漏えいを確認し、テスト用データを学習中に参照しないでください。

コード例

手元のPython環境に貼り付ける前に、使用しているPythonの版と対象ライブラリの対応を確認してください。

from sklearn.model_selection import train_test_split

X = [[i] for i in range(20)]
y = [i % 2 for i in range(20)]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=7, stratify=y)
print(len(X_train), len(X_test))

手を動かす課題

同一個体から取った複数測定を分割する際、個体単位で分ける場合と行単位で分ける場合を比較してください。

参考資料

「機械学習の基礎」の章一覧へ