【机器学习应用】【Python】模型评估(1)—— 交叉验证Cross Validation

本文介绍了机器学习中的交叉验证方法,通过KNN算法示例解释了为何需要交叉验证来避免模型过拟合。文章详细讲解了`cross_val_score()`函数、KFold分法以及shuffle-split交叉验证,并探讨了交叉验证的优点,如排除偶然性,更好地评估模型性能。
摘要由CSDN通过智能技术生成

【机器学习应用】【Python】模型评估(1)—— 交叉验证Cross Validation

以KNN算法举例,在某一组训练集与测试集的数据下可能k=3准确率最高,换一组可能就k=5最高,因此得出的结果不够客观。如果重复多次随机抽样分组,实际上到最后模型已经“见过”所有数据,不能反映模型真实准确率情况。

交叉验证

将数据划分为多组,通过多组组合分别组合成训练集和测试集,然后取不同的数据集组合的准确率作为该样本的准确率。

举例来说,我们将手里的数据随机分为四组数据(分别标为a,b,c,d),我们每次选择其中的一组作为测试集,其他三组作为训练集,就能够得到abc,abd,acd,bcd四组训练集组合。
请添加图片描述
分成四组,就进行四次测试,然后再将四次的预测结果取平均,得到模型的一个综合准确度。

为了防止模型在交叉检验时就“看”到了所有的数据,我们在交叉检验前可将数据先分成训练集和测试集,只用训练集去做交叉检验,最后再用测试集去检验模型的最终效果。在交叉检验中验证模型的数据集又叫做验证集(validation)

cross_val_score()

我们可以直接使用cross_val_score()对数据进行交叉检验,默认的检验次数为5。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression

# 加载数据
iris_data =<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值