机器学习:常见交叉验证(cross-validation)

交叉验证

交叉验证(cross-validation)
交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。 是评估泛化性能的统计学方法,比单次划分训练集和测试集的方法更稳定,全面。数据集被多次划分,并且需要训练多个模型。

k折交叉验证(k-fold cross-validation)

也称S折交叉验证(S-Folder Cross Validation)
首先将数据划分成(大致)相等的5部分,每一部分叫做**折(fold)**使用一折作为测试集,其他折作为训练集。
scikit-learn中默认是五折交叉验证,当然也可以用cv参数修改。

from sklearn.svm import SVC
from sklearn.model_selection import cross_val_score
svm = SVC()
svm_scores = cross_val_score(svm, X, y)  # 返回一个含五个数的列表
print('svm的5折交叉验证平均值:', svm_scores.mean())

简单交叉验证

所谓的简单,是和其他交叉验证方法相对而言的
首先,我们随机的将样本数据分为两部分(比如: 70%的训练集,30%的测试集),然后用训练集来训练模型,在测试集上验证模型及参数。
接着,我们再把样本打乱,重新选择训练集和测试集,继续训练数据和检验模型。最后我们选择损失函数评估最优的模型和参数。

留一交叉验证(Leave-one-out Cross Validation)

该方法是k折交叉验证的特殊情况,主要用于样本量非常少的情况,样本数N <= 50.
我们令K 等于样本数N,每次选择1个样本来验证预测模型的好坏,剩余N-1个样本用于训练。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JiYH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值