交叉验证(CrossValidation)方法思想简介

以下简称交叉验证(Cross Validation)为CV.CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set),首先用训练集对分类器进行训练,在利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标.常见CV的方法如下:

1).Hold-Out Method

将原始数据随机分为两组,一组做为训练集,一组做为验证集, 利用训练集训练分类器,然后利用验证集验证模型,记录最后的分类准确率为此Hold-OutMethod下分类器的性能指标.此种方法的好处的处理简单,只需随机把原始数据分为两组即可,其实严格意义来说Hold-Out Method并不能算是CV,因为这种方法没有达到交叉的思想,由于是随机的将原始数据分组,所以最后验证集分类准确率的高低与原始数据的分组有很大的关系,所以这种方法得到的结果其实并不具有说服性.

2).K-fold Cross Validation(记为K-CV)

将原始数据分成K组(一般是均分),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标.K一般大于等于2,实际操作时一般从3开始取,只有在原始数据集合数据量小的时候才会尝试取2.K-CV可以有效的避免过学习以及欠学习状态的发生,最后得到的结果也比较具有说服性.

3).Leave-One-Out Cross Validation(记为LOO-CV)

如果设原始数据有N个样本,那么LOO-CV就是N-CV,即每个样本单独作为验证集,其余的N-1个样本作为训练集,所以LOO-CV会得到N个模型,用这N个模型最终的验证集的分类准确率的平均数作为此下LOO-CV分类器的性能指标.相比于前面的K-CV,LOO-CV有两个明显的优点:

① 
a.每一回合中几乎所有的样本皆用于训练模型,因此最接近原始样本的分布,这样评估所得的结果比较可靠。

② 
b.实验过程中没有随机因素会影响实验数据,确保实验过程是可以被复制的。

但LOO-CV的缺点则是计算成本高,因为需要建立的模型数量与原始数据样本数量相同,当原始数据样本数量相当多时,LOO-CV在实作上便有困难几乎就是不显示,除非每次训练分类器得到模型的速度很快,或是可以用并行化计算减少计算所需的时间

SVM之交叉验证【转】相关推荐

  1. 机器学习——SVM之交叉验证对参数(C,gamma)进行优化以及选择

    目录 一.(C,gamma)简介 二.交叉验证 1.什么是交叉验证? 2.参数优化方法 3.python实现交叉验证cross_val_score(网格搜索算法GridSearchCV) 1)关键代码 ...

  2. matlab中svm testacc参数,使用Matlab进行交叉验证的多类SVM的完整示例

    我目前正在混淆使用Matlab实现带有交叉验证的SVM. stackoverflow上有很多帖子提到了有关SVM及其交叉验证的信息;然而,即使使用最简单的'fisheriris'数据集也没有完整的例子 ...

  3. sklearn学习-SVM例程总结3(网格搜索+交叉验证——寻找最优超参数)

    网格搜索+交叉验证--寻找最优超参数 1548962898@qq.com 连续三天写了三篇博客,主要是为了尽快了解机器学习中算法以外的重要知识,这些知识可以迁移到每一个算法中,或许说,这些知识是学习并 ...

  4. 机器学习 数据量不足问题----1 做好特征工程 2 不要用太多的特征 3 做好交叉验证 使用线性svm...

    来自:https://www.zhihu.com/question/35649122 其实这里所说的数据量不足,可以换一种方式去理解:在维度高的情况下,数据相对少. 举一个特例,比如只有一维,和1万个 ...

  5. svm 交叉验证 python_【python机器学习笔记】SVM实例:有毒蘑菇预测

    假如我手上有一个未知的蘑菇,我知道它的一系列特征(伞盖形状.发现地点.颜色.气味等等),但是仅仅依靠个人的经验判断能不能吃难免会翻车,这就要用到更多的经验.大数据就很好地解决了这个个人经验缺乏的问题: ...

  6. 数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC...

    全文链接:http://tecdat.cn/?p=27384 在本文中,数据包含有关葡萄牙"Vinho Verde"葡萄酒的信息(点击文末"阅读原文"获取完整代 ...

  7. R语言惩罚逻辑回归、线性判别分析LDA、广义加性模型GAM、多元自适应回归样条MARS、KNN、二次判别分析QDA、决策树、随机森林、支持向量机SVM分类优质劣质葡萄酒十折交叉验证和ROC可视化

    最近我们被客户要求撰写关于葡萄酒的研究报告,包括一些图形和统计输出. 介绍 数据包含有关葡萄牙"Vinho Verde"葡萄酒的信息.该数据集有1599个观测值和12个变量,分别是 ...

  8. R语言使用caret包的train函数构建多项式核SVM模型(多项式核函数)模型构建分类模型、trainControl函数设置交叉验证参数、自定义调优评估指标

    R语言使用caret包的train函数构建多项式核SVM模型(多项式核函数)模型构建分类模型.trainControl函数设置交叉验证参数.自定义调优评估指标.tuneLength参数和tuneGri ...

  9. 5折交叉验证_交叉验证:评估模型表现

    注明:本文章所有代码均来自scikit-learn官方网站 在实际情况中,如果一个模型要上线,数据分析员需要反复调试模型,以防止模型仅在已知数据集的表现较好,在未知数据集上的表现较差.即要确保模型的泛 ...

最新文章

  1. c# wpf listbox 高度_WPF快速入门系列(1)——WPF布局概览
  2. window获取历史url_Facebook 开出历史最高赏金,55,000 美元奖励十年漏洞发现者
  3. 你是农村人吗,小时候放过牛吗,都有哪些好玩的趣事?
  4. php upload 缓存_thinkphp Upload上传文件在客户端生成的临时文件$_FILES['file']['tmp_name']...
  5. Android 四大开发组件
  6. json对象转map集合(json转map最快的方法)
  7. C#中使用ribbon界面
  8. ZooKeeper性能测试
  9. 1.计算机网络的发展,计算机网络的发展史「简述」
  10. 北京汇佳IB大考成绩公布
  11. 英语单词发音中/s/后的/p/,/t/,/k//tr/什么时候读作/b/,/d/,/g/,/dr/?
  12. linux有线网设置方法,有线网络使用教程
  13. 网盘上传文件服务器失败原因,win10系统在百度网盘上传文件一直失败的恢复教程...
  14. 如何用VB语言实现四连环游戏(重力四子棋)?
  15. python最长的单词判断_Python 找出英文单词列表(list)中最长单词链
  16. 如何查询中文期刊影响因子
  17. 禅道发信配置(网易企业邮箱)
  18. DNS错误不能上网怎么办 电脑dns错误修复方法
  19. 苹果发布会总结:全新 iMac、iPad Pro、 紫色 iPhone 12 和 AirTag 登场
  20. Excel 快速合并多行数据为一行

热门文章

  1. 解决 mysql 插入数据报错: Cannot add or update a child row: a foreign key constraint fails
  2. vue中的slot插槽
  3. Javascript DOM对属性的操作
  4. 数据库MySQL/mariadb知识点——日志记录(2)二进制日志
  5. Struts2的工作原理及工作流程
  6. iOS 10 升级后无法真机测试 Could not find Developer Disk Image
  7. 手把手教你使用CocoaPods管理你的iOS第三方开源类库
  8. 判断 iframe 是否加载完成的完美方法(转)
  9. androidpn的一次亲密接触(二)
  10. 实现IButtonControl接口时, PerformClick()方法的代码怎么写,请高手指导!