您好,登錄后才能下訂單哦!
sklearn的cross_validation包中含有將數據集按照一定的比例,隨機劃分為訓練集和測試集的函數train_test_split
from sklearn.cross_validation import train_test_split #x為數據集的feature熟悉,y為label. x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.3)
得到的x_train,y_train(x_test,y_test)的index對應的是x,y中被抽取到的序號。
若train_test_split傳入的是帶有label的數據,則如下代碼:
from sklearn.cross_validation import train_test_split #dat為數據集,含有feature和label. train, test = train_test_split(dat, test_size = 0.3)
train,test含有feature和label的。
自己寫了一個函數:
#X:含label的數據集:分割成訓練集和測試集 #test_size:測試集占整個數據集的比例 def trainTestSplit(X,test_size=0.3): X_num=X.shape[0] train_index=range(X_num) test_index=[] test_num=int(X_num*test_size) for i in range(test_num): randomIndex=int(np.random.uniform(0,len(train_index))) test_index.append(train_index[randomIndex]) del train_index[randomIndex] #train,test的index是抽取的數據集X的序號 train=X.ix[train_index] test=X.ix[test_index] return train,test
以上這篇python 劃分數據集為訓練集和測試集的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。