机器学习中的cross-validation

什么是cross-validation

在机器学习中,将数据集分为两部分,一部分用来训练,一部分用来测试。为了模型能学习到更完备又不带“偏见”的特征,于是重复数据划分的过程,保证所有的数据都会被丢入到模型中进行训练。在这个过程中,上一次用于测试的数据可能下次就会用于训练,上一次用于训练的数据,下次可能会用于测试,于是称其为交叉验证。

1.k-fold cross-validation(k折交叉验证)

 将数据随机分为K个互斥的子集。每次取一个子集用于测试,剩余用于训练,重复K次。

2.stratified k-fold cross-validation(分层k折交叉验证)

2.1分层k折交叉验证在分类问题上的应用

与k折交叉验证的区别是:一般用于非均衡数据集(某一类或几类数据特别多或者少)。分层k折交叉验证中,每一折各类别之间比例保持与原数据集相同。但同时也要注意,划分的子集依然需要保持互斥。

2.2分层交叉验证在回归问题上的应用

我们首先将目标值划分区间,然后基于不同区间去做分层k折交叉验证。

2.2.1Sturge's Rlue

当你不确定划分区间的数量时可以采用Sturge's Rlue,其中N为你的数据量:

Number of Bins = 1+\log_2{N}

3.hold-out based validation

当数据集非常大的时候使用(没有交叉验证)

4.leave-one-out cross-validation

5.group k-fold cross-validation

以医学图像数据集为例:由于每个病人可能存在好几张图片,在划分训练集与验证集的过程中,要保证出现在训练集的病人图片不能出现在验证集。于是便需要采取分组操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值