跳至內容

F-score

維基百科,自由的百科全書

F值,亦被稱做F-measure,是一種量測算法的精確度常用的指標,經常用來判斷演算法的精確度。目前在辨識、偵測相關的演算法中經常會分別提到精確率(precision)和召回率(recall),F-score能同時考慮這兩個數值,平衡地反映這個演算法的精確度

定義

一般式

是使用者自行定義的參數,由一般式可見F-score能同時考慮precision和recall這兩種數值。分子為precision和recall相乘,根據這個式子,只要precision或recall趨近於0,F-score就會趨近於0,代表着這個演算法的精確度非常低。一個好的演算法,最好能夠平衡recall和precision,且儘量讓兩種指標都很高。所以有一套判斷方式可以同時考慮recall和precision。當時,F-score退化為precision;當時,F-score退化為recall。

Precision和Recall權重一樣時

一般上來說,提到F-score且沒有特別的定義時,是指時的F-score,亦有寫作F1-score。代表使用者同樣的注重precision和recall的這兩個指標。其分數可以說是precision和recall的調和平均,式子如下:

F-score最理想的數值是趨近於1,做法是讓precision和recall都有很高的值。若兩者皆為1,使得,則F-score = 1 (100%),代表該算法有着最佳的精確度

F-score的組成元素

TP, FN, FP, TN

量測常見的4種情況

前面的true/false修飾後面的positive/negative,後面的positive/negative是我們的方法的判斷。

  • TP(true positive,真陽性):我們的方法判斷為真,這個判斷是對的。即事實上為真,而且被我們的方法判斷為真的情形。
  • FN(false negative,假陰性):我們的方法判斷為不真,這個判斷是錯的。即事實上為真,卻被我們的方法判斷為不真的情形。
  • FP(false positive,假陽性):我們的方法判斷為真,這個判斷是錯的。即事實上不為真,卻被我們的方法誤判為真的情形。
  • TN(true negative,真陰性):我們的方法判斷為不真,這個判斷是對的。即事實上不為真,而且被我們的方法判斷成不為真的情形。

以抓犯人為例,TP是有罪而且被抓到的情形,FN是有罪但沒被抓到的情形,FP是無罪但被誤抓的情形,TN是無罪且未被誤逮的情形

混淆矩陣
  判斷為真 判斷不為真
事實上為真 TP FN
事實上不為真 FP TN

Precision和Recall

(positive prediction rate)

Precision的分母為兩種判斷為真的情形的總和(范恩圖中完整綠色的部份)

解釋:當辨識結果為FP的代價很高時,F-score應該着重此指標,亦即precision要很高。
例子:辨識電郵信箱里的垃圾郵件時,如果某封被誤判成垃圾郵件(即FP)時,使用者可能就此錯過重要的通知。


Recall的分母事實上為真的情形的總和(范恩圖中完整紫色的部份)

解釋:當辨識結果為FN的代價很高時,F-score應該着重此指標,亦即recall要很高。
舉例:一個傳染病診斷辨識系統中,如果某個傳染病患者被誤判成陰性(即FN),當地的社區的居民就落入被傳染的高風險之中。
舉例:真正犯罪的人當中,有多少比例的罪犯被抓到。或,一張照片當中,有多少人臉被偵測到。


Precision和Recall的異同

  • 它們的分子皆為TP。
  • F-score的recall和precision之間存在着權衡的關係,可通過 β 調整更重視的部份。


以警察抓犯人的故事為例:

一位警察很厲害,抓了很多犯人,但是這些犯人當中,只有少部分真正有罪,其他都是被冤枉的。

  • recall 高,因為該抓與不該抓的犯人都被抓到了。
  • precision 低,因為很多都是沒犯罪的人。
「寧可錯抓一百,也不可放過一個」
recall 高,但 precision 低。


一個警察非常嚴謹,只逮捕真正有犯罪的人,不抓實在是沒辦法肯定的犯人。

  • precision 高,因為通常被抓到人的都是有罪的。
  • recall 低,因為不小心放掉一大群犯人。
「寧可錯放一百,也不可冤枉一個」
precision 高,但 recall 低。

應用

F-score經常用於評估資訊檢索的結果,如:

性質

F-score 是等於取回物品集和相關物品集的Dice係數

參考