5折交叉验证_交叉验证与数据集划分,及其实现

本文介绍了交叉验证的概念,特别是5折交叉验证,强调了在数据集较小的情况下如何有效利用数据。内容包括模型选择和模型评估两个步骤,以及如何在实际操作中进行数据划分。提到了StratifiedKFold用于保持类别比例平衡,并给出了使用sklearn库进行数据划分的方法。
摘要由CSDN通过智能技术生成

关于交叉验证与数据集划分,及其实现

  • 交叉验证,主要就是当数据集较小的时候,为了更好的利用数据集,以kfold为例,将其等分为k份,进行k次训练,每次训练以第i份为test,其他的k-1份为train,然后对得到的结果的取平均,得到最终的模型评估数据
  • 一般的在k-1份上训练时,还需要兼具调参的过程,即选超参数

  • 首先要知道如何得到最终的模型,分为两步
    • 模型选择
    • 模型评估
  • 模型选择model selection:
    • 作用是选出在val上表现最好的超参数,是纵向的比较(主要是比较超参数的选择)
  • 模型评估model assessment:
    • 作用是无偏的对选出的模型进行评估,是横向的比较(和其他模型比较)
  • 一个数据集分为train_val_test三个部分
  • 下面以常用的一种交叉验证方式进行说明:
    • model_selection和test部分,用k-fold交叉验证,比如5折,10折
    • model_selection内部的train_val的划分,可以交叉验证(cross validation,cv),也可以直接holdout(留一,也就是直接split)
  • 实现部分:
    • 首先明确,我们划分的应该是index!,而不是直接对data划分,对index的划分会更加灵活一点
    • model_selection / test的划分:
      • 常见的是使用sklearn的 StratifiedKFold,Stratify是分层的意思,这有助于保证label的比例在每个部分都是一定的,避免出现正类负类比例在train/test中的不平衡所引起的误差,更甚者,如果test全是一个label,是无法使用roc_auc_score()的!
      • 首先是初始化:
        • class sklearn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值