一、混淆矩阵
1.混淆矩阵的介绍
混淆矩阵有两个定义positive(正例)和negative(反例)。分别代表模型结果的好和坏。
下图就是一个分类问题的混淆矩阵。横行代表真实的情况,而竖行代表预测的结果。
为了便于理解,我在这里举一个分出瓜的好坏的分类问题。
TP:True Positive,真正例。表示这个瓜实际上是一个好瓜,预测出来的结果也是好瓜,所以它是一个真的好瓜,是一个真正例。预测结果正确。
FP:False Positive,假正例。表示这个瓜本身是一个坏瓜,预测结果却是一个好瓜,所以它是一个假的好瓜,是一个假正例。预测结果错误。
FN:False Negative,假反例。表示这个瓜本身是一个好瓜,预测结果是坏瓜,所以它是一个假的坏瓜,是一个假反例。预测结果错误。
TN:Truen Negative,真反例。表示这个瓜本身是一个坏瓜,预测结果也是一个坏瓜,所以它是一个真的坏瓜,是一个真反例。预测结果正确。
需要明确,明确T和F代表模型预测结果的对错,P和N代表模型预测出来的结果。
接下来,我们举个例子,便于我们学习混淆矩阵指标:准确率、精准率和召回率。
有100个瓜,实际上由40个好瓜,60个坏瓜。但是模型预测出来的结果为50个好瓜,50个坏瓜。在这50个好瓜里面,有30个预测对了,有20个预测错了。
此时预测的50个好瓜里面,30个预测对了,即真好瓜(TP);20个预测错了,即假好瓜。 所以TP = 30,FP = 20。
我们可以知道,40个好瓜=真的好瓜+预测错的坏瓜;60个坏瓜 = 真的坏瓜+假的好瓜。如下图:
根据以上式子,我们计算出了混淆矩阵所有的值。
根据以上条件,我们能够写出混淆矩阵。
我们期待的结果是预测结果和真实结果相一致,但是往往不太可能,所以我们需要评估的好坏,这里我们需要用到混淆矩阵的指标:准确率、精确率、召回率。
2.准确率
准确率是预测准确的样本数在所有预测样本数的比例。在我们这里就是预测的真的好瓜和真的坏瓜在总瓜数的占比。
准确率的计算公式为:
通过准确率我们可以看出模型的分类能力。
但是准确率的弊端是:如果在样本不均衡的情况下,占比大的对样本的影响比较大。
考虑一个极端的例子,其中有100个样本,其中99个属于类别A,1个属于类别B。如果一个模型将所有样本都预测为类别A,那么它的分子中,预测准确的A样本为99,预测准确的B样本为0,除以分母100。
准确率将是99%。尽管准确率很高,但模型对于类别B的预测几乎完全失败。所以这是不对的。
这种情况下,我们需要借助精准率(precision)。
3.精确率
精准率(precision),是用来计算模型预测的多准的指标,又名查准率。
精准率的计算公式为:
精确率关注的是在所有模型认为是正类别的样本中,有多大比例是真实的正类别。因此,精确率通常被解释为模型有多准确地"查准"了正类别,即模型有多能够确保它的正类别预测是准确的。
在一些应用中,比如垃圾邮件过滤,我们希望模型尽可能地准确地标识出正类别(即真正的垃圾邮件),同时避免将负类别(即正常邮件)错误地分类为正类别。在这种情况下,我们希望精确率尽可能高,以确保模型的正类别预测是可靠的。
3.召回率
如果说精确度是模型预测的多准的指标,那么召回率就是模型广度的指标,又被称为查全率。
召回率的计算公式为:
公式表示需要分类的类别,在实际的该种类总数中,占比多少。好瓜在实际好瓜的总数是多少。所以召回率(查全率)是指模型在多大程度上能够预测出我需要的类别。
比如说:我有100个好瓜,你识别出50个,那么你的就在识别出我所需要的类别的能力就有50%。
在实际的评估工作中,我们通常使用精确率和召回率来评估模型的效果。通过召回率看找到了多少我们想要找的好瓜,通过精确率来看我们找好瓜有多准。
召回率关注的是在实际为正类别的样本中,模型有多大程度地能够成功地识别出来。因此,召回率通常被解释为模型有多好地"查找"或"捕捉"了正类别,即模型有多能够找到所有实际存在的正类别样本。
在一些应用中,如医学诊断或欺诈检测,对于正类别的遗漏是不可接受的,因为这可能导致严重的后果。在这种情况下,我们希望模型的召回率尽可能高,以确保尽可能多地捕捉到所有真实的正类别。
由于精确率和召回率相互矛盾。模型如果想要查找的更准确,会减少识别的范围,所以精准率高,召回率低;反之,如果想要召回率高一点,那么精确率也会随之下降。
所以我们一般给算法同学提需求的时候会同时考虑。比如:30%的召回率下精准率提升5倍。
4.F1值
F1指标可以综合反映召回率和精准率,F1值越高,代表模型在精确率和召回率的综合表现越高。
F1的计算公式:
5.总结
准确率:比较容易理解,在样本不均衡的时候指标偏差过大。
精确率:模型预测的准确度。宁肯不预测,也不能预测错,秉持宁缺毋滥的原则。比如在刷脸支付的场景下,我们宁可检测不通过,而不能预测出错。
召回率:关注筛选的结果是不是全面的场景,秉持宁可错杀一千,也不放过一个的原则。
PS:如果对于这几个指标还是不明白,推荐大家看这篇博文,讲的比较清晰。
准确率,精准率,召回率,真正率,假正率,ROC/AUC-CSDN博客
参考文献: 刘海丰——《成为AI产品经理》