zoukankan      html  css  js  c++  java
  • 【深度学习】Precision 和 Recall 评价指标理解

    1. 四种情况

    Precision精确率, Recall召回率,是二分类问题常用的评价指标。混淆矩阵如下:

    T和F代表True和False,是形容词,代表预测是否正确。

    P和N代表Positive和Negative,是预测结果。

    预测结果为阳性 Positive 预测结果为假阳性 Negative
    预测结果正确 True TP TN
    预测结果错误 False FP FN

    通常关注的类为正类,其他类为负类。(以猫狗二分类为例,现在关注狗的precision和recall)

    TP 正类预测为正类(预测出狗的图片实际标注也是狗)
    FN 正类预测为负类(预测出猫的图片实际标注是狗)
    FP 负类预测为正类(预测出狗的图片实际标注是猫)
    TN 负类预测为负类(预测出猫的图片实际标注是猫)

    T, F 代表的是图片对应的标签,说明是否正确。

    P, N 代表的模型预测出来的结果是对的还是错的。

    2. Precision

    精确率计算公式:

    [P=frac{TP}{TP+FP} ]

    理解:

    TP+FP: 也就是全体Positive, 也就是预测的图片中是正类的图片的数目

    TP: 也就是正类也被预测为正类的图片的个数

    总之:预测正确的图片个数占总的正类预测个数的比例(从预测结果角度看,有多少预测是准确的)

    3. Recall

    召回率计算公式:

    [R=frac{TP}{TP+FN} ]

    理解:

    TP+FN: 也就是全体完全满足图片标注的图片的个数

    TP:正类被预测为正类的图片个数

    总之:确定了正类被预测为正类图片占所有标注图片的个数(从标注角度看,有多少被召回)

    4. 二分类举例

    还是以猫狗二分类为例,测试集一共有20张狗, 20张猫的图片的标注图片(狗为正例),模型预测出其中有16张图片是狗,其中14张图片标注确实为狗,剩下两张图片标注为猫。

    对于猫来说,剩下的24张图片是猫,其中有6张是狗,18张是猫。

    Positive Negative All
    True TP: 14 TN: 18 32
    False FP: 2 FN: 6 8
    All 16 24 40

    所以可以进行计算了

    [precision = frac{TP}{TP+FP} = frac{14}{14+2} ]

    [recall = frac{TP}{TP+FN} = frac{14}{14+6} ]

    5. 多分类举例

    该例引用自:https://www.itcodemonkey.com/article/9521.html

    Class1 Actual_Class1 Actual_Class2 Actual_Class3
    Predicted_Class1 30 20 10
    Predicted_Class2 50 60 10
    Predicted_Class3 20 20 80

    比如我们对class2进行计算:

    class2-TP:标签为class2, 预测为class2 = 60

    class2-FN: 标签为class2, 预测不是class2 = 20+20 = 40

    class2-FP: 标签不为class2, 预测为class2 = 50 + 10 = 60

    class2-TN: 标签不为class2, 预测也不是class2 = 30+10+20+80 = 140

    6. 其他指标

    F1 值是precision和recall调和平均值:

    [frac{2}{F_1} = frac{1}{P} + frac{1}{R} ]

    [F_1 = frac{2TP}{2TP+FP+FN} ]

  • 相关阅读:
    Android 原创新作 超级水平仪 发布
    幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
    Android中MediaPlayer播放音乐时自动中断的解决办法
    语音写字板 v1.01 我的第二个Android作品
    Eclipse导入Android项目的正确方法
    Silverlight中后台代码设置TreeView选定项的方法
    C#网络编程(基本概念和操作) Part.1
    C#网络编程(同步传输字符串) Part.2
    C#网络编程(接收文件) Part.5
    C#网络编程(异步传输字符串) Part.3
  • 原文地址:https://www.cnblogs.com/pprp/p/11241954.html
Copyright © 2011-2022 走看看