Python机器学习——Sklearn——划分数据集——交叉检验

sklearn.cross_validation——train_test_split随机划分训练集和测试集

X_train,X_test,y_train,y_test=train_test_split(train_data,train_target,test_size=0.2,random_state=14)

train_date:所有划分的样本特征集

train_target:所有划分的样本结果

test_size:样本占比,如果是整数的话就是样本的数量

random_state:是随机数的种子。随机数种子:其实就是该组随机数的编号,在需要重复验证的时候,保证得到一组一样的随机数。

随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:

种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。


交叉检验能解决一次性测试所带来的问题。既然只切一次有问题,那就多切几次,多进行几次实验。每次切分时,都要保证这次得到的训练集合测试集与上次不一样,还要确保每条数据都只能用来测试一次。算法描述如下:

1、将这个大数据集分成几个部分

2、对于每一部执行以下操作:

a)将其中一部分作为当前测试集

b)用剩下的部分训练算法

c)在当前测试集上测试算法

3、记录每次得分及平均得分

4、在上述过程中,每条数据只能在测试集中出现一次,以减少(但不能避免)运气成分。

scikit-learn提供了几种交叉检验方法。有个辅助函数实现了上述交叉检验步骤

from sklearn.cross_validation import cross_val_score

scores=cross_val_score(estimator,X,y,scoring='accuracy')

average_accuracy=np.mean(scores)*100

你可能感兴趣的:(python机器学习)