本文主要是介绍[分类指标]准确率、精确率、召回率、F1值、ROC和AUC、MCC马修相关系数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
准确率、精确率、召回率、F1值
定义:
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,值越大意味着模型越好。 它定义为:
优缺点:
准确率、精确率、召回率、F1 值主要用于分类场景。
准确率可以理解为预测正确的概率,其缺陷在于:当正负样本比例非常不均衡时,占比大的类别会影响准确率。如异常点检测时:99% 的都是非异常点,那我们把所有样本都视为非异常点准确率就会非常高了。
精确率,查准率可以理解为预测出的东西有多少是用户感兴趣的;
召回率,查全率可以理解为用户感兴趣的东西有多少被预测出来了。
一般来说精确率和召回率是一对矛盾的度量。为了更好的表征学习器在精确率和召回率的性能度量,引入 F1 值。
5. ROC曲线和评价指标AUC
ROC:接受者操作特性曲线(receiver operating characteristic curve,简称ROC曲线),是指在特定刺激条件下,以被试在不同判断标准下所得的虚报概率P(y/N)为横坐标,以击中概率P(y/SN)为纵坐标,画得的各点的连线。
所以需要计算两个值1、虚报概率 FPR; 2、击中概率 TPR
首先利用混淆矩阵计算ROC:
假阳性率(False Positive Rate, FPR)(虚报概率): 横坐标,N是真实负样本的个数,FP是N个负样本中被分类器预测为正样本的个数。 FPR=FP/(FP+TN)
真阳性率(True Positive Rate, TPR)(击中概率):纵坐标, TPR=TP / (TP+FN)
ROC曲线特性:当测试集中的正负样本分布发生变化了,ROC曲线可以保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。
为什么ROC不受样本不平衡的影响呢?
TPR考虑的都是正例,既分母TP+FN是真实正例的数目;FPR考虑的都是负例,分母FP+TN是真实负例的数目。
想一下ROC曲线绘画过程,可以看成以预测为正例的概率进行排序,然后概率由大到小依次把样本预测为正例,每次把一个样本当成正例ROC曲线上就多了一个点(TPR,FPR)。这个过程也可以看成一个由大到小的阈值去筛选概率高的样本作为正例(预测值)。
如果负例增加到10倍,可以假设增加的负样本与原有的负样本保持独立同分布。
TPR:在学习器和上述阈值不变的情况下,我们看一下负例增加前后TPR会不会变化。首先分母不会变。再考虑分子,因为阈值和学习器也不变,那么对于真实的正例来说,预测结果不变,则TPR不变。
FPR:对于FPR来说,分母变为10*(FP+TN),给定学习器和阈值,因为假设增加的数据与原数据独立同分布,那么大于这个阈值的负样本(label为负)也会变为原来的10倍,即10*FP。所以FPR也不变。
上述的讨论是对于ROC中的一个点讨论的,再让阈值动起来的话,那么可以得到ROC上每个点都不变。当然这是理想情况,实际上由于数据噪声等影响,曲线肯定会有轻微扰动,但整体不会有较大的变化。
6、马修斯相关系数 MCC(Matthews correlation coefficient):
MCC 主要用于衡量二分类问题,其综合考虑了 TP, TN, FP, FN, 是一个比较均衡的指标, 对于样本不均衡情况下也可以使用。(由precision、recall、F1的计算公式可以看出这三个指标完全与TN无关,只关心正类而忽略负类的表现。而当类别不平衡时ACC的评估指标无法关注到少数类。)
MCC的取值范围在 [-1, 1] , 取值为1 表示预测与实际完全一致, 取值为0表示预测的结果还不如随机预测的结果, -1 表示预测结果与实际的结果完全不一致。
因此我们看到, MCC 本质上描述了预测结果与实际结果之间的相关系数。
马修斯相关系数公式为:
这篇关于[分类指标]准确率、精确率、召回率、F1值、ROC和AUC、MCC马修相关系数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!