sklearn 划分数据集。

1.sklearn.model_selection.train_test_split随机划分训练集和测试集html

     

 

    函数原型:dom

      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:所要划分的样本结果spa

  test_size:样本占比,若是是整数的话就是样本的数量code

  random_state:是随机数的种子。htm

     随机数种子的意义在于,如何区分这个数据集,彻底是按照随机数种子来决定,至于怎么决定,咱们其实并不关心,好比你分了两次,随机种子都是0,那么你获得的两次划分也必定是同样的。blog

  

 

 

 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']  

 

get

  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

相关文章
相关标签/搜索