5折交叉验证_模型评估之K折交叉验证

    上节我们说了留出法,这次说下K折交叉验证,这是我们做模型评估时经常使用的方法。

    K折交叉验证的3个要点:

    1:数据集划分为K个相同大小的互斥子集。

    2:通过分层抽样K个子集保持分布一致性。

    3:K次评估结果的均值,每次用K-1个集合训练,剩下的一个做模型评估。

270dcfc322bc8a3c88c1d824a5ca6be3.png

0c9f23891c8d2bc23efe64dcbd18b8c7.png

7c592c7e45eaa9f9d8b7a74b431b8c14.png

    上述例子中共有样本10个,我们做了5折交叉验证,看下测试集索引,所有样本集的并集就是整个样本集了,训练集与当前测试集的并集也是整个样本集,其实就是每次用其中把本样本做为训练集,剩余的两个做为测试集,最终是用这5组样本集训练的模型进行性能评估的平均。

    当K是样本集大小时就是:留一法。也就是每次只有一个样本做为验证集,留一法评估结果一般比较准确,就是当样本集太大时太耗时,所以一般很少用到留一法,这里就不多介绍了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
程序设计详情说明: 1.程序在全局设置中对输入和输出文件的目录、屏蔽警告、随机种子等进行设定,并将数据预处理方(归一化、标准化、PCA降维)实例化。 2.加载数据,使用data.drop()和.copy()返回数据副本,防止修改数据源。 3.观察数据,首先使用data.isnull().any()观察数据缺失情况,确认数据无缺失值后使用data.describe()方观察数据最大、最小值和平均值情况,以探测是否存在异常值,并对数据集进行了标准化和归一化后的观察。我们认为数据集数据完整,且未发现异常值,不需要其他预处理。此后对数据PCA降维,进行可视化观察,同时还尝试了核化PCA等方对数据进行观察,可以观察到较明显的决策边界。(见'程序源代码\机器学习\评价结果输出(预实验)\decom_1.png') 4.划分数据集并进行模型探索,设计了列表data_state和列表estimators=[name, estimator, param_grid] 并进行嵌套遍历,实现在6个不同数据状态下对4个模型进行网格搜索。并将网格搜索的主要结果记录在列表best_estimators=[name,grid_search.best_estimator_,state]中。 5.最优模型间的评估,对各数据状态下网格搜索的结果,即best_estimators列表中的6*4=24个模型进行十折交叉验证,并将结果记录在result字典中。 6.使用DataFrame将评估结果result输出到'程序源代码\机器学习\评价结果输出(预实验)\'目录下,同时使用matplotlib根据F1_macro分数绘制直方图,进行模型间比较。 结论: 可以观察到,随机森林在各个数据集上的表现都优于其他模型。同时,模型在原数据集上的表现整体优于降维后的数据集,标准化和归一化对随机森林模型的影响不明显。(见'程序源代码\机器学习\评价结果输出(预实验)\explore.png') 因此,接下来将在原数据集上对随机森林进行详细的调校、评估和测试。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值