1. 混淆矩阵
在介绍各个率之前,先来介绍一下混淆矩阵。如果我们用的是个二分类的模型,那么把预测情况与实际情况的所有结果两两混合,结果就会出现以下 4 种情况,就组成了混淆矩阵。
09664be417704a28a96b2da2f30e464f.png由于 1 和 0 是数字,阅读性不好,所以我们分别用 P 和 N 表示 1 和 0 两种结果。变换之后为 PP,PN,NP,NN,阅读性也很差,我并不能轻易地看出来预测的正确性与否。因此,为了能够更清楚地分辨各种预测情况是否正确,我们将其中一个符号修改为 T 和 F,以便于分辨出结果。
P(Positive): 代表 1
N(Negative): 代表 0
T(True): 代表预测正确
F(False): 代表错误
按照上面的字符表示重新分配矩阵,混淆矩阵就变成了下面这样:
d95ea304986f46228888fac89cc2aac8.png将这种表示方法总结如下,可分为两部分:
image因此对于这种表示方法可以这么简单的理解:先看 ①预测结果(P/N),再根据 ②实际表现对比预测结果,给出判断结果(T/F)。 按这个顺序理解,这四种情况就很好记住了。
TP: 预测为 1,预测正确,即实际 1
FP: 预测为 1,预测错误,即实际 0
FN: 预测为 0,预测错确,即实际 1
TN: 预测为 0,预测正确即,实际 0
2. 准确率
既然是个分类指标,我们可以很自然的想到准确率,准确率的定义是预测正确的结果占总样本的百分比,其公式如下:
准确率 =(TP+TN)/(TP+TN+FP+FN)
image虽然准确率可以判断总的正确率,但是在样本不平衡 的情况下,并不能作为很好的指标来衡量结果。举个简单的例子,比如在一个总样本中,正样本占 90%,负样本占 10%,样本是严重不平衡的。对于这种情况,我们只需要将全部样本预测为正样本即可得到 90% 的高准确率,但实际上我们并没有很用心的分类,只是随便无脑一分而已。这就说明了:由于样本不平衡的问题,导致了得到的高准确率结果含有很大的水分。即如果样本不平衡,准确率就会失效。
正因为如此,也就衍生出了其它两种指标:精准率和召回率。
3. 精准率
精准率(Precision)又叫查准率,它是针对预测结果 而言的,它的含义是在所有被预测为正的样本中实际为正的样本的概率,意思就是在预测为正样本的结果中,我们有多少把握可以预测正确,其公式如下:
精准率 =TP/(TP+FP)
image精准率和准确率看上去有些类似,但是完全不同的两个概念。精准率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。
4. 召回率
召回率(Recall)又叫查全率,它是针对原样本而言的,它的含义是在实际为正的样本中被预测为正样本的概率,其公式如下:
精准率 =TP/(TP+FN)
image召回率的应用场景: 比如拿网贷违约率为例,相对好用户,我们更关心坏用户,不能错放过任何一个坏用户。因为如果我们过多的将坏用户当成好用户,这样后续可能发生的违约金额会远超过好用户偿还的借贷利息金额,造成严重偿失。召回率越高,代表实际坏用户被预测出来的概率越高,它的含义类似:宁可错杀一千,绝不放过一个。
5. 精准率和召回率的关系,F1 分数
通过上面的公式,我们发现:精准率和召回率的分子是相同,都是 TP,但分母是不同的,一个是(TP+FP),一个是(TP+FN)。两者的关系可以用一个 P-R 图来展示:
image如何理解 P-R(查准率-查全率)这条曲线?
有的朋友疑惑:这条曲线是根据什么变化的?为什么是这个形状的曲线? 其实这要从排序型模型说起。拿逻辑回归举例,逻辑回归的输出是一个 0 到 1 之间的概率数字,因此,如果我们想要根据这个概率判断用户好坏的话,我们就必须定义一个阈值 。通常来讲,逻辑回归的概率越大说明越接近 1,也就可以说他是坏用户的可能性更大。比如,我们定义了阈值为 0.5,即概率小于 0.5 的我们都认为是好用户,而大于 0.5 都认为是坏用户。因此,对于阈值为 0.5 的情况下,我们可以得到相应的一对查准率和查全率。
- 本文地址:一文让你彻底理解准确率,精准率,召回率,真正率,假正率,ROC/AUC
- 本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出
但问题是:这个阈值是我们随便定义的,我们并不知道这个阈值是否符合我们的要求。 因此,为了找到一个最合适的阈值满足我们的要求,我们就必须遍历 0 到 1 之间所有的阈值,而每个阈值下都对应着一对查准率和查全率,从而我们就得到了这条曲线。
有的朋友又问了:如何找到最好的阈值点呢? 首先,需要说明的是我们对于这两个指标的要求:我们希望查准率和查全率同时都非常高。 但实际上这两个指标是一对矛盾体,无法做到双高。图中明显看到,如果其中一个非常高,另一个肯定会非常低。选取合适的阈值点要根据实际需求,比如我们想要高的查全率,那么我们就会牺牲一些查准率,在保证查全率最高的情况下,查准率也不那么低。
F1 分数
但通常,如果想要找到二者之间的一个平衡点,我们就需要一个新的指标:F1 分数。F1 分数同时考虑了查准率和查全率,让二者同时达到最高,取一个平衡。F1 分数的公式为 = 2 查准率查全率 / (查准率 + 查全率)。 我们在图中看到的平衡点就是 F1 分数得来的结果。
网友评论