1 函數用途
train_test_split()是交叉驗證中常用的函數,功能是將數組或矩陣按比例隨機划分為訓練集和測試集,使用方法為:
X_train,X_test, y_train, y_test =cross_validation.train_test_split(train_data,train_target,test_size=0.4, random_state=0, shuffle=True)
2 參數解釋:
- train_data:所要划分的樣本特征集
- train_target:所要划分的樣本結果
- test_size:如果為小數則代表樣本占比(0到1),如果是整數則代表樣本的數量,默認為0.25
- random_state:是隨機數的種子,默認為None。如果種子相同,則隨機數相同,如果種子不同,則隨機數不同。在需要重復試驗的時候,保證得到一組一樣的隨機數。比如你每次都填1,其他參數一樣的情況下你得到的隨機數組是一樣的。但填0或不填,則代表隨機數的種子是一個隨機值,每次結果都不同。
- shuffle:划分前是否對數組或矩陣進行洗牌,默認為True。
import numpy as np
from sklearn.model_selection import train_test_split
X = np.arange(10).reshape((5, 2))
y = range(5)
其中X,y分別為:
X= [[0 1]
[2 3]
[4 5]
[6 7]
[8 9]]
y= [0, 1, 2, 3, 4]
對數據集進行划分,訓練集占70%,測驗集占30%,固定隨機數的種子,划分前不重新洗牌:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=1,shuffle=False)
划分完的數據集如下:
X_train= [[0 1]
[2 3]
[4 5]]
y_train= [0, 1, 2]
X_test= [[6 7]
[8 9]]
y_test= [3, 4]