如何计算 f(2) 度量?

How to calculate f(2) measure?

我正在尝试为这组数据计算 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) Measure

(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) 测量值并确认我错了吗?

感谢任何帮助,我会尽力使这个问题尽可能清楚。不够清楚的请留言,我会尽量补充

谢谢

幸运的是,Wikipedia is searchable

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

F(<em>β</em>)=(1+<em>β</em><sup>2</sup> )⋅(PR/(<em>β</em><sup>2</sup>P+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

这看起来与您得到的值非常接近,但与您所说的值不太相似 "correct"。所以似乎值得一问 "Where do the supposedly correct values come from?"