机器学习/数据处理领域结果的评估度量——召回率、精度、F1score等指标计算方法

我们常常在一些论文后看到作者给出的一些评估度量,不仅仅是简单的正确率,还有Fscore、recall等看似高深的东西。那么这些东西是怎么来、怎么用的呢?

我们要从不平衡类问题讲起。因为在正、负样本不均衡的类中,如果单一使用准确率可能是很不合理的。比如有10个异常类(一般标为正类),90个正常类(负类),那么我们关心的是异常类能不能都被正确分出来,这样才能达到我们的目标效果(就是检测异常)。如果我们训练的分类器把所有类都输出为负类,分类器的准确率也有90%,但对我们的目标而言没什么软用,所以稀有类的正确分类更重要。我们需要为这种不平衡问题设计合理的评估度量。

我们汇总分类模型正确和不正确预测的实例数目的混淆矩阵:

其中术语:

混淆矩阵中的计数可以表示为百分比形式。

真正率(True positive rate, TPR)或灵敏度(sensitivity)定义为被模型正确预测的正样本的比例:

        TPR=\frac{TP}{TP+FN}

真负率(True Negative Rate, TNR)或特指度表示被模型正确预测的负样本的比例:

        TNR=\frac{TN}{TN+FP}

假正率(False positive rate,FPR)定义为被预测为正类的负样本的比例,即实际上是负样本但是被分为了正类:

        FPR=\frac{FP}{TN+FP}

假负率(False Negative rate,FNR)定义为被预测为负类的正样本比例,即实际上是正样本但是被分为了父类:

        FNR=\frac{FN}{TP+FN}

好的,上面我们就讲完了不平衡类问题中可能用到的度量。

下面我们推广开,一般性问题中,广泛使用的度量:召回率(recall)精度(precision)

p=\frac{TP}{TP+FP}精度确定分类器预测为正类的那些部分数据实际也是正类的比例。精度越高,分类器假正类错误率越低。

recall=\frac{TP}{TP+FN}召回率度量被分类器正确预测的正样本的比例。具有高召回率的分类器很少将正样本分为误样本。实际上召回率的值=真正率的值。

在一些情况下,我们更看重上面两个指标。比如,人体危险动作视频检测或者基于图像的疾病检测中,我们希望召回率足够高,这意味着危险动作、疾病等样本都有很高很高的概率被检测出来,但可能不是危险动作、不是疾病的样本被误判,但是没关系,因为检测出危险动作、疾病的情况更加重要,即使有一些误报我们也在所不惜。但大家发现,这种例子情况下,召回率高了,精度就低了。我们可以构造一个极限模型,最大化其中一个度量而不管另一个。构建一个最大化精度和召回度的模型是分类算法的主要任务之一。

精度和召回度能否和谐共存呢?可以的——F1度量

F_{1}=\frac{2rp}{2\times TP+FP+FN}

即F1表示召回度和精度的调和均值:F_{1}=\frac{2}{\frac{1}{r}+\frac{1}{p}}

两个数的调和均值趋向于接近较小的数。因此,一个高的F1度量值确保模型的精度和找回度都比较高。

最后,举个例子:

共同学习,欢迎指教!祝大家学习进步哈~
 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/lyxleft/article/details/84579319