2016-01-06 45 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的答案,至少我知道我做得對,我被困在這裏兩個小時! –