sklearn.train_test_split()によるトレーニング用データ/検証用データの分割
◎環境:Python 3.6.7、scikit-learn 0.21.2
概要
scikit-learnのtrain_test_split()を用いて、データをトレーニング用と検証用に分割する方法をやってみる。
sklearn document - train_test_split()
ライブラリーのインポート
from sklearn.model_selection import train_test_split import numpy as np import matplotlib.pyplot as plt
元データの準備
サンプルとして、元データを以下のように準備
from sklearn.model_selection import train_test_split import numpy as np import matplotlib.pyplot as plt
データの分割
# トレーニング用データ/検証用データの分割 X_train,X_test,y_train,y_test = train_test_split(X,y,train_size=0.8) # トレーニング用データ80%で分割 print('X_train :') print(X_train) print('y_train :') print(y_train) print('X_test :') print(X_test) print('y_test :') print(y_test) fig = plt.figure() ax1 = fig.add_subplot(1,1,1) ax1.scatter(X_train,y_train,label='train',marker='o') ax1.scatter(X_test,y_test,label='test',marker='+') ax1.grid(True) ax1.legend() fig.show() #X_train : #[0.78947368 0.36842105 0.10526316 0.31578947 0.57894737 0.26315789 # 0.05263158 0.89473684 0.21052632 0. 0.63157895 0.84210526 # 0.47368421 0.42105263 1. 0.73684211] #y_train : #[4.57894737 3.73684211 3.21052632 3.63157895 4.15789474 3.52631579 # 3.10526316 4.78947368 3.42105263 3. 4.26315789 4.68421053 # 3.94736842 3.84210526 5. 4.47368421] #X_test : #[0.68421053 0.15789474 0.94736842 0.52631579] #y_test : #[4.36842105 3.31578947 4.89473684 4.05263158]
※補足:データはシャッフルされる(する/しないの指定は可能)
※補足:分割はランダムであり、結果は毎回異なる(シード値の指定により、結果を毎回同じにすることも可能)