您现在的位置是:首页 > 唯美句子

【机器学习】分类算法评估指标全总结(2023最新整理)关键词:准确率Accuracy、精确率Precision、召回率Recall、Micro F1、P-R、ROC、MCC、Cohen‘s kappa

作者:付梓时间:2024-03-31 16:45:38分类:唯美句子

简介  文章浏览阅读1w次,点赞13次,收藏149次。评估指标是针对模型性能优劣的一个定量指标。一种评价指标只能反映模型一部分性能,如果选择的评价指标不合理,那么可能会得出错误的结论,故而应该针对具体的数据、模型选取不同的的评价指标。针对不同类型的学习任务,我们有不同

点击全文阅读

目录

一、定义

二、混淆矩阵

三、分类算法的评估指标

1、准确率(Accuracy)

2、精确率(Precision)

3、召回率(Recall)

Precision 与 Recall 的权衡

4、F1分数(F1 Score)

F-Beta Score

宏平均F1分数(Macro F1)

微平均F1分数(Micro F1)

Macro 与 Micro 的区别

加权F1分数(Weighted F1)

5、马修斯相关系数(Matthews correlation coefficient)-MCC

6、Cohen's kappa统计系数

7、ROC 曲线

AUC-ROC曲线下的面积(area under the curve)

8、P-R 曲线

9、对数损失

LogLoss和AUC的区别

总结


一、定义

评估指标是针对模型性能优劣的一个定量指标。一种评价指标只能反映模型一部分性能,如果选择的评价指标不合理,那么可能会得出错误的结论,故而应该针对具体的数据、模型选取不同的的评价指标

针对不同类型的学习任务,我们有不同的评估指标,这里我们来介绍最常见的分类算法的一些评估指标。常用的分类任务评价指标有准确率(Accuracy)、精确率(Precision)、召回率(Recall)、Macro F1、Micro F1、P-R曲线(Precision-Recall Curve)、ROC、AUC、MCC、Cohen's kappa等。

二、混淆矩阵

混淆矩阵(confusion matrix)是一个评估分类问题常用的工具,对于 k 元分类,其实它是一个k x k的表格,用来记录分类器的预测结果。例如对于常见的二分类,它的混淆矩阵是 2 x 2 的。

在二分类中,可以将样本根据其真实结果和模型的预测结果的组合划分为真阳性(true positive,TP)、真阴性(true negative,TN)、假阳性(false positive,FP)、假阴性(false negative,FN)。根据 TP、TN、FP、FN 即可得到二分类的混淆矩阵,如下图所示。

注意:
第一个字母表示真实值与预测值划分正确与否,T 表示判定正确, F 表示判定错误 (False)。
第二个字母表示分类器判定结果(预测结果), P 表示判定为正例, N 表示判定为负例

三、分类算法的评估指标

1、准确率(Accuracy)

准确率指分类正确的样本占总样本个数的比例。准确率是针对所有样本的统计量。它被定义为:

准确率能够清晰的判断我们模型的表现,但有一个严重的缺陷: 在正负样本不均衡的情况下,占比大的类别往往会成为影响 Accuracy 的最主要因素,此时的 Accuracy 并不能很好的反映模型的整体情况。

例如,一个测试集有正样本99个,负样本1个。模型把所有的样本都预测为正样本,那么模型的Accuracy为99%,看评价指标,模型的效果很好,但实际上模型没有任何预测能力。

2、精确率(Precision)

精确率又称为查准率,是针对预测结果而言的一个评价指标。指在分类正确的正样本个数占分类器判定为正样本的样本个数的比例。精确率是对部分样本的统计量,侧重对分类器判定为正类的数据的统计。它被定义为:

多标签:

3、召回率(Recall)

召回率指分类正确的正样本个数占真正的正样本个数的比例。召回率也是对部分样本的统计量,侧重对真实的正类样本的统计。它被定义为:

多标签:

Precision 与 Recall 的权衡

精确率高,意味着分类器要尽量在 “更有把握” 的情况下才将样本预测为正样本, 这意味着精确率能够很好的体现模型对于负样本的区分能力,精确率越高,则模型对负样本区分能力越强

召回率高,意味着分类器尽可能将有可能为正样本的样本预测为正样本,这意味着召回率能够很好的体现模型对于正样本的区分能力,召回率越高,则模型对正样本的区分能力越强

从上面的分析可以看出,精确率与召回率是此消彼长的关系, 如果分类器只把可能性大的样本预测为正样本,那么会漏掉很多可能性相对不大但依旧满足的正样本,从而导致召回率降低。

那么当不同模型的Recall和Precision各有优势时该如何选择模型?此时可以通过F1 Score来比较。

4、F1分数(F1 Score)

F1 Score是精准率和召回率的调和平均值,它同时兼顾了分类模型的准确率和召回率,是统计学中用来衡量二分类(或多任务二分类)模型精确度的一种指标。它的最大值是1,最小值是0,值越大意味着模型越好。 它定义为:

F-Beta Score

更一般的Fβ,它的物理意义就是将准确率和召回率这两个分值合并为一个分值,在合并的过程中,召回率的权重是准确率的β倍。我们定义Fβ分数为:

β本质上是Recall与Precision 权重比, 当 β=2 时, F2表明 Recall 的权重要比Precision高,其影响更大; 当 β=0.5 时, F0.5 表明 Recall 的权重要比Precision低, 对应的影响更小;

宏平均F1分数(Macro F1)

宏平均 F1 算法在计算 Precision 与 Recall 时,是先分别计算每个类别的Precision 与 Recall, 然后再进行平均。

宏平均F1分数公式为:

注:Macro F1 本质上是所有类别的统计指标的算术平均值来求得的,这样单纯的平均忽略了样本之间分布可能存在极大不平衡的情况。

微平均F1分数(Micro F1)

微平均 F1 算法在计算 Precision 与 Recall 时会将所有类直接放到一起来计算。

微平均F1分数公式为:

Macro 与 Micro 的区别

Macro 相对 Micro 而言,小类别起到的作用更大。例如,对于一个四分类问题有:

class A: 1 TP, 1 FPclass B: 10 TP , 90 FPclass C: 1 TP, 1 FPclass D: 1 TP, 1 FP

那么对于 Precision 的计算如下:

我们看到,对于 Macro 来说, 小类别相当程度上拉高了 Precision 的值,而实际上, 并没有那么多样本被正确分类,考虑到实际的环境中,真实样本分布和训练样本分布相同的情况下,这种指标明显是有问题的, 小类别起到的作用太大,以至于大样本的分类情况不佳。 而对于 Micro 来说,其考虑到了这种样本不均衡的问题, 因此在这种情况下相对较佳

总结如下:

如果你的类别比较均衡,则随便使用Micro或者Macro;如果你认为大样本的类别应该占据更重要的位置, 使用Micro;如果你认为小样本也应该占据重要的位置,则使用 Macro;如果 Micro << Macro , 则意味着在大样本类别中出现了严重的分类错误;如果 Macro << Micro , 则意味着小样本类别中出现了严重的分类错误。

加权F1分数(Weighted F1)

为了解决 Macro 无法衡量样本均衡问题,一个很好的方法是求加权的 Macro, 因此 Weighted F1 出现了。

加权F1算法是Macro算法的改良版,是为了解决Macro中没有考虑样本不均衡的原因,在计算 Precision 与 Recall 时候,各个类别的 Precision 与 Recall要乘以该类在总样本中的占比来求和。

加权F1分数公式为:

5、马修斯相关系数(Matthews correlation coefficient)-MCC

MCC 主要用于衡量二分类问题,其综合考虑了 TP, TN, FP, FN, 是一个比较均衡的指标, 对于样本不均衡情况下也可以使用。

MCC的取值范围在 [-1, 1] , 取值为1 表示预测与实际完全一致, 取值为0表示预测的结果还不如随机预测的结果, -1 表示预测结果与实际的结果完全不一致。

因此我们看到, MCC 本质上描述了预测结果与实际结果之间的相关系数。

马修斯相关系数公式为:

6、Cohen's kappa统计系数

Cohen's kappa系数是评价者间可信度的一种统计度量。在统计学中,评价者之间的可信度、评价者之间的一致性或一致性是评价者之间的一致程度。它给出了一个分数,显示了评价者给出的评级中有多少同质性或共识。

MCC的取值范围在 [-1, 1] ,这个函数计算Cohen 's kappa,这是一个表示两个评价者在分类问题上的一致程度的分数。它被定义为

 使用 Cohen's kappa系数分析需要满足以下5个条件:

判定结果是分类变量且互斥。不同观测者判定的对象相同。每个观察对象可能被判定的结果种类相同。观测者之间互不干扰。由固定的观测者完成所有判定。

与直接计算的一致率相比,Cohen's kappa系数考虑了机遇一致率对于结果的影响。

如果Cohen's kappa系数 < 0,则说明观察一致率小于机遇一致率,这在实际研究中很少出现。

如果Cohen's kappa系数 = 0,则说明结果完全由机遇因素导致。

如果Cohen's kappa系数 > 0,则说明研究对象之间存在一定的一致性,Cohen's kappa系数越接近1,一致性越大。

Cohen's kappa系数一致性含义如下表:

参考内容:

sklearn.metrics.cohen_kappa_score — scikit-learn 1.2.2 文档

Inter-rater agreement Kappas |作者:阿米尔·齐艾 |迈向数据科学 (towardsdatascience.com)

SPSS应用|(14) Cohen's kappa系数分析 (qq.com)

7、ROC 曲线

在分类任务中,测试样本通常是获得一个概率表示当前样本属于正例的概率, 我们往往会采取一个阈值,大于该阈值的为正例,小于该阈值的为负例。 如果我们减小这个阈值, 那么会有更多的样本被识别为正类,这会提高正类的识别率,但同时会降低负类的识别率。

为了形象的描述上述的这种变化, 引入ROC曲线来评价一个分类器的好坏。ROC曲线也是一个全面评估模型的指标,中文名为“受试者工作特征曲线”。ROC曲线源于军事领域, 而后在医学领域应用甚广, “受试者工作特征曲线”这一名称也正是来自于医学领域。

ROC曲线的横坐标为假阳性率( False Positive Rate, FPR),即将负例错分为正例的概率 ,医学上称为误诊率; 纵坐标为真阳性率( True Positive Rate, TPR),将正例分对的概率。

横坐标:

纵坐标:

 

实际场景中, AUC 的确是非常常用的一种指标。

注意:在多分类场景下的 ROC 曲线以及 AUC 值, 此时 ROC 曲线应该有多个,
而AUC 的计算如下:$$AUC=\frac2}{C|(|C|-1)\sum_i=1}^{C|{AUC_i}$$,其中C表示类别数量。

8、P-R 曲线

我们知道,分类模型的最后输出往往是一个概率值,我们一般需要把概率值转换为具体的类别,对于二分类来说,我们设置一个阈值(threshold),然后大于此阈值判定为正类,反之负类。

以上评价指标(Accuracy、Precision、Recall)都是针对某个特定阈值来说的,那么当不同模型取不同阈值时,如何全面的评价不同模型?而P-R曲线则是描述精确率和召回率变化的曲线。

对于所有的正样本,如何绘制P-R曲线?

设置不同的阈值,模型预测所有的正样本,计算对应的精准率和召回率。横轴是召回率, 纵轴是精确率,如下如所示。

LogLoss衡量的是预测概率分布和真实概率分布的差异性,取值越小越好。与AUC不同,LogLoss对预测概率敏感。

对数损失对应的二分类的计算公式为:

,其中N为样本数,

,pi为第i个样本预测为1的概率。 对数损失在多分类问题中也使用广泛,其计算公式为:

其中,N为样本数,C为类别数,yij表示第i个样本的类别j的分类标签,第个样本的类别的概率。pij第i个样本的类别j的概率。

LogLoss和AUC的区别

LogLoss主要是评估是否准确,AUC是用来评估是把正样本排到前面的能力,评估的方面不一样。LogLoss主要评估整体准确性,多用于数据平衡的情况。AUC用来评估数据不平衡情况下模型的准确度。如果是平衡的分类问题,那么AUC和LogLoss都可以。

总结

通过对比上面的评估指标,总结概况如下:

精确率(Precision)是指在所有系统判定的“真”的样本中,确实是真的的占比。召回率(Recall)是指在所有确实为真的样本中,被判为的“真”的占比。F1值是为了综合考量精确率和召回率而设计的一个指标。MCC 描述了预测结果与实际结果之间的相关系数。TPR(真阳性率)的定义,跟Recall一样。FPR(假阳性率),又被称为误诊率,就是所有确实为“假”的样本中,被误判真的样本。ROC曲线展示的是 TPR 与 FPR的曲线;与之对应的是PR曲线,展示的是Precision 与 Recall的曲线。AUC 为ROC 曲线下的面积, 这个面积的数值介于0到1之间, 能够直观的评价出分类器的好坏, AUC的值越大, 分类器效果越好。对数损失是对预测概率的似然估计,衡量的是预测概率分布和真实概率分布的差异性。

对于最终分类指标的选择,在不同数据集,不同场景,不同时间下都会有不同的选择。对于二分类问题,通常用 AUC,而对于多分类,通常看 F1 值。

参考:

十分钟掌握分类算法的评估指标 - 知乎 (zhihu.com)

点击全文阅读

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句