Python-sklearn包中拆分数据集进行交叉验证的方法对比

一、对比训练模型前,不同拆分数据集方法

  1. sklearn.model_selection.KFold()
    交叉采样,将实验数据划分得到若干个互斥子集。
  2. sklearn.model_selection.StratifiedKFold()
    根据数据标签各类型占比进行交叉采样,将实验数据划分得到若干个互斥子集。
  3. sklearn.cross_validation.train_test_split()
    按特定比例,将实验数据随机拆分为实验数据和测试数据。

此外还有sklearn.cross_validation.cross_val_score(),其作用在于利用所选的模型对实验数据进行交叉验证,并输出评分(根据cv的分组)。
参考:cross_val_score用法

二、具体用法比较
结合不同的问题选取相应的采样或数据拆分方法,一般而言在分类问题中,对数据进行交叉采样时选择StratifiedKFold可能比较合适,如果是回归问题则可选择另外两种方法。
1、KFold交叉采样
将训练/测试数据集划分n_splits个互斥子集,每次只用其中一个子集当做测试集,剩下的(n_splits-1)作为训练集,进行n_splits次实验并得到n_splits个结果。

from sklearn.model_selection import KFold
kfolder=sklearn.model_selection.KFold(n_splits=3,shuffle=False,random_state=None)

2、StratifiedKFold分层采样
与KFold最大的差异在于,StratifiedKFold方法是根据标签中不同类别占比来进行拆分数据的。

from sklearn.model_selection import
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值