机器学习-周志华 读书笔记 Chapter 2

Chapter 2 模型评估与选择

** 该博客中大部分公式来源于原书,自行推导部分将会用【】框出**

第二章主要是关于模型的评估和测试,详细讲解了各种测试方法,包括留出法,交叉验证法,自助法,ROC法,代价曲线法等。
而有了评估模型的方法,还得有评估时用于比较的参数,本书主要讲述了错误率,精度,查准率,查全率以及相关的衍生参数。
此外,本章提到了调节模型参数(调参)的步骤,不过并未进行详细展开。

为什么要进行模型评估

我们通过机器学习能够学习得到模型,模型是用于拟合真实值的,但是我们无法做到与真实值完全相同,这意味着模型一定会存在误差。
误差分为训练集上的误差和新样本上的误差,前者称为“训练误差”或“经验误差”,后者称为“泛化误差”,我们希望得到的模型的泛化误差尽可能小,以尽可能贴近真实情况。但我们无法直接针对泛化误差训练模型,因为我们拥有的只是有限的训练集,因此必须设法通过训练误差的指导来最大可能地最小化泛化误差。
如何利用训练误差就是模型评估和测试的关键。

模型评估的方法

在我们手中现在有完整的数据集D,我们需要把D划分为训练集和验证集,实际操作中在训练集中训练模型,使用验证集调试和评估模型,参数调试完毕后用整个数据集D训练得到最终模型。当需要比较不同算法性能时,可以额外再划分出一个测试集,不用于训练和调试,只在最后测试性能时使用,以免模型对测试集中的数据产生适应性。
模型评估的方法包括留出法、交叉验证法、自助法等。

  • 留出法:
    留出法将数据集D直接划分为训练集和验证集两部分,在训练集上训练后在验证集上验证。需要注意的是数据的划分要尽量保证同质性,如监督学习分类任务中保证两组中标签的比例相近(从采样的角度看这种保留比例的采样方式称为“分层采样”)。测试集不能太小,否则容易导致和真实数据分布相差太大;训练集也不能太小,否则会导致学习器拟合训练集的特定特征而不是数据的一般特征,导致过拟合。一般将2/3~4/5的数据用于训练,且测试集的样本数不应少于30个。
    此外,由于数据划分方式的不同,评估结果会存在差异,因此需要进行多次留出法验证,每次采用不同的数据划分方式,取均值作为最终结果。
  • 交叉验证法:
    交叉验证法(cross validation)先将数据划分为k个大小相似的互斥自己,同时保持数据分布的一致性,即从D通过分层采样获得,然后每次使用k-1个子集作为训练集,另一个子集作为验证集,这样进行k次训练和测试,最终返回k次结果的均值。k的取值影响交叉验证法的稳定性和可靠性,通常又把交叉验证法称为“k折交叉验证”。k最常用的取值是10,其他常用的取值是5、20.在这里插入图片描述
    此外,测试结果同样受数据划分方式的影响,所以k折交叉验证通常需要重复p次取均值,称作“p次k折交叉验证”。

交叉验证法的特例是留一法,即将每个样本作为一组。留一法的训练集与初始训练集闺规模相近,故一般认为留一法的评估结果比较准确,但是留一法的计算开销极大。
【使用交叉验证法的计算开销要比留出法大,但是评估的稳定性和准确性也更强,因为k折验证的方式使每次使用交叉验证法时数据的非同质性被中和了。数据规模很小的数据集是无法使用交叉验证法的,一般数据规模中等的数据集可使用交叉验证法,而数据集极大时直接使用留出法即可,因为那种情况下随机选择的数据同质的概率是很大的。】

  • 自助法:
    已有数据集D,每次从数据集D采样一个数据,放入数据集D’,重复m此后得到与D规模相同的数据集D’作为训练集,每个样本在m次采样过程中始终不被采到的概率约为0.368。因此有约1/3的数据集可用作测试集。
    在这里插入图片描述
    该方法的优势在于训练集与原数据集的规模相等,减小了数据集规模不同导致的误差。
    自助法在数据集较小是较有效此外自助法能产生多个不同的训练集, 对集成学习等方法很有好处。

性能度量

在模型训练和评估时需要有相应的评价标准来很衡量模型的泛化能力,这个评价标准就是模型的性能度量。回归任务中最常用的性能度量是均方误差
在这里插入图片描述

分类任务中使用的性能度量更加丰富,最常用的是错误率和精度。在这里插入图片描述

错误率即测试样本中分类错误的样本占总样本的比例。精度 = 1 - 错误率。
但有时候我们关心的问题不仅仅是精度,可能对某些方面的性能我们会有特别的要求。比如通过癌症患者的CT图判断是否患病的问题上,我们希望不会有漏判,因为误判最多导致一些事物纠纷,但漏判却会导致患者的死亡。
当我们有这些特定方面的性能要求是,就需要在模型训练和测试中使用其他的性能度量。
下面介绍其他几种性能度量:

查全率、查准率和F1

查准率P(precision)指判对时的精度,查全率R(recall)指判对的完整性,公式如下:
在这里插入图片描述
在这里插入图片描述
上图称为混淆矩阵
一般情况下,查全率和查准率难以两全,除非在一些简单的任务中。
此外,分类器的结果还取决于选择的阈值,即以哪个预测概率为正例的分界线。
一般来说,若更重视查准率,则可将阈值设置的较高,若更重视查全率,可将阈值设置的较低。
如果我们以此以每个样本的预测结果作为阈值,可以得到一系列的(查全率,查准率)点,将这些点连起来得到一张P-R曲线图,该图可衡量学习器的总体性能(不是模型的性能,模型的性能还取决于阈值的选择)。若某个学习器的P-R曲线完全被另一个学习器的包住,则后者的性能肯定比前者好,因为前者不管怎么选择阈值后者都能实现查全率和查准率都高于前者。
图如下:
在这里插入图片描述
但不是所有学习器都存在完全更有的学习器,大部分情况下曲线都是纠缠在一起的,这时候需要一个标准来衡量,可以选择查全率 = 查准率时的值进行比较,但更多使用的是F1度量。在这里插入图片描述

即先用各自的学习器训练得到最佳F1,再进行比较。
若对查全率和查准率的要求不同,可使用不同的参数设置F1值,即Fβ值
在这里插入图片描述
β>1是查全率有更大影响,反之查准率有更大影响
当我们想在多个混淆矩阵上考察学习器性能(比如进行多分类,或者多次训练,或者在多个数据及上训练)时,可以在先得到平均的P、R,再计算宏F1,或者先得到平均混淆矩阵,再计算微F1。在这里插入图片描述
在这里插入图片描述

ROC和AUC

ROC曲线是另一种衡量学习器总体泛华性能的性能度量,ROC全称是“受试者工作特征”,使用的坐标是TPR和FPR在这里插入图片描述

横轴是假正例率(FPR),表示假例中被误认为是正例的比率,纵坐标是真正例率,表示正例中被正确分类的比例。理想的模型对应ROC曲线中的(0, 1)点,理想的学习器对应TPR = 1的水平直线,随机猜测模型对应对角线【任意阈值选择,某个特定真例和假例被分类为真例的概率相同,所以随机猜测模型中真例被分类正确和假例被错误分类的比例相同,即TPR =FPR】。

现实任务中样例有限,依据之前讲过的绘图方法画出的是ROC折线图,衡量学习器性能的标准为ROC曲线(折线在这里插入图片描述)下方的面积,称作AUC。公式为:
在这里插入图片描述

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

在上述所有的性能度量,都默认了一个事实,就是所有错误分类的严重程度都是相同的,即所有错误对应的代价相等。但是在现实世界中,不同的错误对应的代价可能是差别极大的,要表现这种不同的代价,可以使用代价敏感错误率和代价曲线衡量模型和学习器的性能。
将不同的错误分类对应的代价列出来,就得到一个代价矩阵:
在这里插入图片描述
若类别多于两类,则得到用于多分类任务的代价矩阵。
对应的代价函数(以错误率为性能度量)为:
在这里插入图片描述
【该方式主要用于神经网络训练分类模型,其他方法不适用】
非均等代价下衡量学习器的期望总体代价,使用代价曲线。
代价曲线横轴为正例概率代价:
在这里插入图片描述
p是样例为正的概率,这个概率是未知的,随着p的变化得到一系列点。纵轴是归一化的代价:
在这里插入图片描述
绘制代价曲线的方法是:ROC曲线上的每一点对应代价平面上的一条直线,所有直线下方的最小面积标示量学习器在当前代价矩阵下的期望总体代价。
在这里插入图片描述

比较检验

这一部分暂时看不太懂,有机会再补上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值