交叉验证之k折交叉验证

什么是交叉验证,交叉验证是指把数据集分组,分为测试集和训练集,训练集用于训练模型,测试集用于测试模型。

k折交叉验证是指

k 折交叉验证通过对 k 个不同分组训练的结果进行平均来减少方差,因此模型的性能对数据的划分就不那么敏感。

  • 第一步,不重复抽样将原始数据随机分为 k 份。
  • 第二步,每一次挑选其中 1 份作为测试集,剩余 k-1 份作为训练集用于模型训练。
  • 第三步,重复第二步 k 次,这样每个子集都有一次机会作为测试集,其余机会作为训练集。
  • 在每个训练集上训练后得到一个模型,
  • 用这个模型在相应的测试集上测试,计算并保存模型的评估指标,
  • 第四步,计算 k 组测试结果的平均值作为模型精度的估计,并作为当前 k 折交叉验证下模型的性能指标

python代码:

>>> import numpy as np

>>> from sklearn.model_selection import train_test_split

>>> from sklearn import datasets

>>> from sklearn import svm

>>> from sklearn.model_selection import cross_val_score

>>> iris = datasets.load_iris()

>>> iris.data.shape, iris.target.shape

>>> clf = svm.SVC(kernel='linear', C=1)

>>> scores = cross_val_score(clf, iris.data, iris.target, cv=5)

>>> scores                                              

array([ 0.96...,  1.  ...,  0.96...,  0.96...,  1.        ])

然后找平均值,求出平均评分,以及置信区间

>>> print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))


  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值