sklearn.model_selection.train_test_split隨機划分訓練集和測試集


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]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM