sklearn.cross_validation.train_test_split用法
阿新 • • 發佈:2018-11-07
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
的值即可。