首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >K折叠交叉验证模型评估

K折叠交叉验证模型评估
EN

Stack Overflow用户
提问于 2018-07-09 14:17:29
回答 2查看 1.2K关注 0票数 2

我一直在阅读关于k折叠交叉验证技术的文章,并通过这个例子进行了研究。

代码语言:javascript
复制
>>> clf = svm.SVC(kernel='linear', C=1)
>>> scores = cross_validation.cross_val_score(
...    clf, iris.data, iris.target, cv=5)
...
>>> scores                                              
array([ 0.96...,  1.  ...,  0.96...,  0.96...,  1.        ])

得分估计的平均分数和标准差如下:

代码语言:javascript
复制
>>>
>>> print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
Accuracy: 0.98 (+/- 0.03)

根据本源的说法

当你执行k折叠简历时,你会得到模型误差的k个不同的估计,比如e_1,e_2,e_3,.,e_k,因为每个e_i都是误差估计,理想情况下应该是零。 为了检验你的模型偏差,找出所有e_i值的平均值。如果这个值很低,它基本上意味着你的模型平均误差很小--间接地确保了模型对数据的理解足够准确。

以虹膜数据集支持向量机为例,其均值为0.98,这是否意味着我们的模型不够灵活?

EN

回答 2

Stack Overflow用户

发布于 2018-07-10 15:55:50

  1. 链接到的Wordpress站点引用的是"error“,而您使用的代码是计算accuracy,所以更高的值更适合您。
  2. 平均精度为0.98。是不是很好?我不能说,因为它只能相对于基准来判断。
  3. 在进行交叉验证时,您主要关心的是分类器的稳定性,而不是平均精度。交叉验证从本质上问:“我的分类器在数据集中的不同部分表现如何?”你用结果回答:“我的分类器对它以前从未见过的数据有多好的表现?”因此,你真的需要看看你的标准偏差,你的准确性分数。

Accuracy: 0.98 (+/- 0.03)

结果表明,你有95%的信心,平均精度将在0.95和1之间。

票数 1
EN

Stack Overflow用户

发布于 2018-07-09 15:10:01

所以我认为你的问题是对k折叠的意义的误解。我想解释几件事。

它用于机器学习,当你有一个较小的样本大小,你需要能够测试它有多准确。K折叠将你的数据分成k个不同的测试。因此,假设是5,它的20%的测试,80%的训练,和20%的测试是转换的每一个测试,同样的80%的是被训练的。这是有用的,当你担心的偏见,因为少量的数据。

你所得到的准确性是,在整个k次测试中,平均来说,它能够识别出你在寻找什么,在这种情况下,虹膜是正确识别的。

代码语言:javascript
复制
0.98% is quite a decent number so your model is fine. Thats an error rate of 0.02 
which is close to the 0 of the goal, as it is unlikely to ever hit 0.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51247739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档