[机器学习手机13]scikit-learn几种交叉验证方式

这次需要介绍的是scikit-learn库里面的几种常见的交叉验证方式: 1) LeavePOut, 2) LeaveOneOut, 3) KFold, 4) Stratified KFold
其实归并起来,主要是两种,KFold和LeavePOut


先讲KFold,

sklearn.cross_validation.KFold(n, n_folds=3, shuffle=False, random_state=None)

KFold的意思是,将数据随机切分成K份,其中留一份给验证集,剩下的K-1份给训练集。 每次切分都可以创建一个训练集,一个验证集。一共切分K次。

参数: n是总数据量,n_folds是切的分数。shuffle是指每次随机切的时候,数据本身是不是也要重排序以下(就像我随机抽扑克牌的时候,抽牌是随机的,但是在抽的时候还要不要进行洗牌这个操作),而random_state就是洗牌的随机方式的选择。

举个栗子

import sklearn.cross_validation as cross_valid
kf=cross_valid.KFold(6,3)     #数据量是6个,一共切3份。
for train_index, test_index in kf:
    print train_index,test_index

输出结果

[2 3 4 5] [0 1]
[0 1 4 5] [2 3]
[0 1 2 3] [4 5]    #可以看到KFold切分了三次,其实按照KFold随机切分的方法,他可以切出超出K种的数据集,但是KFol

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值