【问题标题】:Precision and recall in FasttextFasttext 中的精度和召回率
【发布时间】:2018-08-16 00:36:05
【问题描述】:

我是 Fasttext 的新手。我已经有几个关于这个库的问题,它们对某些人来说似乎很明显,但我真的很想得到正确的直觉。非常感谢您的帮助。

首先,我说的是Fasttext的文本分类部分。根据here 提供的教程,我们正在预测给定文本的不同标签。我们是否真的为给定的测试文本分配了每个标签,并且该文本与该标签匹配的概率是多少?

第二个问题,在这种情况下,任何人都可以澄清/解释 P@1(精度为 1)和 R@1(召回率为 1)的含义,这是 Fasttext 中使用的指标吗? 我找到了一个答案 here 。但是这个答案给我带来了更多的问题:

  • 在链接提供的响应中 - 那么 P@1 和 R@1 是什么? 根据那里的逻辑和解释,P@1 是一个具有 一个结果(在我们的上下文中 - 标签),其中我们可能有 1 个正确 或 1 个不正确的标签,这意味着 P@1 只能取值 0 或 1, 正确的?我们如何在这里获得概率?我们应该只是 计算所有文本样本中所有 1 的份额?如果是,是什么 是 R@1 吗?在这种情况下如何计算?什么是 R@k 一般在这种情况下?

tutorial提供的例子中的P@1和R@1是什么,他们在那里计算了P@5和R@5,对吧?

非常感谢,

【问题讨论】:

    标签: precision text-classification precision-recall fasttext


    【解决方案1】:

    是的,不同的标签被分配了一个概率。您可以通过运行以下命令查看每个标签的概率,其中 my_model.bin 和 data.test 被替换为适当的名称,k 是数据集中的标签数量:./fasttext predict-prob my_model.bin data .test k

    【讨论】:

      【解决方案2】:

      首先,精度是正确预测的标签数量与模型预测的标签数量的比率,而@1 指的是纪元。默认情况下,fastText 运行 5 个 epoch。 其次,召回率是正确预测的标签数量与验证数据集中实际标签数量的比率。

      例如:数据集中输入的实际标签:A、B、C、D、E

      模型输入的预测标签:A、B、C、G

      正确预测的标签:A、B、C

      精度:3 / 4 = 0.75

      召回率:3 / 5 = 0.6

      【讨论】:

        猜你喜欢
        • 2018-02-18
        • 2018-05-11
        • 2023-04-07
        • 2011-08-18
        • 1970-01-01
        • 2020-08-30
        • 2012-11-26
        • 2014-02-20
        • 1970-01-01
        相关资源
        最近更新 更多