首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

周志华《机器学习》—第2章

3. 性能度量

监督学习的性能度量

性能度量:衡量泛化能力的评价标准

性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果。模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求。

在预测任务中,给定样例集D = {(x1, y1), (x2, y2),......, (xm, ym)}, 其中 yi是示例xi的真实标记,要评估学习器f的性能,需要将学习器的预测结果f(x)同真实标记y进行比较

回归任务的性能度量

均方误差:

离散样本的均方误差

更一般的,对于数据分布Ɗ和概率密度p(·),均方误差的可描述为:

连续样本的均方误差

3.1 错误率与精度

错误率:分类错误的样本数占样本总数的比例

例如:m个样本中有a个样本分类错误,则错误率为 E=a/m

精度:分类正确的样本数占样本总数的比例。即:精度=1-错误率

例如:m个样本中有m-a个样本分类正确,则精度 A=(m-a)/m=1-E

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

离散样例的错误率

精度定义为

离散样例的精度

更一般的,对于数据分布Ɗ和概率密度p(·),错误率与精度可分别描述为:

连续样例的错误率

连续样例的精度

3.2 查准率、查全率与F1

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(TP)、假正例(FP)、真反例(TN)、假反例(FN)四种情形。

TP + FP +TN + FN = 样例总数

分类结果混淆矩阵

查准率P:真正例样本数/预测结果是正例的样本数

查准率P

例如:瓜农拉来一车西瓜,挑出来的西瓜有多少比例是好瓜

查全率:真正例样本数/真实情况是正例的样本数

查全率R

例如:瓜农拉来一车西瓜,所有好瓜中有多少比例被挑了出来

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

例如:若希望将好瓜尽可能多的选出来,则可通过增加选瓜的数量,如果将所有西瓜都选上,那么所有的好瓜也必然选上,但是这时查准率就会比较低。若希望选出的瓜中好瓜比例尽可能高,则可只挑选最有把握的瓜,但是这样就会漏掉不少好瓜,使得查全率较低。

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

P-R曲线与平衡点示意图

基于P-R曲线的学习器性能评价规则

1. 当曲线没有交叉的时候:外侧曲线的学习器性能优于内侧;

例如:学习器A的性能优于学习器C

2. 当曲线有交叉的时候:

1)、比较P-R曲线下面积,它在一定程度上表征了查全率和查准率取得相对“双高”的比例,但这个值不太容易估算;

2)、比较两条曲线的平衡点(Break-Event Point, 简称BEP),平衡点是“查准率=查全率”时的取值,BEP越大,性能越优。

例如:基于BEP的比较,可以认为学习器A优于学习器B

3)、BEP过于简化,更常用的F1度量和Fβ度量。

F1是基于查准率与查全率的调和平均定义的,Fβ则是加权调和平均

查准率与查全率的调和平均

F1度量的一般形式Fβ

查准率与查全率的加权调和平均

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

β = 1 时退化为标准的F1;β > 1 时查全率有更大影响;β < 1 时查准率有更大影响。

很多时候我们有多个二分类混淆矩阵,我们希望在n个二分类混淆矩阵上综合考虑查准率和查全率。

例如:进行多次训练/测试,每次得到一个混淆矩阵;或是在多个数据集上进行训练/测试,需希望估计算法的“全局性能”;甚或是执行多分类任务,每两两类别的组合都对应一个混合矩阵。

1)、先在各个混淆矩阵中分别计算出查准率查全率,再计算平均值,这样就得到“宏查准率”(macro-P)、“宏查全率”(macro-R)以及“宏F1”(macro-F1)。

macro-P、macro-R以及macro-F1

(micro-P)

micro-R和micro-F1

3.3 ROC与AUC

根据实值或概率预测结果,我们可以将测试样本进行排序,“最可能”是正例的排在前面,“最不可能”是正例的排在最后面。分类过程相当于在这个排序中以某个“截断点”将样本分为两个部分,前一部分判做正例,后一部分则判作反例。

在不同的应用任务中,我们可根据任务需求来采用不同的截断点。

例如:若我们更重视查准率。则可选择排序靠前的位置进行截断;若更重视查全率,则可选择靠后的位置进行截断。

排序本身质量的好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏,或者说“一般情况下”泛化性能的好坏。ROC曲线则是从排序本身质量的好坏的角度来研究学习器泛化性能。

ROC全名“受试者工作特征”曲线,以“真正例率”为纵轴,以“假正例率”为横轴。

真正例率TPR:真正例样本数/真实情况是正例的样本数(查全率)

TPR

假正例率FPR:假正例样本数/真实情况是是反例的样本数

FPR

ROC曲线的绘制过程:给定m+个正例和m-个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和反正例率均为0,在坐标(0,0)处标记一个点。然后将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为(x,y+1/m+);当前若为假正例,则对应标记的坐标为(x+1/m-,y),然后用线段连接相邻点即得。

ROC曲线与AUC示意图

现实任务中通常利用有限个测试样例来绘制ROC图,此时仅能获得有限个坐标,无法产生(a)中的ROC曲线,只能产生(b)中的ROC曲线。

基于ROC曲线的学习器性能评价规则

1. 当曲线没有交叉的时候:外侧曲线的学习器性能优于内侧;

2. 当曲线有交叉的时候:比较ROC曲线下的面积即 AUC (Area Under ROC Curve)

AUC可估算为

AUC估算公式

形式化的看,AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。

给定m+个正例和m-个反例,令D+和D-分别表示正、反例集合,则排序的损失定义为

排序的损失定义

即考虑每一对正、反例,若正例的预测值小于反例,则记一个“罚分”,若相等,则记0.5个“罚分”。容易看出,对应的是ROC曲线之上的面积:若一个正例在ROC曲线上对应标记点的坐标为(x,y),则x恰是排序在其之前的反例所占的比例,即假正例率。因此有

AUC

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

前面介绍的性能度量,大都隐式地假设了不同类型的错误造成的后果相同,但是在现实任务中经常遇到不同类型的错误造成的后果不同的情况。

例如:在医疗诊断中,错误地把患者诊断为健康人与错误的把健康人诊断为患者,前者的后果可能是错失医治的最佳时机,而后者只是增加了进一步检查的麻烦。

为权衡不同类型的错误所造成的不同损失,可为错误赋予“非均等代价”。

以二分类代价矩阵为例,我们可根据任务领域知识设定一个“代价矩阵”。

二分类代价矩阵

“代价敏感错误率”为

代价敏感错误率

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

在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”则可以达到目的。代价曲线的横轴是正例概率代价P(+)cost,纵轴是归一化代价cost_norm

P(+)cost

其中,p是样例为正例的概率

cost_norm

其中,FPR是假正例率,FNR = 1 - TPR

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

代价曲线与期望总体代价

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171221G006E500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券