Fasttext中的精确度和召回率

时间:2018-03-07 19:33:13

标签: precision text-classification precision-recall fasttext

我是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,对吗?

提前多多感谢,

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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

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

精度:3/4 = 0.75

回想一下:3/5 = 0.6