您的位置:首页 > 其它

sklearn:随机划分训练集和测试集

2017-05-25 11:06 323 查看
一、sklearn.model_selection.train_test_split

作用:

随机划分训练集和测试集  

官网文档:
http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html#sklearn.model_selection.train_test_split
一般形式:

train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例选取train_data和test_data,

形式为:

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:是随机数的种子。(随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。)

二、sklearn.cross_validation模块

cross validation的含义:

对于原始数据我们要将其一部分分为train_data,一部分分为test_data。train_data用于训练,test_data用于测试准确率。在test_data上测试的结果叫做validation error。将一个算法作用于一个原始数据,我们不可能只做出随机的划分一次train_data和test_ data,然后得到一个validation error,就作为衡量这个算法好坏的标准。因为这样存在偶然性。我们必须好多次的随机的划分train
data和test data,分别在其上面算出各自的validation error。这样就有一组validation error,根据这一组validation error,就可以较好的准确的衡量算法的好坏。 

cross validation是在数据量有限的情况下的非常好的一个evaluate performance的方法。而对原始数据划分出train_data和test_data的方法有很多种,这也就造成了cross validation的方法有很多种。   

(1)sklearn中的cross validation模块,最主要的函数是:sklearn.cross_validation.cross_val_score。

他的调用形式:

scores = cross_validation.cross_val_score(clf, raw data, raw target, cv=5, score_func=None) 

参数解释: 

clf:不同的分类器,可以是任何的分类器。比如支持向量机分类器(clf = svm.SVC(kernel='linear', C=1))。 

cv:代表不同的cross validation的方法了。如果cv是一个int数字的话,并且如果提供了raw target参数,那么就代表使StratifiedKFold分类方式,如果没有提供raw target参数,那么就代表使用KFold分类方式。

cross_val_score函数的返回值就是对于每次不同的的划分raw_data时,在test_data上得到的分类的准确率。至于准确率的算法可以通过score_func参数指定,如果不指定的话,是用clf默认自带的准确率算法。 还有其他的一些参数不是很重要。

(2)train_test_split 

功能:

从样本中随机的按比例选取train_data和test_data。

调用形式:

X_train, X_test, y_train, y_test = cross_validation.train_test_split(train_data, train_target, test_size=0.4, random_state=0) 

参数解释:

test_size是样本占比。如果是整数的话就是样本的数量。random_state是随机数的种子。不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息