混淆矩阵是理解分类问题,和衡量分类问题解决效果的一个方法,具体如下(我们仅以二分类举例,实际上也可以有多个label类别的多分类问题):

在实际分析中,我们的label(实际的类别)有两种情况1或0,对于结果的预测也可能有两种情况(1或0),那么我们在建立某个模型对数据进行分析预测的时候,结果就可能有四种。(这里正规的方法是label标记为True or False,预测结果标记为Positive or Negtive,但是我觉得我的方法更好理解)。四种情况如下(我们用是否作弊来进行举例):
a)真实数据是1(作弊),我们预测的结果也是1(作弊)(上图蓝色圆圈中标记1)
b)真实数据是0(非作弊),我们预测的结果也是0(非作弊)(上图蓝色圆圈中标记2)
c)真实数据是1(作弊),我们预测的结果是0(非作弊)(模型漏召)(上图蓝色圆圈中标记4)
d)真实数据是0(非作弊),我们预测的结果是1(作弊)(模型误伤)(上图蓝色圆圈中标记3)
那么,衡量我们分类问题解决的好or不好,就可以用三个指标来衡量:
a)recall(召回率):也就是我们抓到的作弊case,占全部作弊case的比例,或者说我们解决了多大比例的作弊问题。
具体算法:recall = 蓝圈1/( 蓝圈1+ 蓝圈4)
b)precision(精确率):也就是我们抓到的,判断为作弊的case中,真实的作弊case的占比。或者说我们解决这个问题,付出了多少代价(实际业务中,很多人把这个指标叫做准确率,其实是不严谨的,但是大家貌似已经形成习惯)
具体算法:precision=蓝圈1/( 蓝圈1+ 蓝圈3)
c)Acurracy(准确率):也就是我们判断正确的,除以全部待预测的数据的比值,这个数据不常用
具体算法:( 蓝圈1+ 蓝圈2)/( 蓝圈1+ 蓝圈2+ 蓝圈3+ 蓝圈4)
实际业务中一般使用recall和precision来判断业务效果
因为准确率和召回率是相悖的,也就是一个提高必定会以另一个下降为代价,所以另外还有一个综合衡量指标F1,用比较均衡的方式来代表模型的综合效果,具体算法为:
F1 =2* (recall*precision)/(recall+precision)
网友评论