机器学习笔记绪论模型评估与选择

LabulaH LabulaH     2022-10-21     587

关键词:

目录

第一章 绪论

0️⃣引言

1️⃣基本术语

2️⃣假设空间

3️⃣归纳偏好

第二章 模型评估与选择

0️⃣经验误差与过拟合

1️⃣评估方法

✏️留出法/hold-out

✏️交叉验证法/cross validation

✏️自助法/bootstrapping

✏️调参/parameter tuning 与最终模型

2️⃣性能度量/performance measure

✏️回归任务​

✏️分类任务

3️⃣比较检验

✏️假设检验

✏️交叉验证 t 检验

✏️McNemar检验

✏️Friedman检验与Nemenyi检验

4️⃣偏差与方差


第一章 绪论

0️⃣引言

西瓜问题:如何辨别一颗好瓜。

​​​​​​​

1️⃣基本术语

1.数据集/data set:一组记录的集合。

2.示例(样本、特征向量)/instance/sample/feature vector:每条记录是关于一个事件或对象的描述。

3.属性(特征)/attribute/feature:反应事件或对象在某方面的表现或性质的事项。

4.属性值/attribute value:属性上的取值。

5.属性空间(输入空间、样本空间)/attribute space/sample space:属性张成的空间。

6.学习(训练)/learning/training:从数据中学得模型的过程。

7.训练数据/training data:训练过程中使用的数据,每个样本称为“训练样本/training sample”,训练样本组成的集合称为“训练集/training set”。

8.假设/hypothesis:学得模型对应了关于数据的某种潜在规则。

9.真相(真实)/ground-truth:潜在规律自身。

10.学习器/learner:模型的别称。

11.标记/label:关于示例结果的信息。

12.样例/example:拥有了标记信息的示例。

13.标记空间(输出空间)/label space:所有标记的集合。

14.分类/classification:预测的是离散值的学习任务。

15.回归/regression:预测的是连续值的学习任务。

16.二分类/binary classification:只涉及两个类别的分类任务,通常一个称为“正类/positive class”,一个称为“反类/negative class”。

17.多分类/multi-class classification:涉及多个类别的学习任务。

18.测试/testing:学习到模型之后对样本进行预测的过程。

19.测试样本/testing sample:被预测的样本。

20.聚类/clustering:把训练集中的对象分为若干组,每个组称为一个“簇/cluster”。

21.监督学习/supervised learning:学习任务为分类和回归的代表。

22.无监督学习/unsupervised learning:学习任务为聚类的代表。

23.泛化/generalization 能力:学得的模型适用于新样本的能力。

24.分布/distribution:样本空间的全体样本服从的一种规律。

26.独立同分布/independent and identically distributed,简称i.i.d. :获得的每个样本都是独立地从这个分布上采样获得的。

2️⃣假设空间

我们可以把学习过程看作一个在所有假设(hypothesis)组成的空间中进行搜索的过程,搜索目标是找到与训练集“匹配”的假设,即能够将训练集中的瓜判断正确的假设。假设的表示一旦确定,假设空间及其规模大小就确定了。

3️⃣归纳偏好

机器学习算法在学习过程中对某种类型假设的偏好,称为“归纳偏好”。

一般性的原则来引导算法确立“正确”的偏好:

         奥卡姆剃刀/Occam‘s razor:这是一种常用的、自然科学研究中最基本的原则,即“若有多个假设与观察一致,则选最简单的那个”。

对于一个学习算法a,若它在某些问题上比学习算法b好,那么必然存在另一些问题,在那里b比a好。

        “没有免费的午餐”定理/No Free Lunch Theorem(简称NFL定理):无论学习算法a多聪明,学习算法b多笨拙,它们的期望性能相同。(❗前提是问题出现的机会相同或同等重要)

脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义。

第二章 模型评估与选择

0️⃣经验误差与过拟合

1.错误率/error rate:分类错误的样本数占样本总数的比例。即如果在m个样本中有a个样本分类错误,则错误率E = a / m。

2.精度/accuracy:1 - a / m 称为精度,即“精度 = 1 - 错误率”。

3.误差/error:学习器的实际预测输出与样本的真是输出之间的差异。学习器在训练集上的误差称为“训练误差/training error”或“经验误差empirical error”,在新样本上的误差称为“泛化误差generalization error”。

显然,我们希望得到泛化误差小的学习器。然而,我们事先并不知道新样本是什么样,实际能做的是努力使经验误差最小化。

为了达到这个目的,应该从训练样本中尽可能学出适用于所有潜在样本的“普遍规律”,这样才能在遇到新样本时作出正确的判别。然而,当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。

4.过拟合/overfitting:学习器在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳。

5.欠拟合/underfitting:相对于过拟合,学习器对训练样本地一般性质尚未学好。

机器学习面临的问题通常是NP难甚至更难,而有效的学习算法必然是在多项式时间内运行完成,若可彻底避免过拟合,则通过经验误差最小化就能获最优解,这就意味着我们构造性地证明了“P=NP”;因此,只要相信“P≠NP”,过拟合就不可避免。

💡既然过拟合是不可避免的,那么我们该如何选择模型呢?

理想地解决方案当然是对候选模型地泛化误差进行评估,然后选择泛化误差最小的那个模型。

1️⃣评估方法

通常,我们可通过实验测试来对学习器的泛化误差进行评估并进而作出选择。为此,需使用一个“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”作为泛化误差的近似。通常我们假设测试样本也是从样本真实分布中独立同分布采样而得。

❗但需注意的是,为了得到“举一反三”的能力,测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过。

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

✏️留出法/hold-out

“留出法”直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,即D=S∪T,S∩T=∅。在S上训练处模型后,用T来评估其测试误差,作为对泛化误差的估计。

❗为避免因数据划分过程引入额外的偏差,划分时要尽可能保持数据分布的一致性,例如分类任务采用“分层采样”。

❗不同划分训练集的方法会导致不同的结果,所以一般采用多次随机划分、重复实验取平均值作为评估结果。

❗集合S和T的比例会导致模型较大差别,通常将大约2/3~4/5的样本用于训练,剩余样本用于测试。

✏️交叉验证法/cross validation

 “交叉验证法”先将数据集D划分为k个大小相似的互子集,即。每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样的到。然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。

❗在留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这必然会引入一些因训练样本规模不同而导致的估计偏差。

🖋️交叉验证法的一个特例:留一法/Leave-One-Out(简称LOO)

假定数据集D中包含m个样本,令k = m。

 

💡留一法使用的训练集与初始数据集相比只少了一个样本,因此实际评估的模型与期望评估的用D训练出的模型很相似。

❗ 数据集比较大时计算的开销也很大。

✏️自助法/bootstrapping

“自助法”是针对上述缺点的一个比较好的解决方案,它直接以自助采样法为基础。给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D’,这就是自助采样的结果。

D中有一部分样本会在D’中多次出现,而另一部分样本不出现。样本在m次采样中始终不被采到的概率是,取极限得到,即通过自助采样,初始数据集D中约有36.8%的样本未出现在采样数据集D’中。

于是我们可将D’用作训练集,D\\D’用作测试集;这样,实际评估的模型与期望评估的模型都使用m个训练样本,而我们仍有数据总量约1/3的、没在训练集中出现的样本用于测试。这样的测试结果,称为“包外估计”。

💡数据集较小、难以有效划分训练/测试集时很有用;而在初始数据量足够时,留出法和交叉验证法更常用一些。

✏️调参/parameter tuning 与最终模型

在进行模型评估与选择时,除了要对使用学习算法进行选择,还需对算法参数进行设定,这就是通常所说的“参数调节”或简称“调参”。

💡在现实中常用的做法,是对每个参数选定一个范围和变化步长。显然,有的时候选定的参数值往往不是“最佳”值,但这是在计算开销和性能估计之间进行折中的结果,通过这个折中,学习过程才变得可行。事实上,即便在进行这样的折中后,调参往往仍很困难。

❗通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,模型评估与选择中用于评估测试的数据集常称为“验证集”。

2️⃣性能度量/performance measure

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

✏️回归任务

✏️分类任务

🖋️错误率与精度

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

 对样例集D,分类错误率定义为

精度则定义为

 🖋️查准率precision、查全率recall和F1

错误率和精度虽常用,但并不能满足所有任务需求。例如在信息检索中,我们经常会关心“检索出的信息有多少比例是用户感兴趣的”“用户感兴趣的信息中有多少被检索出来了”。“查准率”与“查全率”是更为适用于此类需求的性能度量。

 

 查准率和查全率是一对矛盾的变量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。通常只有在一些简单任务中,才可能使查准率和查全率都很高。

逐个把样本作为正例进行预测,则可以计算出查全率和查准率,分别将它们作为横轴和纵轴,可以得到类似下面的P-R图。

根据如上P-R图,可以看出A曲线将B曲线“包住”,说明B性能优于A;但是若两曲线相交,则要具体判断。

然而,在很多情形下,人们往往希望把学习器A与B比出个高低。

但是这个值不太容易估算,因此人们就设计出了“平衡点/Break-Event Point”(简称BEP),它是综合考查准率、查全率的性能度量,它是“查准率=查全率”时的取值。

但是BEP还是过于简化了些,更常用的是F1度量:

 

 在一些应用中,对查准率和查全率的重视程度有所不同。F1度量的一般形式,能让我们表达出对查准率/查全率的不同偏好,它定义为

其中β>0度量了查全率对查准率的相对重要性。

①β=1  退化为标准的F1

②β>1  查全率有更大影响

③β<1  查准率有更大影响

 🖋️ROC与AUC

很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于阈值则分为正类,否则为反类。实际上,根据这个实值或预测结果,我们可将测试样本进行排序,“最可能”是正例的排在最前面,“最不可能”是正例的排在最后面,这样,分类过程就相当于在这个排序中以某个“截断点”将样本分为两部分,前一部分判作正例,后一部分则判为反例。

在不同的应用任务中,我们可根据任务需求来采用不同的截断点。例如若我们更重视“查准率”,则可选择排序中靠前的位置进行截断;若更重视“查全率”,则可选择靠后的位置进行截断。

因此,排序本身的质量好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏,或者说,“一般情况下”泛化性能的好坏。 


ROC全称是“受试者工作特征/Receiver Operating Characteristic”,其ROC曲线则是从这个角度出发来研究学习器泛化性能的有力工具。

与上一点介绍的P-R曲线相似,我们根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了“ROC曲线”。与P-R曲线使用查准率、查全率为纵、横轴不同,ROC曲线的纵轴是“真正例率”(简称TPR),横轴是“假正例率”(FPR),两者分别定义为:

 显然,对角线对应于“随机猜测”模型,而点(0,1)则对应于将所有正例排在所有反例之前的“理想模型”现实任务中通常是利用有限个测试样例来绘制ROC图,此时仅能获得有限个(真正例率,假正例率)坐标对,无法产生(a)中的光滑ROC曲线,只能绘制出如图(b)所示的近似ROC曲线。

 

 🖋️代价敏感/cost-sensitive 错误率与代价曲线/cost curve

在现实任务中,不同类型的错误所造成的后果不同。为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”。

 在非均等代价下,我们所希望的不再是简单地最小化错误次数,而是希望最小化“总体代价”,若将表2.2中的第0类作为正类,第1类作为反类,令分别代表样例集D的正例子集和反例子集,则“代价敏感”错误率为:

类似的,可给出基于分布定义的代价敏感错误率,以及其他一些性能度量如精度的代价敏感版本。

 代价曲线的绘制:ROC曲线上每一点对应了代价平面上的一条线段,设ROC曲线上点的坐标为(TPR,FPR),则可相应计算出FNR,然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC曲线上的每一个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为所在条件下学习器的期望总体代价,如图2.5所示:

3️⃣比较检验

有了实验评估方法和性能度量,看起来就能对学习器的性能进行评估比较了,那么怎么来做这个“比较”呢?

✏️假设检验

✏️交叉验证 t 检验

✏️McNemar检验

✏️Friedman检验与Nemenyi检验

4️⃣偏差与方差

机器学习笔记模型评估与选择

2.模型评估与选择2.1经验误差和过拟合不同学习算法及其不同参数产生的不同模型,涉及到模型选择的问题,关系到两个指标性,就是经验误差和过拟合。1)经验误差错误率(errorrate):分类错误的样本数占样本总数的比例。如果... 查看详情

机器学习笔记第二章:模型评估与选择

2.1经验误差与过拟合1.errorrate/accuracy2.error:trainingerror/empiricalerror,generalizationerror3.overfittingandunderfitting2.2评估方法1.holdout.直接将数据集$D$划分为两个互斥的集合$D=ScapT,ScapT=varnothing$,stratifiedsampling: 查看详情

机器学习第2章学习笔记模型评估与选择

1.训练误差:学习器在训练集上的误差,也称“经验误差”2.泛化误差:学习器在新样本上的误差显然,我们的目标是得到在新样本上表现更好的学习器,即泛化误差要小 3.过拟合:学习器把训练样本学的太好了,导致... 查看详情

机器学习吃瓜教程学习笔记1

目录第一章绪论1.2基本术语1.3假设空间第二章模型评估与选择2.1经验误差与过拟合2.2评估方法2.3性能度量第一章绪论1.2基本术语数据集,包含m个样本的集合。特征,样本的属性描述。样本空间,每个样本有d个特征... 查看详情

西瓜书阅读笔记------模型评估与选择

...(\\(E=a/m\\)),相应的$1-a/m$称为精度训练误差(trainingerror):学习器在训练集上的误差泛化误差(generalizationerror):学本文来自博客园,作者:辛几何旋律,转载请注明原文链接:https://www.cnblogs.com/zjz2333/p/ 查看详情

周志华《机器学习初步》模型评估与选择

周志华《机器学习初步》模型评估与选择Datawhale2022年12月组队学习✌文章目录周志华《机器学习初步》模型评估与选择一.泛化能力二.过拟合和欠拟合泛化误差VS经验误差过拟合VS欠拟合三.模型选择的三大问题如何获得测试结果&#... 查看详情

机器学习123模型评估与选择(上)

  第2章模型评估与选择2.1经验误差与过拟合先引出几个基本概念:误差(error):学习器的实际预测输出与样本的真实输出之间的差异。训练误差(trainingerror):学习器在训练集上的误差,也称“经验误差”。测试误差(testingerror)... 查看详情

斯坦福大学andrewng-机器学习笔记--机器学习算法的选择与评估

  大概用了一个月,AndrewNg老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结。笔记难免有遗漏和误解,欢迎讨论。  鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深表感谢... 查看详情

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

机器学习总结之第二章模型评估与选择2.1经验误差与过拟合错误率 =a个样本分类错误/m个样本精度 =1- 错误率误差:学习器实际预测输出与样本的真是输出之间的差异。训练误差:即经验误差。学习器在训练集上的误... 查看详情

南瓜书ml(task1)绪论+模型评估与选择

学习总结学习南瓜书,先看西瓜书本—第1章和第2章主要是讲一些基本概念和术语,可以先跳过以下知识点,等后面部分学完后再来回顾:第1章:【1.4-归纳偏好】可以跳过第2章:【2.3.3-ROC与AUC】及其以后... 查看详情

机器学习(西瓜书)模型评估与选择

1、评估标准  1)经验误差:训练集上产生的误差  2)泛化误差:对新样本进行预测产生的误差  3)过拟合:经验误差很小甚至为零,泛化误差很大(模型训练的很复杂,几乎涵盖了训练集中所有的样本点)  4)欠拟... 查看详情

机器学习模型评估选择与验证(代码片段)

模型评估、选择与验证1.为什么要有训练集与测试集?2.欠拟合与过拟合3.偏差与方差4.验证集与交叉验证4.1k折交叉验证4.2集成学习4.3自助法5.衡量回归的性能指标5.1MSE5.2RMSE5.3MAE5.4R-Squared6.准确度的陷阱与混淆矩阵6.1准确度的... 查看详情

一起来读西瓜书:第二章模型评估与选择

...规范的模型评估与选择方法论了。1)首先,我们要理解机器学习为什么需要一套模型评估与选择方法论?(经验误差与过拟合)在前一章的学习中,我们知道机器学习是对数据集的泛化过程,即从输入的数据中归纳出一套能适... 查看详情

hulu机器学习问题与解答系列|第一弹:模型评估

...这是科学家门捷列夫的名言。在计算机科学中,特别是在机器学习的领域,对模型的测量和评估同样至关重要。只有选择与问题相匹配的评估方法,我们才能够快速的发现在模型选择和训练过程中可能出现的问题,迭代地对模型... 查看详情

一起啃西瓜书机器学习-期末复习

机器学习-期末复习笔记第一章:绪论引言一般过程任务数据泛化能力第二章:模型评估与选择错误率&误差经验误差与过拟合评估方法性能度量错误率&精度查准率&查全率P-R曲线ROC&AUC偏差与方差第三章:线... 查看详情

python机器学习从零开始选择模型(代码片段)

...验证。此外还可以使用新的数据来评估算法模型。在评估机器学习算法时, 查看详情

《机器学习》(西瓜书)笔记--绪论

第一章  绪论1.1引言机器学习致力于研究如何通过计算的手段,利用经验(计算机系统中通常以数据的形式存在)来改善系统自身的性能。机器学习研究的主要内容是关于在计算机上从数据中产生模型的算法,即学习算法... 查看详情

机器学习:模型评估和选择

...ing)和欠拟合(underfitting)过拟合:小明脸上一个伤口,机器人为没上伤口才是小明,过分在意无关细节,导致该筛的没筛到欠拟合:身高 查看详情