机器学习算法笔记-评价

本文介绍了机器学习中的交叉验证集概念及其重要性,通过sklearn库中的cross_val_score函数演示了如何进行交叉验证。同时,讨论了混淆矩阵、精度、召回率和F1 Score等评价指标,并阐述了阈值对预测结果的影响以及ROC曲线和AUC在评估模型性能中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

交叉验证集

平时我们常用的是把数据集分成训练集和测试集,但是每训练一次就用测试集测试一次,如果测试结果不好还要再训练,这样就比较麻烦,因此就要用到交叉验证集了,那么什么是交叉验证集呢?
如下图,把原来的训练集分出一小部分作为验证集,在验证时使用训练集和验证集中的所有数据,那么这两部分数据集组合在一起就叫交叉验证集。
我的理解是,训练集的精度高,代表训练的偏差小,验证集的精度高,说明方差小,也就是鲁棒性好。一般来说我们肯定希望偏差还方差都小,但是方差和偏差的变化是一个反向关系,偏差小了,方差就大了,就好像训练函数是专门为当前训练集定制的,换一份不同的训练集效果就会变差,甚至很差,也就是常说的过拟合问题。反之,如果方差小了,偏差就会增大,当方差很小,偏差很大时,就是欠拟合的想象。为此需要在这两者之间找到一个平衡,这也是交叉验证集的意义所在,他的结果既反应了偏差,又反映了方差,这是测试集所不能做到的。
在这里插入图片描述
转自:https://www.bilibili.com/video/BV1rq4y1p7nJ?p=21
那么划分训练集和验证集如何划分呢?如下图,可以把交叉验证集划分成n份,选择其中的一份作为验证集。
因为交叉验证集的作用主要是用来调参的,所以测试一次、调整一次、训练一次很繁琐,此时可以中sklearn库中的sklearn.model_selection.cross_val_score()函数,该函数有很多参数,可以设置训练验证的迭代次数,选择什么样的指标等等。
该函数可以自动切分交叉验证集,如果重复次数cv=3,那么该函数就把它切分成3份,每次选择其中1份作为验证集,然后取三个Score的平均作为最后的验证结果。(注意:数据集的顺序要打乱,避免数据集的相邻数据有相关性;如果想要手写代码实现cross_val_score函数的功能,在切分数据集时一定要设置随机种子,保证每次切分的结果都是一样的,否则结果就没有意义了)</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值