【问题标题】:Calculate Precision and Recall计算精度和召回率
【发布时间】:2012-11-26 11:07:21
【问题描述】:

我真的很困惑如何在使用 NB 分类器的监督机器学习算法中计算精度和召回率

例如
1) 我有两个类 A,B
2) 我有 10000 个文档,其中 2000 个用于训练样本集(class A=1000,class B=1000)
3)现在在上面的训练样本集的基础上使用NB分类器对剩下的8000个文档进行分类
4)现在将 5000 个文档分类到 A 类,将 3000 个文档分类到 B 类
5) 现在如何计算 Precision 和 Recall?

请帮帮我..

谢谢

【问题讨论】:

    标签: machine-learning precision-recall


    【解决方案1】:

    您好,您必须将结果分为四组 -
    真正的 A 类(TA) - 正确分类为 A 类
    错误的 A 类 (FA) - 错误地归入 A 类
    真正的 B 类 (TB) - 正确分类为 B 类
    错误的 B 类 (FB) - 错误地分类为 B 类

    精度 = TA / (TA + FA)
    召回 = TA / (TA + FB)

    您可能还需要准确度和 F-measure:

    准确度 = (TA + TB) / (TA + TB + FA + FB)
    f-measure = 2 * ((精度 * 召回率)/(精度 + 召回率))

    更多:
    http://en.wikipedia.org/wiki/Precision_and_recall#Definition_.28classification_context.29

    【讨论】:

    • Tom 谢谢回复。现在如何识别TA、FA、TB、FB?是我必须手动检查所有机密文件还是有什么方法?
    • 您可以分别对每个类运行测试并计算正确分类和错误分类。例如,当您对标记为 A 的测试文档运行测试时,每个文档有两种可能的分类:如果分类为 A,则将 1 加到 TA,如果分类为 B,则将 1 加到 FB。对于 B 类似:如果分类为 A,则将 1 加到 FA,如果分类为 B,则将 1 加到 TB。我希望你明白。 :-) 当然,对于 A 类和 B 类,您不必将测试分为两次运行,您可以只运行一次,但我认为这更容易理解。
    • 谢谢汤姆,我明白你真的拯救了我的一天..这让我感到困惑..现在我明白了解决方案..再次感谢..
    • Tom 我再次需要你的帮助。我想知道如何计算两个以上班级的 f-measure
    • 您好,抱歉这么久才回复。您需要计算宏 F 度量。看看这篇文章:rushdishams.blogspot.cz/2011/08/…-Tom
    【解决方案2】:

    为了清楚起见,让我解释一下。

    假设视频中有 9 只狗和一些猫,图像处理算法告诉您场景中有 7 只狗,其中只有 4 只实际上是狗(真阳性),而 3 只是猫(假阳性)

    精确度告诉我们在分类为狗的项目中,有多少实际上是狗

    所以 精度 = 真阳性/(真阳性 + 假阳性) = 4/(4+3) = 4/7

    虽然回忆可以说明狗的总数,但实际找到了多少只狗。

    所以 召回 = 真阳性/总数 = 真阳性/(真阳性 + 假阴性) = 4/9


    在你的问题中

    您必须找到 A 类和 B 类的准确率和召回率

    A类

    True positive =(5000个分类A类文档中A类文档的数量)

    误报 =(5000 个分类的 A 类文档中 B 类文档的数量)

    从上面你可以找到Precision。

    Recall = True positive/(测试时使用的 A 类文档的总数)

    对 B 类重复上述操作以找到其精度和召回率。

    【讨论】:

      猜你喜欢
      • 2014-11-20
      • 1970-01-01
      • 2016-07-26
      • 2020-02-23
      • 2017-11-13
      • 2019-12-14
      • 2015-12-05
      • 2017-08-21
      • 2020-10-22
      相关资源
      最近更新 更多