Precision,Recall,TPR,FPR,ROC,AUC,F1辨析

  • Post author:
  • Post category:其他


常见统计学习的性能指标

分类结果

  • 对于一个二分类问题,分类结果如下:

    预测 预测
    1 0 合计
    实际 1 True Positive(TP) False Negative(FN) 实际为正
    实际 0 False Positive(FP) True Negative(TN) 实际为负
    合计 预测为正 预测为负 总体

    — TP:真正类,一个实例是正类,并且被预测为正类

    — FN:假负类,一个实例是正类,但是被预测为负类,

    漏报

    — FP:假正类,一个实例是负类,但是被预测为正类,

    误报

    — TN:真负类,一个实例是负类,并且被预测为负类


    记忆方法:第一个字母表示预测是否正确,第二个字母表示预测的结果

评价指标

  • 真正类率:True Positive Rate(TPR), Recall

    表示预测为正类并且实际是正类的实例的个数占总体中正实例的比例,因此也称为

    灵敏度Sensitivity

    ,通俗的理解为:

    正实例被正确的预测的比例

                        TPR = TP / (TP + FN)
  • 假正类率:False Positive Rate(FPR)

    表示预测为正类并且实际是负类的实例的个数占总体中所有负类的比例,因此也称之为

    特异度

    ,等价于

    1-Specific

    ,通俗的理解为:

    负实例被误报的比例

                         FPR = FP / (FP + TN)
  • 真负类率:True Negative Rate(TNR)

    表示预测为负类并且实际是负类的实例的个数占总体中负实例的比例,因此也称为

    specific

                          TNR = TN / (FP + TN)
  • 精确度:Precision

    表示预测为正类并且实际是正类的实例的个数占预测为正实例的比例

                          Precision = TP / (TP + FP)
  • F1 Measure

    也称为

    F1 Score

    ,被定义为Precision和Recall的调和平均数,计算如下:

    $$ F1=\frac{2\times Precision\times Recall}{Precision+Recall} $$

    更一般地,我们定义$F_\beta$如下:

    $$ F_\beta = (1+\beta^2)\frac{Precision\times Recall}{Precision + Recall} $$

    除F1之外,在统计学中,$F_2$和$F_{0.5}$也得到了大量的应用,$F_2$中Recall的权重比较大,而在$F_{0.5}$中,Precision的权重比较大。

  • ROC:Recevier Operating Characteristic,受试者工作特征曲线 / 接收器操作特征曲线

    曲线上的每个点反映着对同一信号刺激的感受性,因此也被称之为

    感受性曲线(Sensitivity Curve)

    • X轴:负正类率(FPR,特异度,1-Specific)
    • Y轴:真正类率(TPR,灵敏度,Sensitivity,Recall)
  • AUC:Aera Under Curve,即ROC曲线下的面积

    这个面积显然不会大于1,又因为ROC曲线一般都在y=x这条直线上方,所以AUC的值域为(0, 1)

    使用AUC作为评价指标是因为很多时候我们并不能够从ROC曲线上清晰准确地判断哪个分类器的性能更好,而作为一个数值,AUC越大,对应的分类器的性能越好。AUC的计算可以参考

    scikit-learn

    的实现。

为什么使用ROC曲线?

因为当测试集中的正负样本的分布发生变化的时候,ROC曲线能够保持不变,因此能够更客观的进行分类器性能的评价