精確率 召回率 F1(詳細)

精確率召回率等相關知識點經常出現在筆試題中,如果僅考查精確率召回率並不難理解記憶。但是有時結合ROC等知識點時,TP,NP,TN,FN,4個不易區分的符號及各種比率會對初學者的理解產生干擾,本文將幾個知識點結合起來舉例解釋,希望能方便大家理解記憶。

背景

當我們那一個已知結果的數據對算法進行測試時,不難發現算法對數據判斷出現的錯誤。
當待處理數據簡單分爲正負兩類時,顯然
對於原數據來說,只有正負兩種可能。對於判斷結果來說,也是正負兩種可能。
但是當我們站在”上帝”的角度上來看,原數據的正負,和判斷結果的正負會把整個數據分成4份。
TP : True Positive (真正, TP)被模型預測爲正的正樣本;可以稱作判斷爲真的正確率
TN : True Negative(真負 , TN)被模型預測爲負的負樣本 ;可以稱作判斷爲假的正確率
FP : False Positive (假正, FP)被模型預測爲正的負樣本;可以稱作誤報率
FN : False Negative(假負 , FN)被模型預測爲負的正樣本;可以稱作漏報率

總結:兩個詞中,第二個詞是預測結果(算法判斷的)。2個詞合在一起的是原數據事實

例如:10個樣本里,有6個正,4個負。(事實
經過一個機器學習算法判斷後,認爲有7個正,3個負。(判斷的

假設:
TP:被預測爲正的7名樣本里,本來就是正,又被預測爲正的有5人。
TN:被預測爲負的3名樣本里,本來就是負,又被預測爲負的有2人。
FP:被預測爲正的7名樣本里,本來就是負,又被預測爲正的有2人。
FN:被預測爲負的3名樣本里,本來就是正,又被預測爲負的有1人。

公式

精確率Precision Rate:P=TP/(TP+FP)
召回率Recall Rate:R=TP/(TP+FN)

精確率體現的是算法查詢的正確率,在被判斷爲正的所有樣本中,判斷正確(事實)的比率。R=5/(5+2),是結合了事實與判斷的量。
召回率體現的是算法的“清剿”能力。分母中的TP和FN都是事實上爲正的樣本,而分子與精確率相同爲TP。含義是在一羣樣本中,把所有該找出來的量悉數找到的能力。是隻有事實的量。
舉個直觀的例子,當查到1000個地區可能有地震災害,此時預測要重視精確率,還是召回率?這種情況是寧可多準備,也不能不準備等地震來了無所適從。也就是說,要把樣本中所有的“階級敵人”全部查出來,肯定是要保證召回率。
那麼什麼時候召回率最高(爲1),就是把1000個地區全預測爲地震,反正1000個樣本里肯定把地震的地方包括全了。此時精確率的作用就看出來了。預測數爲1000,其中TP爲10,1%的精確率,也就是說沒什麼可參考性。

有些同學就問了,那我怎麼衡量精確率和召回率相互之間的重要性呢?下面引入F1-score。

F1-score:

* 2PR/P+R=2/(1/P+1/R) *
F1-score是P和R的調和平均數,那麼也就容易理解,F1-score就是一個認爲精確率和召回率同樣重要的量。

那麼,如果我要把召回率的重要性提高爲原來的一倍該如何處理呢?此時引入

Fβ-score

Fβ-score:1+β2(PR)/(β2P+R)=(1+β2)/(β2/R+1/P)
形式上看是一種加權的調和平均。因此,
當β等於2時,R的重要性比P大一倍。
當β等於0.5時,P的重要性比R大一倍。

如果只有這麼幾個公式記憶起來自然不難,可惜,接下來的ROC,PRC,AUC。又會引入一些其他的統計量。見下文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章