模型性能度量

分类任务中的性能度量


一、错误率与精度

1、定义:错误率是分类错误的样本树占样本总数的比例,精度则是分类正确的样本数占样本总数的比例。

2、这是分类任务中最仓用的两种性能度量,既适用于二分类任务,也适用于多分类任务


二、查准率、查全率与F1

1、对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive) 、假正例(false positive) 、真反倒(true negative) 、假反例(false negative) 四种情形,令 T P 、 F P 、 T N 、 F N TP、FP、TN、FN TPFPTNFN 分别表示其对应的样例数,则显然有 T P + F P + T N + F N = 样 例 总 数 TP+FP+TN+FN=样例总数 TP+FP+TN+FN= ,分类结果的“混淆矩阵”(cofusion matrix) 如下表所示。
![[Pasted image 20220423212507.png]]
2、查准率 P P P 与 查全率 R R R 分别定义为:
P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP

3、查准率与查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

4、 P − R P-R PR 曲线:以查准率为纵轴、查全率为横轴作图,就得到了查准率-查全率曲线。
在这里插入图片描述

  若一个学习器的 P − R P-R PR 曲线被另一个学习器的曲线完全“包住” , 则可断言后者的性能优于前者。如果两个学习器的 P − R P-R PR 曲线发生了交叉,一个比较合理的判据是比较 P − R P-R PR 曲线节面积的大小,它在一定程度上表征了学习器在查准率和查全率上取得相对"双高"的比例。但这个值不太容易估算,因此人们设计了一些综合考虑查准率、查全率的性能度量。

  “平衡点” (Break-Event Point,简称BEP)就是这样一个度量,它是“查准率=查全率”时的取值,但BEP还是过于简化了些,更常用的是 F 1 F1 F1 度量:
F 1 = 2 × P × R P + R = 2 × T P 样 例 总 数 + T P − T N F1=\frac{2\times P\times R}{P+R}=\frac{2\times TP}{样例总数+TP-TN} F1=P+R2×P×R=+TPTN2×TP

   F 1 F1 F1 是基于查准率与查全率的调和平均(harinonic mean)定义的:
1 F 1 = 1 2 ( 1 P + 1 R ) \frac{1}{F1}=\frac{1}{2}(\frac{1}{P}+\frac{1}{R}) F11=21(P1+R1)

  在一些应用中,对查准率和查全率的重视程度有所不同,而 F 1 F1 F1 度量的一般形式 F β F_\beta Fβ 能让我们表达出对查准率/查全率的不同偏好,它定义为:
F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R F_\beta=\frac{(1+\beta^2)\times P\times R}{(\beta^2 \times P)+R} Fβ=(β2×P)+R(1+β2)×P×R

  其中 β > 0 \beta > 0 β>0 度量了查全率对查准率的相对重要性。 β = 1 \beta=1 β=1 时退化为标准的 F 1 F1 F1 β > 1 \beta>1 β>1 时查全率有更大影响; β < 1 \beta<1 β<1 时查准率有更大影响。

   F β F_\beta Fβ 是加权调和平均:
1 F β = 1 1 + β 2 ( 1 P + β 2 R ) \frac{1}{F_\beta}=\frac{1}{1+\beta^2}(\frac{1}{P}+\frac{\beta^2}{R}) Fβ1=1+β21(P1+Rβ2)
  与算术平均 ( P + R 2 ) (\frac{P+R}{2}) (2P+R) 和几何平均 P × R \sqrt{P\times R} P×R 相比,调和平均更重视较小值。

  很多时候我们有多个二分类混淆矩阵,例如进行多次训练/测试,每次得到一个混淆矩阵;或是在多个数据集上进行训练/测试,希望估计算法的“全局”性能;或是执行多分类任务,每两两类别的组合都对应一个混淆矩阵。一种直接的方法是计算各混淆矩阵的查准率和查全率,然后取平均,计算得到 “宏查准率”“宏查全率” 以及相应的 “宏 F 1 F1 F1。另一种方法是先将各混淆矩阵对应元素进行平均,得到 T P 、 F P 、 T N 、 F N TP、FP、TN、FN TPFPTNFN 的平均值,再基于这些平均值计算出 “微查准率”“微查全率”、以及相应的 “微 F 1 F1 F1

三、ROC与AUC

1、 与 P − R P-R PR 曲线相似,我们根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图就得到了 “ R O C ROC ROC 曲线”, R O C ROC ROC 曲线的纵轴是 “真正例率” (True Positive Rate,简称TPR) ,横轴是 “假正例率" (False Positive
Rate,简称FPR)
,两者分别定义为:
T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP
F P R = F P T N + F P FPR=\frac{FP}{TN+FP} FPR=TN+FPFP

   R O C ROC ROC 曲线如下:对角线对应于 “随机猜测” 模型,而点 (0, 1) 则对应于将所有正例排在所有反例之前的 “理想模型”。
在这里插入图片描述

2、进行学习器的比较时,与 P − R P-R PR 图相似,若一个学习器的 R O C ROC ROC 曲线被另一个学习器的曲线完全 “包住”,则可断言后者的性能优于前者;若两个学习器的 R O C ROC ROC 曲线发生交叉,则较为合理的判据是比较 R O C ROC ROC 曲线下的面积,即 A U C AUC AUC (Area Under ROC Curve)。

3、 A U C AUC AUC 的计算:

  方法一:对阶梯型面积求解
A U C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ( y i + y i + 1 ) AUC=\frac{1}{2}\sum_{i=1}^{m-1}(x_{i+1}-x_i)(y_i+y_{i+1}) AUC=21i=1m1(xi+1xi)(yi+yi+1)

  方法二: A U C AUC AUC 很有趣的性质是,它和 Wilcoxon-Mann-Witney Test 是等价的,就是测试任意给一个正类样本和一个负类样本,正类样本的 score 有多大的概率大于负类样本的 score。我们知道,在有限样本中我们常用的得到概率的办法就是通过频率来估计之,这种估计随着样本规模的扩大而逐渐逼近真实值。具体来说就是统计一下所有的 M × N M\times N M×N ( M M M 为正类样本的数目, N N N 为负类样本的数目) 个正负样本对中,有多少个组中的正样本的 score 大于负样本的 score。当二元组中正负样本的 score 相等的时候,按照 0.5 计算,然后除以 M N MN MN
A U C = ∑ x + ∈ D + ∑ x − ∈ D − ( b o o l ( f ( x + ) > f ( x − ) ) + 1 2 b o o l ( f ( x + ) = f ( x − ) ) ) M N AUC=\frac{\sum_{x^+\in D^+}\sum_{x^-\in D^-}(bool(f(x^+)>f(x^-))+\frac{1}{2}bool(f(x^+)=f(x^-)))}{MN} AUC=MNx+D+xD(bool(f(x+)>f(x))+21bool(f(x+)=f(x)))

4、 R O C ROC ROC 曲线有一个很好的特性:当测试集中的正负样本分布发生变化了, R O C ROC ROC 曲线可以保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。
在这里插入图片描述

  在上图中,(a)和©为 R O C ROC ROC 曲线,(b)和(d)为 P − R P-R PR 曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,©和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。可以明显的看出, R O C ROC ROC 曲线基本保持原貌,而 P − R P-R PR 曲线则变化较大。


参考文献

周志华 著.机器学习,北京:清华大学出版社,2016. (ISBN 978-7-302-42328-7)
# 模型评估指标AUC(area under the curve)
# AUC,ROC我看到的最透彻的讲解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值