2

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

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

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

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

教程提供的示例中的 P@1 和 R@1 是什么,他们在那里计算了 P@5 和 R@5,对吗?

非常感谢提前,

4

2 回答 2

0

Yes, the different labels are assigned a probability. You can see the probability for each label by running the following command, where my_model.bin and data.test are replaced with the appropriate names and k is the number of labels in your data set: ./fasttext predict-prob my_model.bin data.test k

于 2018-07-13T13:35:37.140 回答
0

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

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

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

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

精度:3 / 4 = 0.75

召回率:3 / 5 = 0.6

于 2019-03-26T15:51:19.837 回答