クロの制作日記

scikit-learnでデータをTrain・Test・Varidationに分割する方法

機械学習においてデータをTrain(学習)・Test(テスト)・Validation(検証)データに分割したい場合があると思いますが、scikit-learnの関数にはTrainとTestデータに分割するtrain_test_split()しかありません。

言うてもそんなに難しい処理ではないので自分でコードを書いても良いと思いますが、それさえ面倒な人は以下のようにして実装しましょう。

train_test_split()を2回行う

とてもしょうもない方法ですが、以下のように1回目のtrain_test_split()でTrain・Testデータに分割して、2回目のtrain_test_split()でTrainデータをTrain・Validationデータに分割することができます。

xData_train, xData_test, yData_train, yData_val = train_test_split(xData, yData, test_size=0.2)
xData_train, xData_val, yData_train, yData_val = train_test_split(xData_train, yData_train, test_size=0.25)

あまり賢い方法ではないですが、とりあえず分割できますので一つの方法として頭に入れておいて損はないかなと思います。