sklearn.cross_validation.train_test_splitの使い方


from sklearn.cross_validation import train_test_split

マシンラーニングプロジェクトでは、トレーニングセット、クロス検証セット(CV)、またはクロス検証セット、テストセットに手動でデータセットを区切る必要がある場合があります.sklearnが提供するデータセットを区切る関数を使用します.次に例を示します.
>>> mat = sio.loadmat('data.mat')
>>> mat.keys()
dict_keys(['__header__', '__version__', '__globals__', 'X', 'Xval', 'yval'])

>>> mat.get('Xval').shape, mat.get('yval').shape
((307, 2), (307, 1))

>>> Xval, Xtest, yval, ytest = train_test_split(mat.get('Xval'),mat.get('yval').ravel(),test_size=0.5)
Xval.shape, Xtest.shape, yval.shape, ytest.shape
((153, 2), (154, 2), (153,), (154,))

上のコードを説明して、まずデータをインポートして、データがどのような組織形式であるかを見て、この時私たちはデータが訓練セットと検証セットだけで、テストセットがないことを発見しました.この場合、train_test_split関数が必要です.検証セットの一部をテストセットとして割り当てます.この関数は、上のXvalとyvalをテストセットとしてXtestとytestの一部に分けたことです.ここでtest_sizeは私が半分に分けてランダムに抽出することを示しています.他の割合を選択して、test_sizeの値を変更することもできます.