2022机器学习实战课内容笔记 - Lesson 5 分类模型决策边界与模型评估指标

1.准确率局限

indexlabelsA-predictsB-predictspredicts_results
110.80.61
200.60.91
300.20.40
410.90.71
510.90.61

  如果是从准确率指标来看,两个模型在阈值为0.5的情况下,判别准确率都是80%(仅判错第二条样本),二者并无高下之分。但如果我们更加仔细的观察模型对各样本输出的概率欧安别结果,其实我们会发现模型A其实会更加“优秀”:首先,对于判断正确的1类数据,模型A输出的概率预测分别为0.8、0.9和0.9,表示模型非常肯定这些样本应该属于1类,而模型B的概率预测结果为0.6、0.7、0.6,表示模型并不是特别肯定这样样本属于1类,类似的情况也出现在两个模型正确识别0类的判别过程中。此外,对于误判的样本,虽然两个模型都将原本属于0类的2号样本误判为1,但模型B给出的概率结果是0.9,代表其非常肯定该样本应该属于1类,而模型A输出的概率结果为0.6,表示其并不是非常肯定该样本属于1类。在实际建模过程中,类似A模型的模型,即对判断正确的样本有较高的肯定、对判断错误的样本不太肯定,这类模型其实是更加准确的捕捉到了数据规律,在后续对于新数据集预测时,也将拥有更强的泛化能力。但遗憾的是,准确率评估指标并无法很好的将A类模型和B类模型的模型判别能力进行准确区分。

  此时我们可以通过交叉熵来比较两个模型的好坏优劣。我们知道,交叉熵计算结果越小、模型本身判别能力越强,我们尝试借助交叉熵计算公式来计算两个模型输出结果的交叉熵:

B C E A = − l o g 2 ( 0.8 ) − l o g 2 ( 0.4 ) − l o g 2 ( − 0.8 ) − l o g 2 ( 0.9 ) − l o g 2 ( 0.9 ) 5 BCE_A = \frac{-log_2(0.8)-log_2(0.4)-log_2(-0.8)-log_2(0.9)-log_2(0.9)}{5} BCEA=5log2(0.8)log2(0.4)log2(0.8)log2(0.9)log2(0.9)

在这里插入图片描述
B C E B = − l o g 2 ( 0.6 ) − l o g 2 ( 0.1 ) − l o g 2 ( − 0.6 ) − l o g 2 ( 0.7 ) − l o g 2 ( 0.6 ) 5 BCE_B = \frac{-log_2(0.6)-log_2(0.1)-log_2(-0.6)-log_2(0.7)-log_2(0.6)}{5} BCEB=5log2(0.6)log2(0.1)log2(0.6)log2(0.7)log2(0.6)在这里插入图片描述

2.混淆矩阵(Confusion matrix)

  • Actual condition:样本真实标签;
  • Predicated condition:模型预测标签;
labels(Actual condition)predicted(Predicated condition)
10
10
11
11
11
11
11
11
00
00
00
01
  • Actual condition positive(P):样本中阳性样本总数,一般也就是真实标签为1的样本总数;
  • Actual condition negative(N):样本中阴性样本总数,一般也就是真实标签为0的样本总数;
  • Predicted condition positive(PP):预测中阳性样本总数,一般也就是预测标签为1的样本总数;
  • Predicted condition negative(PN):预测中阳性样本总数,一般也就是预测标签为0的样本总数;

对于上述数据集而言,P=8,N=4,PP=7,PN=5。并且,样本总数=P+N=PP+NN=12。

  此外,在进行二分类模型预测过程中,样本类别被模型正确识别的情况其实有两种,一种是阳性样本被正确识别,另一种是阴性样本被正确识别,据此我们可以有如下定义:

  • True positive(TP):样本属于阳性(类别1)、并且被正确识别为阳性(类别1)的样本总数;TP发生时也被称为正确命中(hit);
  • True negative(TN):样本属于阴性(类别0)、并且被正确识别为阴性(类别0)的样本总数;TN发生时也被称为正确拒绝(correct rejection);

对于上述数据集而言,TP=6,TN=3。

  • False positive(FP):样本属于阴性(类别0),但被错误判别为阳性(类别1)的样本总数;FP发生时也被称为发生I类了错误(Type I error),或者假警报(False alarm)、低估(underestimation)等;
  • False negative(FN):样本属于阳性(类别1),但被错误判别为阴性(类别0)的样本总数;FN发生时也被称为发生了II类错误(Type II error),或者称为错过目标(miss)、高估(overestimation)等;

对于上述数据集而言,FP=1,FN=2。

不难发现,混淆矩阵其实具有非常强的统计表的背景,并且和此前介绍的一样、也是更倾向于重点识别1类(阳性)样本。

98

对于上述数据集,混淆矩阵计算结果为:

101

3.混淆矩阵中的模型评估指标

  当然,对于混淆矩阵来说,其实仍然属于第一级观察指标,通过混淆矩阵,通常我们并不会直接使用混淆矩阵中的一级指标,而是去使用基于这些一级指标的二级指标。例如从上述混淆矩阵所提供的结果不难看出,准确率其实就是 A C C = T P + T N T P + T N + F P + F N ACC=\frac{TP+TN}{TP+TN+FP+FN} ACC=TP+TN+FP+FNTP+TN。当然此外其实还有其他很多常用的二级指标,通过这些二级指标的构建,可以补充准确率在偏态样本中重点识别某类样本时表现的不足。首先,如果是更加关注类别1样本的识别情况,则有两个常用指标:

  • 召回率(Recall)
    R e c a l l = T P T P + F N Recall = \frac{TP}{TP+FN} Recall=TP+FNTP

对于上例中,全部12条样本中有8条1类样本,而其中有6条被正确识别,因此上例的召回率为6/8=75%。

  • 精确度(Precision)

P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} Precision=TP+FPTP

对于上例中,全部12条样本,模型总共判别7条样本为1类样本,但其中有6条判别准确,精确度为6/7=86%。

  • F1-Score

  不难发现,召回率和精确度其实是一对相对的概念,在围绕1类样本的识别过程中,召回率力求尽可能更多的将1识别出来,而精确度则力求每次对1样本的判别都能获得一个正确的结果。但是,再大多数情况下,其实我们是希望获得一个更加“均衡”的模型判别指标,即我们既不希望模型太过于激进、也不希望模型太过于保守,并且对于偏态样本,既可以较好的衡量1类样本是否被识别,同时也能够兼顾考虑到0类样本的准确率牺牲程度,此时,我们可以考虑使用二者的调和平均数(harmonic mean)作为模型评估指标,即F1-Score。

  所谓A和B的调和平均数,指的是 2 1 A + 1 B = 2 A B A + B \frac{2}{\frac{1}{A}+\frac{1}{B}}=\frac{2AB}{A+B} A1+B12=A+B2AB的计算结果,则F1-Score计算公式如下:

F 1 − S c o r e = 2 1 R e c a l l + 1 P r e c i s i o n = 2 ⋅ R e c a l l ⋅ P r e c i s i o n R e c a l l + P r e c i s i o n F1-Score = \frac{2}{\frac{1}{Recall}+\frac{1}{Precision}}=\frac{2 \cdot Recall \cdot Precision}{Recall+Precision} F1Score=Recall1+Precision12=Recall+Precision2RecallPrecision

当然,通常我们也会用TPR表示Recall、PPV表示Precision,此时F1-Score可表示如下:

F 1 − S c o r e = 2 ⋅ T P R ⋅ P P V T P R + P P V F1-Score = \frac{2\cdot TPR \cdot PPV}{TPR+PPV} F1Score=TPR+PPV2TPRPPV

如果更近一步用混淆矩阵的一级指标来进行表示,则:

F 1 − S c o r e = 2 ⋅ T P 2 ⋅ T P + F P + F N F1-Score = \frac{2\cdot TP}{2\cdot TP+FP+FN} F1Score=2TP+FP+FN2TP

  根据F1-Score的计算公式不难发现,F1-Score是一个介于[0,1]之间的计算结果,当FP+FN=0时候(即没有误判样本时),F1-Score计算结果为1;而当没有正确识别出一个1时,即TP=0时,F1-Score=0。

  对于下述混淆矩阵来说,F1-Score计算结果为 12 12 + 2 + 1 = 0.8 \frac{12}{12+2+1}=0.8 12+2+112=0.8

101
  • F1-Score基本性质
      当然,从上述结果来看,F1-Score指标能够一定程度上综合Recall和Precision的结果,综合判断模型整体分类性能。当然,除了F1-Score以外我们还可以取Recall和Precision的均值(balanced accuracy,简称BA)来作为模型评估指标:
    B A = R e c a l l + P r e c i s i o n 2 BA = \frac{Recall+Precision}{2} BA=2Recall+Precision

5.多分类混淆矩阵

103

  此时,如果要进行Recall、Precision的计算,则需要先采用此前介绍的OVR策略进行“划分”、然后采用均值策略进行“集成”,依次将A、B、C视为1类,其余类别视为0类来进行计算,例如,A、B、C三类的Recall为:

R e c a l l A = 6 6 + 2 + 2 = 0.6 Recall_A = \frac{6}{6+2+2} = 0.6 RecallA=6+2+26=0.6

R e c a l l B = 3 3 + 1 + 3 = 3 7 = 0.42 Recall_B = \frac{3}{3+1+3} = \frac{3}{7} = 0.42 RecallB=3+1+33=73=0.42

R e c a l l C = 2 2 + 2 + 6 = 0.2 Recall_C = \frac{2}{2+2+6} = 0.2 RecallC=2+2+62=0.2

然后,进行均值计算,即可算得此时模型整体Recall:
R e c a l l = 0.6 + 0.42 + 0.2 3 = 0.4 Recall = \frac{0.6+0.42+0.2}{3} = 0.4 Recall=30.6+0.42+0.2=0.4

  类似,可以算得 P r e c i s i o n A = 6 13 = 0.46 Precision_A = \frac{6}{13} = 0.46 PrecisionA=136=0.46 P r e c i s i o n B = 3 7 = 0.42 Precision_B = \frac{3}{7} = 0.42 PrecisionB=73=0.42 P r e c i s i o n C = 2 7 = 0.28 Precision_C = \frac{2}{7} = 0.28 PrecisionC=72=0.28,随后利用三者均值求出模型整体 P r e c i s i o n = 0.38 Precision=0.38 Precision=0.38
  当然,我们也可以计算模型整体F1-Score,此时仍然需要分别计算A、B和C三个模型的F1-Score,然后利用均值进行集成即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值