机器学习【西瓜书/南瓜书】--- 第2章模型评估与选择(上)(学习笔记+公式推导)

简介: 本博客为博主在学习 机器学习【西瓜书 / 南瓜书】过程中的学习笔记,每一章都是对《西瓜书》、《南瓜书》内容的总结和提炼笔记,博客可以作为各位读者的辅助思考,也可以做为读者快读书籍的博文,本博客对西瓜书所涉及公式进行详细的推理以及讲解,本人认为,不推导公式所学得的知识是没有深度的,是很容易忘记的,有些公式推导起来并不复杂,只是被看似复杂的数学表达式所“吓唬”,希望大家拿上纸笔,跟着博主一起学习,一起推导。

前言

本博客为博主在学习 机器学习西瓜书/南瓜书】过程中的学习笔记,每一章都是对《西瓜书》、《南瓜书》内容的总结和提炼笔记,博客可以作为各位读者的辅助思考,也可以做为读者快读书籍的博文,本博客对西瓜书所涉及公式进行详细的推理以及讲解,本人认为,不推导公式所学得的知识是没有深度的,是很容易忘记的,有些公式推导起来并不复杂,只是被看似复杂的数学表达式所“吓唬”,希望大家拿上纸笔,跟着博主一起学习,一起推导。

对于哪一部分的推导不理解的,可以评论出来,博主看到之后会尽快回复!


❗️ 注:本篇文章是第2章,其涵盖内容较为多和杂,读者在读本章节时,做到有所印象即可,其各种判断方法可以结合后续文章中的样例进行更进一步的理解。


本文只是第二章知识总结的一半,另一半见博客:机器学习【西瓜书/南瓜书】— 第2章模型评估与选择(下)(学习笔记+公式推导)


2.1 经验误差与过拟合

image.png

显然,我们希望得到 泛化误差 更小的学习器,即在新样本上能表现的很好的学习器,但是我们能做的只是努力使得 经验误差 最小化。往往一个在训练样本中表现很好的学习器,即分类错误率为 0 ,分类精度为 100 % ,但这种学习器在多数情况下表现的其实 并不好


为了能在新样本中表现很好,我们就需要从训练样本中尽量学出适用于所有潜在样本的 “普遍规律”。然而,当我们把训练样本学得 “太好了” 的时候,很可能把训练样本的一些特点当成了潜在规律,认为这些特点同样符合一般样本的普遍规律,这样就会导致泛化能力下降,这就被称为 过拟合(overfitting),亦称为过配


与过拟合相对应的是 欠拟合(underfitting),指的是对训练样本的一般性质并未学好,亦称为欠配


🌈接下举例子来理解什么是 过拟合 欠拟合

比如我们要学习分辨树叶,给出的训练样本具有的特点为:有锯齿、绿色,那么过拟合的结果就是,给出一片没有锯齿的绿叶,判断结果为:不是树叶(误认为树叶必须有锯齿);而欠拟合则是将草判断为树叶,因为草是绿色的(误认为绿色的就是树叶);通俗来讲,过拟合就是学多了,眼界小了;欠拟合就是学少了,眼界过大了。


欠拟合是比较容易克服的,但是过拟合则很麻烦。过拟合是机器学习面临的关键障碍,并且过拟合是无法彻底避免的。


这里再补充两个定义:

P : :多项式时间问题能在多项式时间内解决,即算起来很快

N P : 非确定多项式时间问题,能在多项式时间验证答案正确与否,即对答案的验证很快


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


在现实中,我们往往有很多学习算法是可供选择的,甚至对于同一个学习算法,对于不同的参数,会产生中不同的模型,对此,选择哪一种学习算法,使用哪一种的参数配置,这就是所谓的 模型选择(modelselection)。


2.2 评估方法

image.png

2.2.1 留出法(hode−out)

image.png

2.2.2 交叉验证法(crossvalidation)

image.png

image.png

image.png

2.2.3 自助法(bootstrapping)

image.png

2.2.4 调参与最终模型

大多数学习算法都有些 参数(parameter) 需要设定,参数配置不同,所学得的模型的性能往往也会有很大的差异,因此,在进行模型评估与选择时,除了要对适用学习算法进行选择,还需要对算法参数进行设定,这就是通常所说的 参数调节,或称 调参(parameter tuning)


学习算法的很多参数是在实数范围内取值,因此,对每种参数配置都训练出模型来是不可行的,通常的做法是对每个参数选定一个变化范围和变化步长,显然,这样选定的参数值往往不是最佳值,但这是在计算开销和性能估计之间折中的结果,事实上,即便在进行这样的折中处理后,调参也很困难。参数调得好不好往往对最终模型性能有关键性影响。


在模型选择完成后,学习算法和参数配置都已选定,此时应该用数据集 D重新训练模型,这个模型在训练过程中是用来所有 m 个样本,这才是我们最终提交给用户的模型。


我们通常把学得模型在实际使用中遇到的数据称为 验证集(validationset),我们用测试集上的判别结果来估计模型在实际使用时的泛化能力,把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。


2.3 性能度量

衡量模型泛化能⼒的评价指标,这就是 性能度量(performance measure),性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果;这就意味着,魔性的“好坏”是相对的,一个好的模型,不仅取决于算法和数据,还决定于任务需求。


image.png

2.3.1 错误率与精度

image.png

2.3.2 查准率、查全率与F1

虽然错误率与精度是常用的,但是并不能满足所有任务需求,🌈拿西瓜来举例,假定瓜农拉来了一车西瓜,我们用训练好的模型对西瓜进行判别,显然,错误率衡量了有多少比例的瓜被判别错误,但是若我们关心的是“挑出来的西瓜中有多少比例是好瓜”,或者“所有好瓜中有多少比例是被挑出来的”,那么显然错误率就不够用了,这时就需要其他的性能度量


🌈类似的需求在信息检索,web   搜索等应用中也十分常见,在这些问题中,我们通常会关心:“检索出来的信息有多少比例是用户所感兴趣的”,“用户感兴趣的信息中有多少是被检索出来了”,查准率(precision)查全率(recall) 是更适用此类需求的性能度量。查准率亦被称为准确率,查全率亦被称为召回率。


image.png

查准率和查全率是一对矛盾的量,一般来说,查准率很高的时候,查全率往往偏低;而查全率很高的时候,查准率往往偏低。🌈例如,若希望所有的好瓜都尽可能的被选择出来,则可以通过增加选瓜的数量来实现,如果将所有的西瓜都选上,那么所有的好瓜必然都被选上了,但这样与之对应的就是查准率会降低;若希望选出的瓜中好瓜的比例尽可能高,则可只挑选有把握的瓜,但这样就难免会漏掉一些好瓜,使得查全率很低。


通常只有在一些简单的任务中,才可能使查全率和查准率都很高。


在很多情况下,我们可以根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,排在后面的则是学习器认为“最不可能”是正例的样本,按照这个顺序把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率。以查准率为纵轴、查全率为横轴作图,就得到了查准率-查全率曲线,简称为 P − R 曲线,显示该曲线的图称为 P − R图:

image.png

P−R图直观地显示出学习器在样本总体上的查全率、查准率。在进行比较时,若一个学习器的 P − R曲线被另一个学习器的曲线完全包住,则可断言后者的性能优于前者,如上图中的 A  优于 C ,如果两个学习器的 P − R 曲线发生了交叉,如上图的 A和 B ,则难以一般性地断言两者的优劣,只能在具体的查准率或查全率条件下进行比较。然而在很多情况下,人们往往希望去比较出个高低,这时一个比较合理的判据就是比较 P − R  曲线下面积的大小,它在一定程度上表征了学习器在查准率和查全率上取得“双高”的比例。但这个值不容易估算,因此,人们设计了一些总和考虑查准率、查全率的性能度量:

image.png

image.png

2.3.3 ROC 与 AUC

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


不同的任务我们可以设置不同的截断点,如果我们更重视查准率,则可选择排序中靠前的位置进行截断;若更重视查全率,则可以选择靠后的位置进行截断。因此:排序本身的质量好坏,体现了总和考虑学习器在不同任务下的“期待泛化性能”的好坏,或者说,“一般情况下”泛化性能的好坏,R O C曲线则是从这个角度出发来研究学习器泛化性能的有力工具。


image.png

image.png

image.png

推导过程:

我们先来再次解释一下 R O C曲线的具体绘制过程,下面举例说明:

image.png

image.png

image.png

证毕!

image.png

推导过程:

image.png

image.png

证毕!


2.3.4 代价敏感错误率与代价曲线

🌈错误也是分类型的,错误地把患者诊断为健康人可能丧失了拯救生命的最佳时机,把正常人诊断为患者则仅是增加了进一步检查的麻烦。

为权衡不同类型错误所造成的的不同损失,可为错误赋予 非均等代价(unequal cost)


image.png

image.png

image.png




目录
相关文章
|
14天前
|
机器学习/深度学习 人工智能 算法
算法金 | 统计学的回归和机器学习中的回归有什么差别?
**摘要:** 统计学回归重在解释,使用线性模型分析小数据集,强调假设检验与解释性。机器学习回归目标预测,处理大数据集,模型复杂多样,关注泛化能力和预测误差。两者在假设、模型、数据量和评估标准上有显著差异,分别适用于解释性研究和预测任务。
40 8
算法金 | 统计学的回归和机器学习中的回归有什么差别?
|
11月前
|
机器学习/深度学习 算法
经典机器学习系列(六)【集成学习】之周志华西瓜书-AdaBoost算法证明解析
经典机器学习系列(六)【集成学习】之周志华西瓜书-AdaBoost算法证明解析
129 0
|
11月前
|
机器学习/深度学习 数据采集 算法
高分SCI必备:使用R语言和机器学习算法解析心脏病中的变量重要性
心脏病是全球范围内主要的致死因素之一[1],给人们的生活和健康带来了巨大的挑战。为了预测和诊断心脏病,研究人员使用了各种机器学习算法,并通过分析变量重要性来理解特征对心脏病的影响。
493 0
|
机器学习/深度学习 算法 知识图谱
浙大团队将化学知识引入机器学习,提出可外推、可解释的分子图模型预测反应性能
浙大团队将化学知识引入机器学习,提出可外推、可解释的分子图模型预测反应性能
155 0
|
机器学习/深度学习
【阿旭机器学习实战】【13】决策树分类模型实战:泰坦尼克号生存预测
【阿旭机器学习实战】【13】决策树分类模型实战:泰坦尼克号生存预测
【阿旭机器学习实战】【13】决策树分类模型实战:泰坦尼克号生存预测
|
机器学习/深度学习 算法 索引
阿旭机器学习实战【3】KNN算法进行年收入预测
阿旭机器学习实战【3】KNN算法进行年收入预测
阿旭机器学习实战【3】KNN算法进行年收入预测
|
机器学习/深度学习 算法 安全
机器学习的统计方法 贝叶斯决策理论入门(公式修正版)
机器学习的统计方法 贝叶斯决策理论入门(公式修正版)
123 0
机器学习的统计方法 贝叶斯决策理论入门(公式修正版)
|
机器学习/深度学习
【阿旭机器学习实战】【6】普通线性线性回归原理及糖尿病进展预测实战
【阿旭机器学习实战】【6】普通线性线性回归原理及糖尿病进展预测实战
【阿旭机器学习实战】【6】普通线性线性回归原理及糖尿病进展预测实战
|
机器学习/深度学习 算法
机器学习-西瓜书、南瓜书第六章
支持向量机(Support Vector Machine),简称SVM,是一种经典的二分类模型,属于监督学习算法。
103 0
机器学习-西瓜书、南瓜书第六章
|
机器学习/深度学习
机器学习-西瓜书、南瓜书第五章
神经网络起源于生物神经元的生物原理,生物神经元通常包括细胞体、树突和轴突等部分。其中,树突适用于接受输入信息,突触对输入信息进行处理,达到一定条件后由轴突产生输出,此时神经元表现为激活兴奋的状态。
91 0
机器学习-西瓜书、南瓜书第五章