Data Mining | 二分类模型评估-混淆矩阵

 

1 二分类模型评估

1.1 混淆矩阵

在完成机器学习建模之后,我们需要用一些指标,来度量模型性能的好坏(即模型的泛化能力),以便对比不同模型,从而知道哪个模型相对好,哪个模型相对差,并通过这些指标来进一步调参逐步优化模型。对于分类和回归两类有监督学习评判标准如下,这里主要讨论与分类相关的一些指标。

模型类型 特点 评估指标
分类 Y是离散的 用混淆矩阵
回归 Y是连续的 用R2、MSE、RSE,推荐R2

在评估分类模型时,可以分为二分类模型评估、多分类模型评估。但在实际应用中,我们往往是把多分类模型拆分成多个二分类模型,如下图所示。所以,分类模型的评估,我们重点关注二分类模型评估即可。


 
混淆矩阵定义

在确定预测概率阈值的前提下,真实分类和预测分类组成的交叉表,就是混淆矩阵(Confusion Matrix)。其中,用1、0代表正例、负例,因为1和0是数字,阅读性不好,所以我们分别用P和N表示1和0两种结果。变换之后为PP,PN,NP,NN,阅读性也很差,并不能轻易地看出来预测的正确性与否。因此,为了能够更清楚地分辨各种预测情况是否正确,我们将其中一个符号修改为T和F,以便于分辨出结果,即:

  • P(Positive):代表1
  • N(Negative):代表0
  • T(True):代表预测正确
  • F(False):代表错误

 
按照上面的字符表示重新分配矩阵,就得到最终的形式,详见下图。具体的解读:①先看预测结果(P/N),②再根据实际表现对比预测结果,给出判断结果(T/F)。

  • TP(True Positive):预测为1,预测正确,即实际1,真正例
  • FP(False Positive):预测为1,预测错误,即实际0,假正例
  • FN(False Negative):预测为0,预测错误,即实际1,假负例
  • TN(True Negative):预测为0,预测正确,即实际0,真负例

评估分类模型的指标有很多,且全都能用TP、FN、FP、TN表示出来。因为很多指标有不同中文翻译,为避免混淆,后面所有指标都用英文表示。混淆矩阵在商业领域最常用的指标有5个。

 

1.1.1 ACC

ACC(Accuracy),又称准确率,指预测正确的结果占总样本的百分比。其公式如下:

ACC = (TP+TN) / (TP+TN+FP+FN)

虽然准确率可以判断总的正确率,但是在样本不平衡的情况下,并不能作为很好的指标来衡量结果。举个简单的例子,在一个总样本中,正样本占90%,负样本占10%,样本是严重不平衡的。对于这种情况,我们只需要将全部样本预测为正样本,即可得到90%的高准确率,但实际上我们并没有很用心的分类,只是随便一分而已。这就说明,由于样本不平衡的问题,导致了得到的高准确率结果含有很大的水分。即如果样本不平衡,准确率就会失效。所以衍生出了其它两种指标:PPV、TPR,以进行补充。

 

1.1.2 PPV

PPV(Precision),又称精确率查准率,它是针对预测结果而言的,它的含义是在所有被预测为正的样本中实际为正的样本的概率,意思就是在预测为正样本的结果中,我们有多少把握可以预测正确,其公式如下:

PPV = TP / (TP+FP)

精确率和准确率看上去有些类似,但是完全不同的两个概念。精确率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。

 

1.1.3 TPR

TPR指标有多个别称:Sensitivity、Recall、TPR(True Positive Rate),中文翻译为灵敏度召回率真正例率,还有叫查全率。它的含义是在实际正样本中被正确预测为正样本的概率,其公式如下:

TPR = TP / (TP+FN)

召回率的应用场景:比如拿网贷违约率为例,相对好用户,我们更关心坏用户,不能错放过任何一个坏用户。因为如果我们过多的将坏用户当成好用户,这样后续可能发生的违约金额会远超过好用户偿还的借贷利息金额,造成严重偿失。召回率越高,代表实际坏用户被预测出来的概率越高,它的含义类似:宁可错杀一千,绝不放过一个。

 

1.1.4 FPR

FPR指标也有多个别称:1-SPE(Specificity)、FPR(False Positive Rate),中文译为1-特异度假正例率,指实际负样本中被错误预测为正样本的概率,其公式如下:

FPR = FP / (FP+TN)

其中特异度(Specificity)的公式为:SPE = TN / (FP+TN)。由于我们比较关心正样本,所以需要查看有多少负样本被错误地预测为正样本,所以使用(1-特异度),而不是特异度。

 
综上,可以发现TPR和FPR分别是基于实际表现1和0出发的,也就是说它们分别在实际的正样本和负样本中来观察相关概率问题。正因为如此,所以无论样本是否平衡,都不会被影响。举个例子,总样本中,90%是正样本,10%是负样本。我们知道用准确率是有水分的,但是用TPR和FPR不一样。这里,TPR只关注90%正样本中有多少是被真正覆盖的,而与那10%毫无关系,同理,FPR只关注10%负样本中有多少是被错误覆盖的,也与那90%毫无关系,所以可以看出:如果我们从实际表现的各个结果角度出发,就可以避免样本不平衡的问题了,这也是为什么选用TPR和FPR作为ROC/AUC的指标,因为它们能让ROC和AUC无视样本不平衡。

 

1.1.5 F-Score

由前面可知:PPV是一个纯度的概念,TPR是一个广度的概念,两者分别延伸出不同的策略:

  • 重TPR:追求广度,稳健策略:坏账少,利润也低,适合发展很久的公司
  • 重PPV:追求纯度,激进策略:坏账多,利润高,适合初创公司

很明显两者是不共存的关系,想要鱼和熊掌兼得,就需要一个新指标来对两者权衡,它就是F-Score,其公式如下:

其中β是一个可以调节的参数,不同的取值代表选择不同的策略:

  • β=1:无偏好,PPV和TPR一样重要,取值为F1-Score,取值范围[0,1],值越大表示模型效果越好
  • β>1:偏稳健策略,重TPR,常用界值是2,即F2-Score
  • β<1:偏激进策略,重PPV,常用界值是0.5,即F0.5-Score

 
找最优阈值

通过上面的公式,我们发现:PPV和TPR(即召回率Recall)的分子是相同,都是TP,但分母是不同的,一个是(TP+FP),一个是(TP+FN)。两者的关系可以用一个P-R曲线来展示:

首先从排序型模型说起。拿逻辑回归举例,逻辑回归的输出是一个0到1之间的概率数字,因此,如果我们想要根据这个概率判断用户好坏的话,我们就必须定义一个阈值。通常来讲,逻辑回归的概率越大说明越接近1,也就可以说他是坏用户的可能性更大。比如,我们定义了阈值为0.5,即概率小于0.5的我们都认为是好用户,而大于0.5都认为是坏用户。因此,对于阈值为0.5的情况下,我们可以得到相应的一对PPV和TPR。

但问题是:这个阈值是我们随便定义的,我们并不知道这个阈值是否符合我们的要求。因此,为了找到一个最合适的阈值满足我们的要求,我们就必须遍历0到1之间所有的阈值,而每个阈值下都对应着一对PPV和TPR,从而我们就得到了这条曲线。

那该如何找到最好的阈值点呢?因为这两个指标是一对矛盾体,无法做到双高。图中明显看到,如果其中一个非常高,另一个肯定会非常低。选取合适的阈值点要根据实际需求,即看公司的业务营销策略。通常情况下,我们对于这两个指标的要求是:希望PPV和TPR同时都非常高,即β=1,F-Score取值为F1-Score。反映在图中就是斜率为0.5的虚线去和P-R曲线相交,交点既是最优阈值点,此时PPV = TPR,F1-Score公式如下:

 

1.1.6 小结

上面介绍了好几个混淆矩阵常用指标,概念和称呼上容易弄混;另外混淆矩阵中还有一些其他指标,为方便查找,特此做一个指标小结,常用指标如下表。

指标小结.png

 
还有些不太常用的指标见下表,推导过程略。

其他指标.png

原文地址:https://www.cnblogs.com/1k-yang/p/13091340.html