sklearn 划分數據集。


1.sklearn.model_selection.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)

    參數解釋: 

  train_data:所要划分的樣本特征集

  train_target:所要划分的樣本結果

  test_size:樣本占比,如果是整數的話就是樣本的數量

  random_state:是隨機數的種子。

     隨機數種子的意義在於,如何區分這個數據集,完全是按照隨機數種子來決定,至於怎么決定,我們其實並不關心,比如你分了兩次,隨機種子都是0,那么你得到的兩次划分也一定是一樣的。

  

 

 

 1     fromsklearn.cross_validation import train_test_split  
 2     train= loan_data.iloc[0: 55596, :]  
 3     test= loan_data.iloc[55596:, :]  
 4     # 避免過擬合,采用交叉驗證,驗證集占訓練集20%,固定隨機種子(random_state)  
 5     train_X,test_X, train_y, test_y = train_test_split(train,  
 6                                                        target,  
 7                                                        test_size = 0.2,  
 8                                                        random_state = 0)  
 9     train_y= train_y['label']  
10     test_y= test_y['label']  

 

  2. kl-fold 划分

  • 將全部訓練集S分成k個不相交的子集,假設S中的訓練樣例個數為m,那么每一個自己有m/k個訓練樣例,相應的子集為{s1,s2,...,sk}
  • 每次從分好的子集里面,拿出一個作為測試集,其他k-1個作為訓練集
  • 在k-1個訓練集上訓練出學習器模型
  • 把這個模型放到測試集上,得到分類率的平均值,作為該模型或者假設函數的真實分類率

這個方法充分利用了所以樣本,但計算比較繁瑣,需要訓練k次,測試k次

  

import numpy as np
#KFold
from sklearn.model_selection import KFold
X=np.array([[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]])
y=np.array([1,2,3,4,5,6])
kf=KFold(n_splits=2)    #分成幾個組
kf.get_n_splits(X)
print(kf)

for train_index,test_index in kf.split(X):
    print("Train Index:",train_index,",Test Index:",test_index)
    X_train,X_test=X[train_index],X[test_index]
    y_train,y_test=y[train_index],y[test_index]
    #print(X_train,X_test,y_train,y_test)
#KFold(n_splits=2, random_state=None, shuffle=False) #Train Index: [3 4 5] ,Test Index: [0 1 2] #Train Index: [0 1 2] ,Test Index: [3 4 5]

 

more:http://www.cnblogs.com/nolonely/p/7007432.html

 

 

 

 


免責聲明!

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



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