2.3 性能度量

目录

2.3.1 错误路和精度

2.3.2 查准率,查全率与F1

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


对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量(performance measure).性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果;这意味着模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求.在预测任务中,给定样例集D= {(1,31),(2,32),. . . , (m, Jm)},其中 yi是示例ax;的真实标记.要评估学习器的性能,就要把学习器预测结果f(z)与真实标记y进行比较。

2.3.1 错误路和精度

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

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

精度定义为:

更一般的,对于数据分布D和概率密度函数p(.),错误率和精度可分别描述为

2.3.2 查准率,查全率与F1

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情形,令TP、FP、TN、FN分别表示其对应的样例数,则显然有TP+FP+TN + FN=样例总数.分类结果“混淆矩阵”(confusion matrix)如表2.1所示.

注意查准率的分母,分母是预测为正例的情况,所以什么是查准?就是关心我所查的正例就是真正的正例。同样查全,查全的分母是真实的正例的数目,所以什么是查全?就是关心我所查的是否把所有的真正的正例所查出。所以查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低.

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

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

平衡点”(Break-Event Point,简称BEP)就是这样一个度量,它是“查准率=查全率”时的取值,例如图2.3中学习器C的BEP是0.64,而基于BEP的比较,可认为学习器A优于B.

我们更常用的是F1度量

在一些应用中,对查准率和查全率的重视程度有所不同.例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要.F1度量的一般形式——Fb,能让我们表达出对查准率/查全率的不同偏好,它定义为

2.3.3 ROC与AUC

很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值(threshold)进行比较,若大于阈值则分为正类,否则为反类.例如,神经网络在一般情形下是对每个测试样本预测出一个[0.0,1.0]之间的实值,然后将这个值与0.5进行比较,大于0.5则判为正例,否则为反例.这个实值或概率预测结果的好坏,直接决定了学习器的泛化能力.实际上,根据这个实值或概率预测结果,我们可将测试样本进行排序,“最可能”是正例的排在最前面,“最不可能”是正例的排在最后面.这样,分类过程就相当于在这个排序中以某个“截断点”(cut point)将样本分为两部分,前一部分判作正例,后一部分则判作反例.

在不同的应用任务中,我们可根据任务需求来采用不同的截断点,例如若我们更重视“查准率”,,则可选择排序中靠前的位置进行截断;若更重视“查全率”,则可选择靠后的位置进行截断.因此,排序本身的质量好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏,或者说,“一般情况下”泛化性能的好坏.ROC曲线则是从这个角度出发来研究学习器泛化性能的有力工具.

ROC全称是“受试者工作特征”(Receiver Operating Characteristic)曲线,我们根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了“ROC曲线”.与P-R曲线使用查准率、查全率为纵、横轴不同,ROC曲线的纵轴是“真正例率”(True Positive Rate,简称TPR),横轴是“假正例率”(False PositiveRate,简称FPR),基于表2.1中的符号,两者分别定义为

现实任务中通常是利用有限个测试样例来绘制ROC图,此时仅能获得有限个(真正例率,假正例率)坐标对,无法产生图2.4(a)中的光滑ROC曲线,只能绘制出如图(b)所示的近似ROC曲线.绘图过程很简单:给定m+个正例和m-个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点.然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例.设前一个标记点坐标为(x, y),当前若为真正例,则对应标记点的坐标为;当前若为假正例,则对应标记点的坐标为,然后用线段连接相邻点即得.

进行学习器的比较时,与P-R图相似,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性地断言两者孰优孰劣.此时如果一定要进行比较,则较为合理的判据是比较ROC曲线下的面积,即AUC (Area UnderROC Curve),如图2.4所示.

从定义可知,AUC可通过对ROC曲线下各部分的面积求和而得.假定ROC曲线是由坐标为的点按序连接而形成,参见图2.4(b),则AUC可估算为

排序的“损失”定义为:

与AUC的关系为,损失+AUC=1.

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

在现实任务中常会遇到这样的情况:不同类型的错误所造成的后果不同.例如在医疗诊断中,错误地把患者诊断为健康人与错误地把健康人诊断为患者,看起来都是犯了“一次错误”,但后者的影响是增加了进一步检查的麻烦,前者的后果却可能是丧失了拯救生命的最佳时机;再如,门禁系统错误地把可通行人员拦在门外,将使得用户体验不佳,但错误地把陌生人放进门内,则会造成严重的安全事故.为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”(unequal cost).

回顾前面介绍的一些性能度量可看出,它们大都隐式地假设了均等代价,例如式(2.4)所定义的错误率是直接计算“错误次数”,并没有考虑不同错误会造成不同的后果.在非均等代价下,我们所希望的不再是简单地最小化错误次数,而是希望最小化“总体代价”(total cost).若将表2.2中的第О类作为正类、第1类作为反类,令D+与D-分别代表样例集D的正例子集和反例子集,则“代价敏感”(cost-sensitive)错误率为:

在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”(cost curve)则可达到该目的.代价曲线图的横轴是取值为[0,1]的正例概率代价

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

  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Matlab中,性能度量是指评估算法或模型的表现和效果的指标。在机器学习和数据分析中,性能度量对于评估和比较不同算法的效果非常重要。 在Matlab中,常用的性能度量包括以下几种: 1. 准确率(Accuracy):准确率是指算法对于预测结果的正确率。它可以通过比较预测结果和真实标签的匹配程度来计算。 2. 精确率(Precision):精确率是指算法在所有预测结果中预测为正类别的结果的准确性。它可以通过计算预测为正类别并且真实标签也是正类别的结果占所有预测为正类别结果的比例来计算。 3. 召回率(Recall):召回率是指算法正确预测出正类别结果的能力。它可以通过计算预测为正类别并且真实标签也是正类别的结果占所有真实为正类别结果的比例来计算。 4. F1分数(F1 Score):F1分数是精确率和召回率的调和均值,用于综合评价算法的效果。它可以通过计算2倍的精确率与召回率之积除以精确率与召回率之和来计算。 5. ROC曲线和AUC值(Receiver Operating Characteristic curve and Area Under Curve):ROC曲线用于衡量二分类算法的性能。AUC值是ROC曲线下的面积,它是一个统一的性能度量指标,用于评估算法的整体表现。 除了以上几种常见的性能度量指标,Matlab还提供了一些其他的性能度量函数,比如混淆矩阵、分类错误率等,可以根据具体需求选择合适的性能度量方法。性能度量可以帮助我们选择最适合的算法,并对算法进行优化和改进。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值