如何计算f(2)度量?

时间:2016-01-06 19:53:41

标签: math statistics information-retrieval

我试图为这组数据计算f(0.5)和f(2):

Precision: 0.6
Recall: 0.45

我的结果:

f(1)  : 0.51
f(0.5): 0.56 (wrong)
f(2)  : 0.47 (wrong)

我使用这个公式计算了f(1)测量值

(2x(PxR))/(P+R)

但是当我尝试计算f(2)或f(0.5)时,我的结果略有偏差

f(0.5) should be 0.54
f(2)   should be 0.49

我使用了以下公式:

(b^2 + 1) x ((P x R)/(b^2)+R)

b =我使用的f度量,0.5或2

我做错了什么? 如果可能的话,有人可以为我计算f(0.5)和f(2)度量并确认我错了吗?

任何帮助表示赞赏,我会尽力使这个问题尽可能清楚。如果评论不够清楚,请发表评论,我会尝试添加评论

由于

1 个答案:

答案 0 :(得分:3)

幸运的是,Wikipedia is searchable

正确的等式(在维基百科页面上它有真正的数学格式,更容易阅读)是:

F(β)=(1+β2)⋅(PR/(β2P+R))

或者在Python中:

>>> def F(beta, precision, recall):
...   return (beta*beta + 1)*precision*recall / (beta*beta*precision + recall)
...
>>> F(1, .6, .45)
0.5142857142857143
>>> F(2, .6, .45)
0.4736842105263158
>>> F(0.5, .6, .45)
0.5625000000000001

这看起来非常接近您所获得的值,并且与您所说的“正确”的值非常相似。所以似乎值得问一下“所谓的正确值来自何处?”