1. 程式人生 > >sklearn.cross_validation.train_test_split用法

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的值即可。