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

常见统计学习的性能指标

分类结果

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

    - - 预测 预测 -
    - - 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 / (TN + FP)
  • 假负类率:False Negative Rate(FNR)
    表示预测为负类并且实际为正例的个数占总体中的所有正类的个数,通俗的理解为:正实例被漏报的比例

                          
                         FNR = FN / (FN + TP)
  • 精确度:Precision
    表示预测为正类并且实际是正类的实例的个数占预测为正实例的比例

                          
                         Precision = TP / (TP + FP)

    方便记忆: TPR,TNR的分子都是前两个字母,分母是被预测为第二个字母表示, 对于TPR: 分子为TP,分母为预测为P,即预测为正的,那么预测的为正包含两部分分别是TP + FN;对于TNR:分子为TN,分母为预测为N的,那么预测为N的包含两部分,分别是TN + FP
    方便记忆:对于FPR,分子为FP,表示实际为负例,被预测为正例,被误报了,对于误报率,分母自然就是所有的负样本了包含TN和FP,其实可以记忆分母为FP(来自于前两个字母),第二个加项就是T(第二个字母取反);而对于FNR,分子为FN,表示实际为正例,被预测为负例,被漏报了,对于漏报率,当然分母为全体的正样本了,包含两部分,TP + FN

  • 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曲线能够保持不变,因此能够更客观的进行分类器性能的评价

你可能感兴趣的:(机器学习)