2016-01-06 48 views
2

我试图计算F(0.5)和f(2),用于这组数据:如何计算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)度量并确认我错了吗?

任何帮助表示赞赏,将尽我所能使这个问题尽可能清晰。请发表评论,如果它不够清楚,我会尽量给它添加

感谢

+0

我没有得到相同的结果。对于F(2),“(b^2 + 1)×((P×R)/(b^2)+ R)= 5×(0.27/4 + R)= 5×(0.0675+ 0.45)= 5×(0.0675 + 0.45)= 5×0.5175 = 2.5875。 –

回答

2

幸运的是,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 

这看起来非常接近您所得到的值,并且与您所说的值“不正确”并不很相似。所以似乎值得一提的是:“所谓正确的价值从何而来?”

+0

感谢您的回答,这是我用过的公式,我只是不知道如何在PC上以相同的方式编写它。答案来自过去的考试试卷,其中也包括计算F2和F0.5的答案,至少我知道我做得对,我被困在这里两个小时! –