第2章 模型评估与选择

2.1 经验误差与过拟合

  学习器在训练集上的误差称为“训练误差”或“经验误差”,在新样本上的误差称为“泛化误差”;过拟合一般是由于学习能力过于强大,以至于把训练样本所包含的不太一般的特性都学到了,而欠拟合则通常是由学习能力低下而造成的。欠拟合比较容易克服,例如在决策树学习中扩展分支,在神经网络学习中增加训练轮数等,而过拟合则很麻烦,它是无法避免的,机器学习面临的问题通常是NP难甚至更难,而有效的学习算法必然是在多项式时间内运行完成,若可彻底的避免过拟合,则通过经验误差最小化就能获最优解,即意味着构造性的证明了“P=NP”,因此只要相信“P不等于NP”,过拟合就无法避免。

2.2 评估方法

  测试集应该尽可能与训练集互斥。

  “留出法”将数据集D划分为两个互斥的集合,其中一个作为训练集S,另一个作为测试集T。保留类别比例的采样方式通常称为“分层采样”,使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果,留出法的问题在于不好确定划分训练集合测试集的比例。

  “交叉验证法”cross validation,先将数据集D划分为k个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性,即从D中通过分层采样得到,然后每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样就可以获得k组训练\测试集,从而进行k次训练和测试,最终返回的是这k个测试结果的均值,交叉验证法评价结果的稳定性和保真性在很大程度上取决于k的取值。假定数据集D中包含m个样本,若另k=m,则得到了交叉验证法的一个特例,留一法(Leave-One-Out,简称LOO),留一法的缺陷在于数据集比较大时,训练m个模型的计算开销可能是难以忍受的。

  “自助法”直接以自助采样法为基础,给定包含m个样本的数据集D,对它采样产生数据集D‘:每次随机从D中挑选一个样本,将其拷贝放入D',然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到,重复上述过程m次后,得到了包含m个样本的数据集D',自助法在数据集较小、难以有效划分训练\测试集时很有用。

  一般地,用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。

2.4 性能度量

  performance measure,回归任务最常用的性能度量是“均方误差”(mean squared error)

  错误率与精度:错误率是分类错误的样本数占样本总数的比例,精度是分类正确的样本数占样本总数的比例。

  查准率(准确率precision)与查全率(召回率recall)与F1:“检索出的信息中有多少比例是用户感兴趣的”“用户感兴趣的信息中有多少被检索出来了”。

真实情况 预测结果
正例 反例
正例 TP(真实例) FN(假实例)
反例 FP(假正例) TN(真反例)

   查准率P与查全率R分别定义为:P=TP/(TP+FP)  R=TP/(TP+FN). 查准率高时查全率一般偏低,查全率高时查准率一般偏低。

  P-R曲线下面积的大小,一定程度上表征了学习器在查准率和查全率上取得相对“双高”的比例,但是不容易估算,所以平衡点(Break-Even Point)是查准率=查全率时的取值,更常用的是F1度量,即F1=2PR/(P+R),在一些应用中,对查准率和查全率的重视程度不同,比如推荐信息一般尽可能推荐用户感兴趣的东西,所以要求查准率高,而逃犯信息监控系统则要求查全率高。F1度量的一般形式是

  ROC与AUC:根据概率预测结果,可将测试样本进行排序,“最可能”是正例的排在最前面,“最不可能”是正例的排在最后面,分类过程相当于在这个排序中以某个“截断点”将样本分为两部分,前一部分作为正例,后一部分作为反例,在不同的应用任务中,可根据任务需求来采用不同的截断点,若更重视查准率,则可选择排序中靠前的位置进行截断,若更重视查全率,则可选择靠后的位置进行截断。ROC(Receiver Operating Characteristic)曲线,源于“二战”中用于敌机检测的雷达信号分析技术。ROC曲线的纵轴是“真正例率”(True Positice Rate,TPR),横轴是“假正例率”(False Positive Rate,FPR):

  TPR=TP/(TP+FN)   FPR=FP/(TN+FP)

  ROC曲线绘图过程:给定m+个正例和m-个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点,然后分类阈值依次设为每个样例的预测值,依次将每个样例划分为正例。设前一个标记点坐标为(x,y).当前若为真正例,则对应标记点的坐标为(x,y+1/m+);当前若为假正例,则对应标记点的坐标为(x+1/m-,y),然后用线段连接相邻点即得。

  ROC曲线的比较一般是通过比较ROC曲线下的面积,即AUC(Area Under ROC Curve)。

2.5 偏差与方差

  学习算法的期望预测为

  泛化误差可分解为偏差、方差与噪声之和。偏差度量了学习算法的期望预测与真实结果的偏离程度,即预测了学习算法本身的拟合能力;方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。泛化性能是由学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。

  一般来说,偏差与方差是有冲突的。

转载于:https://www.cnblogs.com/yiruparadise/p/5683088.html

西瓜书第二章 模型评估与选择相关推荐

  1. 西瓜书学习记录-模型评估与选择(第二章)

    西瓜书学习记录-模型评估与选择 第二章啦 整个过程可以描述为在训练集上去训练,在验证集上去调参,调完参之后再到训练集上去训练,直到结果满意,最后到测试集上去测试. 例子(反例): 上图选择蓝色的线,坏 ...

  2. 小吴的《机器学习 周志华》学习笔记 第二章 模型评估与选择

    小吴的<机器学习 周志华>学习笔记 第二章 模型评估与选择 上一周我们介绍了第一章的基础概念,这一次将带来第二章的前三节.后面的2.4 比较检验与2.5 偏差与方差,涉及概率论与数理统计概 ...

  3. 【读书笔记】周志华 机器学习 第二章 模型评估和选择

    第二章 模型评估和选择 1 欠拟合和过拟合 偏差和方差 1.1 欠拟合和过拟合 1.2 偏差和方差 2 评估方法 性能度量 2.1 评估方法 2.1.1 留出法 2.2.2 交叉验证法 2.2.3 自 ...

  4. 《机器学习》周志华 第二章——模型评估与选择笔记

    <机器学习>周志华 第二章--模型评估与选择 过拟合和欠拟合 过拟合:对训练数据拟合过当的情况,训练集表现很好,测试集表现差. 欠拟合:模型在训练和预测时都表现不好. 降低过拟合的方法: ...

  5. 机器学习总结之第二章模型评估与选择

    [第2章 模型评估与选择] [一.知识点归纳] 一.经验误差与过拟合 [分类]:对是离散值的结果进行预测. [回归]:对是连续值的结果进行预测. 分类和回归属于监督学习. [错误率]:分类错误的样本数 ...

  6. 西瓜书笔记之 模型评估与选择

    讲真,这书是越看觉得自己不会的越多,感觉好多概念,完全不是理工男喜欢的样子.. 首先了解一下NP问题,机器学习面临的问题多是NP完全问题(NP-C问题),号称世界七大数学难题之一. NP的英文全称是N ...

  7. 第二章——模型评估与选择

    2.1 经验误差与过拟合 先介绍几个专业名词: 错误率(error rate): 通常我们把分类错误的样本数占样本总数的比例称为错误率:即如果在 m m m个样本中有 a a a个样本分类错误,则错误 ...

  8. [西瓜书习题] 第二章 模型评估与选择

    2.1 数据集包含1000个样本,其中500个正例,500个反例,将其划分为包含70%样本的训练集和30%样本的测试集用于留出法评估,试估算共有多少种划分方式. 留出法将数据集划分为两个互斥的集合,为 ...

  9. 《机器学习》 周志华学习笔记第二章 模型评估与选择(课后习题)

    模型选择与评估 一.内容 1.经验误差与过拟合 1.1 学习器在训练集上的误差称为训练误差(training error),在新样本上的误差称为泛化误差(generalizion error). 1. ...

最新文章

  1. python中怎么比较两个列表-如何比较python中的两个列表并返回匹配
  2. 让bug无处藏身,Java 线上问题排查思路、常用工具
  3. php取指定长度,php截取指定长度的简单示例
  4. Java Servlet和JSP教程
  5. java 创建ssh用户秘钥,安装Java、Maven、Git,以及生成、拷贝密钥
  6. 【Python】os库的使用
  7. 服务器物理内存只增不降,服务器内存不断增加
  8. 信息安全完全参考手册之本书框架(目录)
  9. 一步一步写算法(之哈夫曼树 下)
  10. 第十六天-面向对象02-成员
  11. 华语歌坛年度压轴 王力宏新专辑《心中的日月》
  12. python入门教程pdf-Python基础教程-第3版 PDF 下载
  13. 07. 千万不要重载、||和, 操作符
  14. 详解贪心算法的几个经典问题(代码详解)
  15. Visual Studio 2019 离线安装包下载
  16. C#隐藏tabcontrol
  17. rrpp协议如何修改_【网安学术】基于NQA策略的RRPP优化机制
  18. moo0_使用Moo0系统监控器轻松监控计算机
  19. [局域网共享批处理文件]局域网共享时看不到工作组计算机的
  20. VSCode 好用的Lua真机调试插件-XXLua

热门文章

  1. 关于Heritrix学习的问题记录
  2. SQLite管理工具绿色
  3. S60 V3版SDK的官方扩展插件
  4. html json 访问工程,SpringBoot:Web项目中如何优雅的同时处理Json和Html请求的异常...
  5. linux 读取命令行输入,Linux read命令的使用
  6. python编程未来就业方向有哪些?
  7. python输入若干个整数试找出其中的最大数和最小数_Python编程的若干个经典小技巧...
  8. scheduled 一秒钟执行一次_spring boot的Scheduled帮你实现定时任务,spring boot实践(11)...
  9. 教你实现Vscode的Markdown预览
  10. 进入临界有什么用?STM32单片机怎么实现?