• 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

  • 相关阅读:
    多层交换概述
    多层交换MLS笔记2
    多层交换MLS笔记1
    RSTP Proposal-Agreement
    RSTP Note
    保护STP
    优化STP
    Cisco STP Note
    25、C++的顶层const和底层const
    43、如何用代码判断大小端存储
  • 原文地址:https://www.cnblogs.com/1k-yang/p/13091340.html
Copyright © 2020-2023  润新知