データの分割

Data Splitting

データの分割(Data Splitting)とは、機械学習のデータセットを訓練データ、検証データ、テストデータに分けるプロセスです。モデルの汎化性能を適切に評価するための基本的かつ重要な手順です。

一般的な分割比率

訓練:検証:テスト = 60:20:20 や 70:15:15 が一般的です。データ量が十分な場合は80:10:10なども使われます。交差検証を用いる場合は訓練:テスト = 80:20とし、訓練データ内で交差検証を行います。

表:データの分割の要点まとめ
ひとことで言うとデータを訓練・検証・テストに分けて、公平に性能を測れるようにすること。
目安の比率訓練70%/検証15%/テスト15% あたりが一般的。
注意点時系列データは無作為に分けてはいけない。必ず時間順で区切る。

分割時の注意点

ランダム分割が基本ですが、時系列データでは時間順に分割し、将来のデータで過去を予測する「リーク」を防ぐ必要があります。また、グループ単位の分割(同じ患者のデータが訓練とテストに分かれないようにする等)も重要です。

図:データ分割の手順
1全データ収集した元データ
▶
2テストを先に確保最後まで触らない
▶
3残りを訓練/検証に学習と調整用に分ける
▶
4偏りを確認クラス比が崩れていないか

層化分割

分類タスクでは、各分割でクラスの比率が保たれるよう層化サンプリング(Stratified Sampling)を行うのがベストプラクティスです。