交叉验证


什么是交叉验证

拿最基本的交叉验证方法–k折交叉验证举例:
将训练集分成k个较小的集合: train_data=t1+t2+...+ti+...+tk t r a i n _ d a t a = t 1 + t 2 + . . . + t i + . . . + t k

for t in {t1, t2, ..., tk}:
    t作为验证集,其他k-1个集合合并后作为训练集
    计算出该模型的性能指标(如准确率)st
最终的性能指标S = avg(s1,s2,...,sk)

其他方法会在后边描述,主要原则基本和k折交叉验证相同

为什么要使用交叉验证

通常情况下,我们会将数据分成训练集和测试集。用训练集训练数据,然后在测试集上测试该模型的泛化能力。

但是当我们遇到有超参数的模型(如svm)时,不能直接用测试集来检验哪个超参数最优,而是必须先在原有基础上再分割出一个验证集,在验证集上检验哪个超参数最优,然后在测试集上测试模型的泛化能力。

而将数据分割成三个部分,会大大降低训练数据的数量,进而有可能会导致最终得出的模型解释能力不足,也会使模型的性能受到数据分割成训练和测试的随机性的影响。为了解决这一问题,我们可以使用交叉验证,充分的利用数据,同时也避免了随机性造成的模型性能不稳定。交叉验证在数据集较少的情况下优势较为明显。

不过,我们还是要注意,这样循环k次,会导致模型耗时更长,需谨慎使用。

怎样使用交叉验证

这里详细介绍一下在sklearn中使用交叉验证训练模型的全过程。
todo
http://sklearn.apachecn.org/cn/0.19.0/modules/cross_validation.html

交叉验证的种类

todo

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值