西瓜书学习笔记第2章(模型评估与选择)
西瓜书学习笔记第2章(模型评估与选择)
- 2.1经验误差与过拟合
- 2.2评估方法
- 2.2.1留出法(hold-out)
- 2.2.2交叉验证法(cross validation)
- 2.2.3自助法(bootstrapping)
- 2.2.4调参与最终模型
- 2.3性能度量(performance measure)
- 2.3.1错误率与精度
- 2.3.2查准率、查全率与F1
- 2.3.3ROC 与 AUC
- 2.3.4代价敏感错误率与代价曲线
- 2.4比较检验
- 2.4.1假设检验
- 2.4.2交叉验证t检验
- 2.4.3McNemar检验
- 2.4.4Friedman检验与Nemenyi后续检验
- 2.5偏差与方差
2.1经验误差与过拟合
错误率(error rate):分类错误的样本数占样本总数的比例,即如果在m个样本中有a个样本分类错误,则错误率 E= a/m;
精度(accuracy):精度 = 1 - 错误率,即1-E
误差(error):学习器的实际预测输出与样本的真实输出之间的差异
训练误差(training error)/经验误差(empirical error):学习器在训练集上的误差
泛化误差(generalization error):学习器在新样本上的误差
过拟合(overfitting):学习器把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,导致泛化性能下降的一种现象
欠拟合(underfitting):学习器对训练样本的一般性质尚未学好
欠拟合容易克服,例如在决策树学习中扩散分支、在神经网络学习中增加训练轮数等,而过拟合非常麻烦,过拟合是机器学习面临的关键障碍。
过拟合无法彻底避免,能做的只是“缓解”,或者说减小风险。可以大致理解为:机器学习面临的问题通常是NP难甚至更难,而有效的学习算法必然是在多项式时间内运行完成,若可彻底避免过拟合,则通过经验误差最小化就能获得最优解,这就意味着我们构造性的证明了“P=NP”;因此,只要相信“P≠NP”,过拟合就不可避免。
2.2评估方法
在现实任务中,有许多学习算法可供选择,甚至对同一个学习算法,使用不同的参数配置,也会产生不同的模型。即“模型选择”(model selection)问题
为了选择最优的模型,可通过实验测试来对学习器的泛化误差进行评估进而做出选择。为此,需要一个测试集来测试学习器对新样本的判别能力,然后以测试集上的测试误差作为泛化误差的近似。测试集应该尽可能的与训练集互斥,即测试样本尽量不在训练样本中出现。
如果我们还有一个包含m个样例的数据集D={(x1,y1),(x2,y2),…,(xm,ym)},既要训练,又要测试,就需要通过对D进行适当的处理,从中产生出训练集S和测试集T。(类似于习题集和考试试题)
2.2.1留出法(hold-out)
直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另个作为测试集T,即D=S∪T,S∩T=∅。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。
二分类任务:数据集D有1000个样本,划分700个作为训练集S,剩下的300个作为测试集T。训练结束后,产生的模型在T上有90个错误。那么错误率为(90/300)×100%=30%,精度为(1−0.3)×100%=70%
注意
训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响,例如在分类任务中至少要保持样本的类别比例相似。“分层采样”(stratified sampling)
即便在给定训练/测试集的样本比例后,仍存在多种划分方式对初始数据集D进行分割。因此,单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行试验评估后取平均值作为留出法的评估结果。
常见的做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试。S小时评估结果的偏差较大,T较小时评估结果的方差较大。
2.2.2交叉验证法(cross validation)
先将数据集D划分为k个大小相似的互斥子集,即D=D1∪D2∪…∪Dk,Di∩Dj=∅(i≠j)。每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到。然后每次用k−1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可以获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这个k个测试结果的均值。
通常把交叉验证法称为“k折交叉验证法”(k-fold cross validation)。k最常用的取值是10,此时称为10折交叉验证
注意
与留出法类似,将数据集D划分为k个子集同样存在多种划分方式。为减小因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证的结果的均值。
假定数据集D中包含m个样本,若令k=m,则得到了交叉验证的一个特例:留一法(Leave-One-Out,简称 LOO)。留一法不受随机样本划分方式的影响,留一法的评估结果往往被认为比较准确。缺陷是,当数据集比较大时,训练m个模型的计算开销可能是难以忍受的。另外,留一法的估计结果也未必永远比其他评估方法准确。(NFL 定理)
2.2.3自助法(bootstrapping)
它直接以自助采样 (bootstrap sampling) 为基础 [Efron and Tibshirani, 1993].
给定包含m个样本的数据集D,我们对它进行采样产生数据集D′:每次随机从D中挑选一个样本,将其拷入到D′中,重复执行m次后,就得到了包含m个样本的数据集D′,这就是自助采样的结果。
显然,D中的一部分样本会在D′中多次出现,而另一部分则不会出现。通过自助采样,初始数据集D中约有36.8%(1/e)的样本未出现在数据集D′中。我们可将D′用作训练集,D\ D′用作测试集。
自助法在数据集较小、难以有效划分训练/测试集时很有用;此外自助法能从初始数据集中产生多个不同的训练集,对集成学习等方法有很大的好处。由于自助法产生的数据集改变了初始数据集的分布,会引入估计偏差。因此,在初始数据量足够时,留出法和交叉验证法更常用一些。
2.2.4调参与最终模型
参数调节(parameter tuning)简称“调参”:大多数学习算法都有参数需要设定,参数配置的不同,学得模型的性能往往会有显著差别。对算法参数的设定就是调参。
给定包含m个样本的数据集D,我们只用了一部分数据训练模型。因此,在模型选择完成后,学习算法和参数配置已选定,此时应该用数据集D重新训练模型。这个模型在训练过程中使用了所有的样本,这才是最终模型。
2.3性能度量(performance measure)
衡量模型泛化能力的评价标准。
2.3.1错误率与精度
错误率是分类错误的样本数占样本总数的比例,精度是分类正确的样本数在样本总数的比例。
对样例集D,分类错误率定义为:
精度定义为:
更一般的,对于数据分布D和概率密度函数p(⋅),错误率与精度可分别描述为:
2.3.2查准率、查全率与F1
查准率(precision):检索出来的条目中准确的占比。比如检索出m条,n条是真正准确的,则查准率=n/m。
查全率(recall):所有准确的条目检索出来的占比。比如检索出m条,n条是真正准确的且真正准确的有p条,则查全率=n/p。
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)和假反例(false negative)四种情形。
令TP、FP、TN、FN分别表示其对应的样例数,那么TP + FP + TN + FN = 样例总数。
分类结果的"混淆矩阵" (confusion matrix) 如图所示:
查准率P与查全率R分别定义为:
查准率高时,查全率往往偏低;查全率高时,查准率往往偏低。
PR曲线:查准率-查全率曲线:
“平衡点”(Break-Even Point,简称BEP):为了在PR图中识别学习器的性能谁更优异,人们设计了一些综合考虑查准率、查全率的性能度量。平衡点就是其中之一,它是“查准率=查全率”时的取值。平衡点的取值越大,学习器越优。
BEP还是过于简化,更常用的是F1度量:
在一些应用中,对查准率和查全率的重视程度不同(推荐系统重视查准率,逃犯检索系统重视查全率)。F1度量的一般形式—— Fβ,能让我们表达出对查准率、查全率的不同偏好,它的定义为:
其中 β>0 度量了查全率对查准率的相对重要性。
当β=1 时退化为标准的F1;
当β>1 时查全率有更大影响
当β<1 时查准率有更大影响
很多时候会有多个二分类混淆矩阵,我们希望在n个二分类混淆矩阵上综合考察查准率和查全率。
一种直接做法是先在各混淆矩阵上分别计算出查准率和查全率,再计算平均值,这样就得到了“宏查准率(macro-P)”、“宏查全率(macro-R)”以及对应的“宏F1(macro-F1)”:(宏:各自计算结果,各结果求均值)
另一种做法是将各混淆矩阵的对应元素进行平均,得到TP、FP、TN、FN的平均值,分别记为TP¯、FP¯、TN¯、FN¯,再基于平均值计算出“微查准率(micro-P)”、“微查全率(micro-R)”和“微F1(micro-F1)”:(微:各数据求平均值,再算出结果)
2.3.3ROC 与 AUC
ROC全称是“受试者工作特征(Receiver Operating Characteristic)”曲线。根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们的横、纵坐标作图,就得到了ROC曲线。ROC曲线的纵轴是“真正例率(True Positive Rate,简称TPR)(查全率)”,横轴是“假正例率(False Positive Rate,简称FPR)”,两者分别定义为:
显示ROC曲线的图叫ROC图。
其中AUC(Area Under ROC Curve)为ROC曲线下所包含的面积,用于判断学习器间的性能谁更优。
AUC可通过对ROC曲线下的各部分的面积求和而得。假定ROC曲线是由坐标{(x1,y1),(x2,y2),…,(xm,ym)}的点按顺序连接而形成(x1=0,xm=1),则AUC可估算为:
AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密关系。给定m+个正例和m−个反例,令D+和D−分别表示正、反例集合,则排序损失(loss)定义为:
即考虑每一对正、反例,若正例的预测值小于反例,则记一个“罚分”,若相等则记0.5个“罚分”。
ℓrank对应的是ROC曲线之上的面积。
2.3.4代价敏感错误率与代价曲线
为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价(unequal cost)”
costij表示将第i类样本预测为j类样本的代价。一般,costii=0。若将第0类判别为第1类所造成的损失更大,则cost01>cost10
一般情况下,重要的是代价比值而非绝对值,如cost01:cost10=5:1与50:10所起效果相当。
若将第0类作为正类,第1类作为反类,令D+与D−分别为样例集D的正例子集和反例子集,则代价敏感(cost-sensitive)错误率为:
在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线(cost curve)”则可达到目的。代价曲线图的横轴是取值为[0,1]的正例概率代价:
其中p是样例为正例的概率;纵轴是取值为[0, 1]的归一化代价:
FPR是定义的假正例率, FNR是假返利率。
2.4比较检验
为了比较学习器的泛化性能谁更优异,下面列举了几种常用的机器学习性能比较的方法。为便于讨论,本节默认以错误率为性能度量,用ϵ表示。
2.4.1假设检验
假设检验中的假设是对学习器泛化错误率分布的某种判断或猜想,如ϵ=ϵ0。现实任务中并不能知道学习器的泛化错误率,只能得到测试错误率ϵˆ。泛化错误率与测试错误率接近的可能性比较大,因此可以根据测试错误率估推出泛化错误率的分布。
2.4.2交叉验证t检验
对两个学习器A和B,若我们使用k折交叉验证法得到的测试错误率分别为ϵA1,ϵA2,…,ϵAk和ϵB1,ϵB2,…,ϵBk,其中ϵAi和ϵBi是在相同的第i折训练/测试集上得到的结果。基本思想为若两个学习器的性能相同,则它们使用相同的训练/测试集得到的测试错误率应相同,即ϵAi=ϵAi。
2.4.3McNemar检验
正态分布
2.4.4Friedman检验与Nemenyi后续检验
卡方分布
2.5偏差与方差
偏差-方差分解(bias-variance decomposition)是解释学习算法泛化性能的一种重要工具。
偏差-方差分解试图对学习算法的期望泛化错误率进行拆解。
泛化误差可分解为偏差、方差与噪声之和。
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
偏差一方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的.给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。
参考博文链接:https://blog.csdn.net/qq_38962336/article/details/106387952?spm=1001.2014.3001.5502
西瓜书学习笔记第2章(模型评估与选择)相关推荐
- 西瓜书学习笔记——第十一章:特征选择与稀疏学习
第十一章:特征选择与稀疏学习 11.1 子集搜索与评价 子集搜索 特征子集评价 11.2 过滤式选择 Relief的相关统计量 11.3 包裹式选择 拉斯维加斯方法和蒙特卡罗方法: 11.4 嵌入式选 ...
- 《机器学习》周志华(西瓜书)学习笔记 第十一章 特征选择与稀疏学习
机器学习 总目录 第十一章 特征选择与稀疏学习 11.1 子集搜索与评价 给定属性集,其中有些属性可能很关键.很有用,另一些 属性则可能没什么用.我们将属性称为"特征" (feat ...
- 西瓜书--学习笔记1
西瓜书–学习笔记1 第一章 1.分类和回归是监督学习的代表,而聚类是无监督学习的代表. 2.归纳和演绎是科学推理的两大基本手段. 归纳:从特殊到一般的"泛化"过程,即从具体的事实归 ...
- 机器学习【西瓜书/南瓜书】--- 第2章模型评估与选择(上)(学习笔记+公式推导)
目录 前言 2.1 经验误差与过拟合 2.2 评估方法 2.2.1 留出法(hode−outhode-outhode−out) 2.2.2 交叉验证法(crossvalidationcross val ...
- 西瓜书学习笔记——第一、二章
目录 一.第一章 绪论 1.重要基本术语 1.1 分类与回归 1.2 聚类 1.3 监督学习和无监督学习 1.4 泛化 1.5 归纳偏好 二.第二章 模型评估与选择 1.评估方法 1.1 留出法 2. ...
- 周志华西瓜书学习笔记(一)
周志华西瓜书学习笔记 第一章 绪论 数据处理分为三个阶段:收集,分析,预测. 一.基本概念 机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能. Mitchell给出的更形式化的定义为 ...
- 《西瓜书》笔记-第0章-引言
本人为某985学生,想在CSDN上发表一些自己的阅读笔记.阅读体会,一方面是为了整理自己所学知识,达到重新梳理,复习的作用,一方面是可能在一定程度上能够帮助网友们,非常希望志同道合的朋友们能发表一些意 ...
- 小吴的《机器学习 周志华》学习笔记 第二章 模型评估与选择
小吴的<机器学习 周志华>学习笔记 第二章 模型评估与选择 上一周我们介绍了第一章的基础概念,这一次将带来第二章的前三节.后面的2.4 比较检验与2.5 偏差与方差,涉及概率论与数理统计概 ...
- 西瓜书~至臻笔记(二)——模型评估与选择(可直接享用)
文章目录 第二章 模型评估与选择 2.1 经验误差与过拟合 2.2 评估方法 2.2.1 留出法 分层采样 数据集中样本的顺序 数据集的大小比例 2.2.2 交叉验证法 数据集的样本顺序 留一法 2. ...
最新文章
- 2022-2028年中国激光切管机行业市场研究及前瞻分析报告
- [精选代码笔记]Anagram, group-anagrams, two sum
- 把windows键盘作为xfce环境中的打开Applications
- 计算机导论sql试题,sql语句查询 练习题
- 小甲鱼 OllyDbg 教程系列 (十二) : inline patch ( 内嵌补丁 ) 之 调用堆栈查找法
- 如何在React Native中创建精美的动画加载器
- 字符串截取mysql
- 文件跨服务器传输_跨桌面设备传输文件的最优选?
- PyQt4日历部件QXalendarWidget
- 实训day4-python-Selenium请求库
- 学用MVC4做网站:序
- java digester_Apache Commons Digester
- 百度地图坐标转换及跨域
- 【魔改蜗牛星际】B双主板变“皇帝板”扩展到8个SATA口
- C++ 之基本结构语法
- 【BasicNet系列:六】MobileNet 论文 v1 v2 笔记解读 + pytorch代码分析
- 空洞卷积(Atrous/Dilated Convolution)
- splice、slice详解
- 手机老是出现欠费,与月租无关,这种偷钱业务一定要尽早关掉
- 京东城市陈旭旭:AI和大数据如何撬动“城市计算”?| AIoT+智慧城市峰会