2.1经验误差与过拟合

学习器在训练集上的误差称为“训练误差”(training error)或”经验误差“。
当学习器把训练样本学得“太好”了的时候,
很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的的一般性质,
这样就会导致泛化性能下降,
这种现象在机器学习中称为“过拟合”(overfitting)。

2.2评估方法

当我们只有一个包含m个样例的数据集D={(x1,y1),(x2,y2),·······,(xm,ym)},既要训练,又要测试,怎样才能做到呢?
答案是:
通过对D进行适当的处理,从中产出训练集S和测试级T。下面介绍几种常见的做法。

2.1、留出法
直接将数据集划分为两个互斥的集合,2/3-4/5。

划分原则:划分过程尽可能保持数据分布的一致性

方法缺陷:训练集过大,更接近整个数据集,但是由于测试集较小,导致评估结果缺乏稳定性;测试集大了,偏离整个数据集,与根据数据集训练出的模型差距较大,缺乏保真性。

2.2、交叉验证法
将数据集划分为k个大小相似的互斥子集,每个子集轮流做测试集,其余做训练集,最终返回这k个训练结果的均值。

优点:更稳定,更具准确定;

缺单:时间复杂的较大

2.3、自助法
包含m个样本的数据集D,对D进行随机抽样构建D’(抽取m次),然后将抽到的数据对象放回D,D’用作训练集,剩余数据作为测试集。某样本不被抽到的概率:

因此初始样本集D约有0.732的样本做训练集,0.368的样本做测试集

优点:适合较小的、难以有效划分训练/测试集的数据集;

缺点:产生的数据集改变了原始数据集的分布,这样会引入估计偏差。

2.4、调参
调参对象:1算法的固有参数,如k-means中的类簇个数;2模型的参数,如深度学习模型中上百亿个参数。两种参数均是产生多个模型之后基于某种评估方法来进行选择,不同之处在于前者通常是由人工设定多个参数候选值,后者通过学习。

参数是连续的,不可能一一实现,现实的做法是选取一个步长,所以选出的参数往往不是最好的,这是综合考虑开销与性能(没有免费的午餐)所做的折中的结果。

性能度量:错误率和精度,两者相加为1;均方误差,概率分布函数。

2.3性能度量

对学习器的泛化能力进行评估,不仅需要有效可行的实验评估方法,
还需要有衡量泛化能力的评价标准,这就是”性能度量“(performance measure)。

首先判断目标任务是回归还是分类。

如果是回归那么性能度量方法为聚方误差:

下面主要介绍分类任务中常用的性能度量。
2.3.1 错误率与精度
错误率是分类错误的样本数占样本总数的比例,精度则相反。
2.3.2 查准率,查全率与F1

分类结果混淆矩阵

查准率:挑出来的真好瓜占所有挑出来好瓜的概率;

查全率(召回率):被挑出来的好瓜占所有好瓜的概率。

准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低,召回率低、准确率高,当然如果两者都低,那是什么地方出问题了

综合考虑查准率和查全率 进而提出了 F1-measure 相当于精确率和召回率的综合评价指标
当F1较高时则能说明试验方法比较有效。

宏查准率、宏查全率,微查准率、微查全率不在单独介绍。

P-R图用来比较两学习器性能方法


如上图,横轴是查全率

1)c曲线被ab曲线包住,毫无疑问,ab优于c学习器;2)寻找平衡点,如图中的红点,当查准率=查全率时,数值越高,对应的学习器往往越优秀。

3.3 ROC、AUC和EER
与P-R曲线类似,我们根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别作为横、纵坐标做图。

ROC曲线的的横轴为:假正例率 FP

ROC曲线的的纵轴为:真正例率 TP

ROC曲线、AUC和EER示意图
给定一个学习系统,如果更多的正样本被识别为正样本,那么也就意味着更多的负样本被识别成了正样本。图中的对角线对应于“随机猜测”模型。

1)ROC即为绿线。视情况而定,如果面部识别开锁系统的话,观察假正率为零时,真正率的高度,越高越好;

2)AUC即为蓝色面积。面积越大越好

3)EER等错误率即为绿色原点.在该点处 假正率FP和假错率FN相等,该点值越小越好。

也可以基于有限样例绘制出ROC曲线与AUC

代价敏感错误率
不同类型的错误所造成的后果或者代价是不同的,

代价敏感错误率是基于非均等代价的。二分类代价矩阵:costij表示将第i类样本预测为第j类样本的代价。一般说来,costii=0;若将第0类判别为第1类所造成的损失更大,则cost01> cost10;

在非均等错误代价下,我们希望的是最小化“总体代价”,这样“代价敏感”的错误率为:

2.4 比较检验
为什么引入该部分???

1)需要比较的是泛化误差,但是我们只有经验/测试误差,测试误差是泛化误差的近似,两者接近可能性较大,偏离可能性较小;
2)测试集上的性能与测试集本身的选择有关系,同一个模型在不同测试集上的测试误差不同;
3)机器学习算法具有随机性,即便用同一个算法、同样的参数在同一个测试集上运行多次,测试结果也有可能不同。若在某测试集上学习器A比B好,则A的泛化性能是否在统计意义上由于B,这个结论的把握又有多大???

假设检验
此处,“假设”指的是对样本总体的分布或已知分布中某个参数值的一种猜想。例如,假设模型泛化错误率为\epsilon _{0}(为假设),而测试误差为\epsilon _{1},两者是否相同???未必;但是两者接近的可能性应该比较大,相差很远的可能性比较小。因此可以通过测试错误率来推测泛化错误率的分布,这就是一种假设检验。




交叉验证t检验

McNemar检验

MaNemar主要用于二分类问题,与成对t检验一样也是用于比较两个学习器的性能大小。主要思想是:若两学习器的性能相同,则A预测正确B预测错误数应等于B预测错误A预测正确数,即e01=e10,且|e01-e10|服从N(1,e01+e10)分布。

因此,如下所示的变量服从自由度为1的卡方分布,即服从标准正态分布N(0,1)的随机变量的平方和,下式只有一个变量,故自由度为1,检验的方法同上:做出假设–>求出满足显著度的临界点–>给出拒绝域–>验证假设。

Friedman检验与Nemenyi后续检验
上述的三种检验都只能在一组数据集上,F检验则可以在多组数据集进行多个学习器性能的比较,基本思想是在同一组数据集上,根据测试结果(例:测试错误率)对学习器的性能进行排序,赋予序值1,2,3…,相同则平分序值,如下图所示:

若学习器的性能相同,则它们的平均序值应该相同,且第i个算法的平均序值ri服从正态分布N((k+1)/2,(k+1)(k-1)/12),则有:



服从自由度为k-1和(k-1)(N-1)的F分布。下面是F检验常用的临界值:

若“H0:所有算法的性能相同”这个假设被拒绝,则需要进行后续检验,来得到具体的算法之间的差异。常用的就是Nemenyi后续检验。Nemenyi检验计算出平均序值差别的临界值域,下表是常用的qa值,若两个算法的平均序值差超出了临界值域CD,则相应的置信度1-α拒绝“两个算法性能相同”的假设。


2.5偏差与方差
偏差-方差分解是解释学习器泛化性能的重要工具。在学习算法中,偏差指的是预测的期望值与真实值的偏差,方差则是每一次预测值与预测值得期望之间的差均方。实际上,偏差体现了学习器预测的准确度,而方差体现了学习器预测的稳定性。通过对泛化误差的进行分解,可以得到:

期望泛化误差=方差+偏差
偏差刻画学习器的拟合能力
方差体现学习器的稳定性

易知:方差和偏差具有矛盾性,这就是常说的偏差-方差窘境(bias-variance dilamma),随着训练程度的提升,期望预测值与真实值之间的差异越来越小,即偏差越来越小,但是另一方面,随着训练程度加大,学习算法对数据集的波动越来越敏感,方差值越来越大。换句话说:在欠拟合时,偏差主导泛化误差,而训练到一定程度后,偏差越来越小,方差主导了泛化误差。因此训练也不要贪杯,适度辄止。

PS:最后分享一个小故事,大家可以看一下“学生t氏检验”。哈~

机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY2-模型评估与选择相关推荐

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

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

  2. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY11-特征选择和稀疏学习

    特征工程是机器学习中非常重要的一个环节,它的好坏直接影响了机器学习效果的优劣.而特征工程里非常关键的一步就是特征选择. 如果把机器学习比作是一个厨师做菜的过程,那么数据就是原材料(菜),模型可以理解为 ...

  3. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY1-绪论

    我太喜欢这本书了 ,因为封面很好看 .PS:划重点是教科书!需要一定基础,京东正版有售~ 1.1 引言 机器学习:例如我们人吃过,看过很多西瓜, 所以基于色泽.根蒂,敲声这几个特征我们就可以做出相当好 ...

  4. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY16-强化学习

    文章目录 16.1 任务与奖赏 RL与有监督学习.无监督学习的比较 形象举例 16.2 K-摇臂赌博机 ε-贪心算法 16.3 有模型学习 16.4 免模型学习 16.5 值函数近似 16.6 模仿学 ...

  5. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY4-决策树

    4.1 基本流程 决策树(decision)是一类常见的机器学习算法,以二分类任务为例,我们希望从给定训练数据集学得一个模型用以对新示例进行分类,这个把样本分类的任务,可看做对"当前样本属于 ...

  6. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY15-规则学习

    15.1.规则学习 "规则学习" (rule learning)是从训练数据中学习出一组能用于对未见示例进行判别的规则. 形式上一般为: 式子中,右边的部分称为规则体(Body), ...

  7. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY13-半监督学习

    13.1 未标记样本 先说两个概念: 1)有标记样本(Labeled) 训练样本集Dl={(x1,y1), (x2,y2),-, (xl,yl)},这l个样本的类别标记已知. 2)未标记样本(unla ...

  8. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY10-降维和度量学习

    10.1 k近邻学习 k近邻(k-Nearest Neighbor,简称kNN)学习是一种常用的监督学习方法. 二.近邻分类算法 1.近邻分类算法的概念 在近邻分类算法中,对于预测的数据,将其与训练样 ...

  9. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY6-支持向量机

    今日份打卡~ 一定要读到最后啊,越往后越干货.@!@ 6.1 间隔与支持向量机 6.2 对偶问题 SMO Platt的SMO算法是将大优化问题分解为许多小优化问题求解的,并且对它们顺序求解的结果与将它 ...

  10. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY3-线性模型

    3.1 基本形式 一般用向量形式写成 本文介绍几种经典的线性模型,看我们先从回归任务开始,然后讨论二分类和多分类任务. 3.2 线性回归 线性回归是一种监督学习下的线性模型,线性回归试图从给定数据集中 ...

最新文章

  1. Blender创建三维教室场景学习教程 3D Classroom Environment Creation in Blender
  2. APUE读书笔记-03文件输入输出(2)
  3. 海量路由表能够使用HASH表存储吗-HASH查找和TRIE树查找
  4. C++中四种类型转换方式
  5. 环境在c盘_如何给女朋友解释为什么 Windows 上面的软件都把自己安装在 C 盘
  6. SpringBoot使用Mina框架进行服务端与客户端数据通信
  7. 20190508——python基础(if...in...循环语句、while循环、两种循环对比)
  8. Linux获取文件信息
  9. NodeJS学习第一季-路由规则
  10. ARP、RARP、ICMP、ping
  11. 《机器人编程实战》一一2.1 为什么需要更多努力
  12. 屏蔽 已阅读59% 前往新浪新闻查看全文
  13. JavaScript里的闭包(摘自JavaScript高级程序设计)
  14. android与单片机wifi通信原理图,基于单片机的wifi模块原理图分析
  15. nProtect的一些知识
  16. Linux-常用工具
  17. 小游戏流量变现瓶颈,新增长点是超级App?
  18. 贝壳金服 TiDB 在线跨机房迁移实践
  19. 关于Petalinux自启问题
  20. 面向对象之相关综合练习题

热门文章

  1. pytorch CUDA out of memor
  2. `pydot` failed to call GraphViz.Please install GraphViz
  3. ffmepg4 解码特别慢
  4. Ubuntu tensorflow自定义GPU版本op节点
  5. AngularJs创建自己的Grid–分页组件
  6. linux系统中查看己设置iptables规则
  7. OSPF中第一类外部路由和第二类外部路由的区别
  8. JAVA中希尔排序去的讲解_java 中基本算法之希尔排序的实例详解
  9. java批量事物管理_[疯狂Java]JDBC:事务管理、中间点、批量更新
  10. 模拟电路基础秦世才_模拟电子技术基础碎片化-晶体管及放大电路基础