多分类问题的混淆矩阵

混淆矩阵、查准率P和召回率R

参加夏令营时候遇到过混淆矩阵、查准率和召回率的计算方法的问题,今天看书又回顾到这个概念,个人觉得对这个概念还是需要有非常清醒的认识的,做个记录。

二分类的混淆矩阵

假设正例为我有病,那反例就是我没病。
TP就是,我有病,判断有病。
FN就是,我有病,但是没判断出来,觉得我没病。
FP是,我没病,但是判断我有病。
TN是,我没病,判断的也是我没病,判断的是正确的。

真实情况\预测结果正例反例
正例TPFN
反例FPTN

查准率P和召回率R

P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
这样说来,P就是我有病且判断对了,这在判断的结果都是有病的概率,那么1-P叫虚惊一场。
但是R就是,我有病且判断对了,占,实际情况我就是有病,的概率,那么1-R就是我有病但没看出来,耽误事了,这个值当然要越小越好,这种情况下R大是好事。这个知识点在机器翻译课上老师也强调过。

那么比如推荐系统中P高是目标,这样可以给用户提供更多有趣的信息;查找罪犯判断疾病中R高是目标,保证准确性,召回率很重要。

查准率P和召回率R是一组矛盾的度量。一般来说,查准率高时,召回率就会偏低,反之亦然。

12月1日补充:一个很棒的知乎例子
在这里插入图片描述
在这里插入图片描述

综合考量: F 1 F_{1} F1

F 1 = 2 ⋅ P ⋅ R P + R = 2 ⋅ T P m + T P − T N F_{1}=\frac{2·P·R}{P+R}=\frac{2·TP}{m+TP-TN} F1=P+R2PR=m+TPTN2TP
整理得
F 1 = 2 1 P + 1 R F_{1}=\frac{2}{\frac{1}{P}+\frac{1}{R}} F1=P1+R12
度量可以看成是P和R的调和平均数,将 F 1 F_{1} F1度量推广到一般形式 F β F_{\beta} Fβ,能度量出P和R之间的不同偏好。
F β = ( 1 + β 2 ) ⋅ P ⋅ R β 2 ⋅ P + R F_{{\beta}}=\frac{(1+\beta^2)·P·R}{\beta^2·P+R} Fβ=β2P+R(1+β2)PR
β {\beta} β( β {\beta} β>0)能衡量P和R之间的相对重要程度,整理公式得
F β = 1 + β 2 β 2 R + 1 P F_{{\beta}}=\frac{1+\beta^2}{\frac{\beta^2}{R}+\frac{1}{P}} Fβ=Rβ2+P11+β2
F β F_{\beta} Fβ可以看成是P和R的加权调和平均, β {\beta} β=1, F β F_{\beta} Fβ退化成标准的 F 1 F_{1} F1,即P和R同等重要; β {\beta} β>1时,R有更大影响 β {\beta} β<1时,P有更大影响。

多分类问题的混淆矩阵

处理实际问题中,往往是多分类的,多分类的P、R、 F 1 F_{1} F1 F β F_{\beta} Fβ的计算方法要进行扩展。

真实情况\预测结果123
1 a 1 a_{1} a1 a 2 a_{2} a2 a 3 a_{3} a3
2 b 1 b_{1} b1 b 2 b_{2} b2 b 3 b_{3} b3
3 c 1 c_{1} c1 c 2 c_{2} c2 c 3 c_{3} c3

给出分类为1的查准率和召回率的计算公式,对于分类为1的情况,
T P 1 = a 1 TP_{1}=a_{1} TP1=a1 F N 1 = a 2 + a 3 FN_{1}=a_{2}+a_{3} FN1=a2+a3 F P 1 = b 1 + c 1 FP_{1}=b_{1}+c_{1} FP1=b1+c1 T N 1 = b 2 + b 3 + c 2 + c 3 TN_{1}=b_{2}+b_{3}+c_{2}+c_{3} TN1=b2+b3+c2+c3
此时,分类为1的查准率 P 1 P_{1} P1和召回率 R 1 R_{1} R1如下,
P 1 = T P 1 T P 1 + F P 1 = a 1 a 1 + b 1 + c 1 P_{1}=\frac{TP_{1}}{TP_{1}+FP_{1}}=\frac{a_{1}}{a_{1}+b_{1}+c_{1}} P1=TP1+FP1TP1=a1+b1+c1a1 R 1 = T P 1 T P 1 + F N 1 = a 1 a 1 + a 2 + a 3 R_{1}=\frac{TP_{1}}{TP_{1}+FN_{1}}=\frac{a_{1}}{a_{1}+a_{2}+a_{3}} R1=TP1+FN1TP1=a1+a2+a3a1

那么对分类2应该如何计算呢?练习一下,对于分类2的情况:
T P 2 = b 2 TP_{2}=b_{2} TP2=b2 F N 2 = b 1 + b 3 FN_{2}=b_{1}+b_{3} FN2=b1+b3 F P 2 = a 2 + c 2 FP_{2}=a_{2}+c_{2} FP2=a2+c2 T N 2 = a 1 + a 3 + c 1 + c 3 TN_{2}=a_{1}+a_{3}+c_{1}+c_{3} TN2=a1+a3+c1+c3
此时,分类为1的查准率 P 2 P_{2} P2和召回率 R 2 R_{2} R2如下,
P 2 = T P 2 T P 2 + F P 2 = b 2 a 2 + b 2 + c 2 P_{2}=\frac{TP_{2}}{TP_{2}+FP_{2}}=\frac{b_{2}}{a_{2}+b_{2}+c_{2}} P2=TP2+FP2TP2=a2+b2+c2b2 R 2 = T P 2 T P 2 + F N 2 = b 2 b 1 + b 2 + b 3 R_{2}=\frac{TP_{2}}{TP_{2}+FN_{2}}=\frac{b_{2}}{b_{1}+b_{2}+b_{3}} R2=TP2+FN2TP2=b1+b2+b3b2
简记为,分子一直是预测对了的那个,分母P:竖着。R:横着
m a c r o P = 1 m ∑ i = 0 m P i macroP=\frac{1}{m}\sum_{i=0}^mP_{i} macroP=m1i=0mPi m a c r o R = 1 m ∑ i = 0 m R i macroR=\frac{1}{m}\sum_{i=0}^mR_{i} macroR=m1i=0mRi m a c r o F 1 = 2 ⋅ m a c r o P ⋅ m a c r o R m a c r o P + m a c r o R macroF_{1}=\frac{2·macroP·macroR}{macroP+macroR} macroF1=macroP+macroR2macroPmacroR

另一种算法就是,首先获得每个分类对应二分类混淆矩阵的 T P 1 TP_{1} TP1 F N 1 FN_{1} FN1 F P 1 FP_{1} FP1 T N 1 TN_{1} TN1,然后求他们的平均值,扔进上面macro公式中。

MSRA实习生,同济的子豪兄,讲的很不错~十五秒钟就能听完这个知识点~

就先写这么多啦,在这个概念上反反复复已经花了很多时间了!

2021.11.6更,看paper看糊涂了,看了半天居然没区分EM和CM。。
Evaluation metric:评价指标
Confusion Matrix:混淆矩阵

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值