train_test_splitでトレーニングセットとテストセットに分ける

機械学習をする上で用いるデータをトレーニングセットとテストセットに分割する必要がある。

 

レーニングセットで機械学習のモデルを構築し、dependent varialesとindependent variablesの関係を学習し、テストセットでその性能を図る。

 

なぜトレーニングセットとテストセットを分割する必要があるのか??

 

例えばトレーニングセットを試験勉強するために使っていた教材、テストセットを試験問題だとしよう。

 

もしトレーニングセットとテストセットで同じデータを使っていたら、当然試験問題そのものを勉強しているわけなので余程勉強不足かへマをしなければ試験では100点を取れるだろう。

 

機械学習もこれと同じである。ましてやコンピュータなので余計100点がとりやすい。

 

 

 

今回はそれを防ぐために、データをトレーニングセットとデータセットに分ける方法を学んでいく。

 

 

データの分け方 

from sklearn.model_selection import train_test_split

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=0)

 

train_test_split

第一引数:特徴行列

第二引数:目的行列

test_size:テスト用のデータを何割にするか(一般的に0.2~0.3くらい)

random_state:分割の乱数のシード値