準確率、精確率、召回率和F-score

一、TP、FP、FN和TN

舉例來說,用血壓值來檢測一個人是否有高血壓,測出的血壓值是連續的實數(從0~200都有可能),以收縮壓140/舒張壓90爲閾值,閾值以上便診斷爲有高血壓,閾值未滿者診斷爲無高血壓。二元分類模型的個案預測有四種結局:

  1. 真陽性(true positive, TP):診斷爲有, 實際上也有高血壓;
  2. 僞陽性(false positive,FP):診斷爲有,實際卻沒有高血壓;
  3. 真陰性(true negative,TN):診斷爲沒有,實際上也沒有高血壓;
  4. 僞陰性(false negative,FN):診斷爲沒有,實際上卻有高血壓。

這四種結局可以畫成2 × 2的混淆矩陣:

二、 準確率(accuracy)、精確率(precision)、召回率(Recall)、F-score

補充: 陽性(正例):Positive(用P表示)
陰性(反例):Negative(用N表示)
樣本的數量N = 正例 + 反例 = P + N = TP + FP + FN + TN

  1. 準確率(accuracy), 所有的預測正確(正類負類)的佔總的比重。

Accuracy=TP+TNTP+FP+FNAccuracy=\frac{TP+TN}{TP+FP+FN}

  1. 精確率(也叫查準率,precision), 即正確預測爲正的佔全部預測爲正的比例,(真正正確的佔所有預測爲正的比例)

Precision=TPTP+FPPrecision=\frac{TP}{TP+FP}

  1. 召回率(recall), 即正確預測爲正的佔全部實際爲正的比例(真正正確的佔所有實際爲正的比例)

Recall=TPTP+FNRecall=\frac{TP}{TP+FN}

  1. F-score值,F1值爲算數平均數除以幾何平均數,且越大越好,將Precision和Recall的上述公式帶入會發現,當F1值小時,True Positive相對增加,而false相對減少,即Precision和Recall都相對增加,即F1對Precision和Recall都進行了加權。

2F=1P+1R\frac{2}{F}=\frac{1}{P} + \frac{1}{R}
公式轉化之後:
F=2PRP+R=2TP2TP+FP+FNF=\frac{2PR}{P+R}=\frac{2TP}{2TP+FP+FN}

三、各個指標意義和優缺點

  1. 準確率
    雖然準確率能夠判斷總的正確率,但是在樣本不均衡的情況下,並不能作爲很好的指標來衡量結果。
    比如在樣本集中,正樣本有90個,負樣本有10個,樣本是嚴重的不均衡。對於這種情況,我們只需要將全部樣本預測爲正樣本,就能得到90%的準確率,但是完全沒有意義。對於新數據,完全體現不出準確率。因此,在樣本不平衡的情況下,得到的高準確率沒有任何意義,此時準確率就會失效。所以,我們需要尋找新的指標來評價模型的優劣。

  2. 精確率
    精確率(Precision) 是針對預測結果而言的,其含義是在被所有預測爲正的樣本中實際爲正樣本的概率,精確率和準確率看上去有些類似,但是是兩個完全不同的概念。精確率代表對正樣本結果中的預測準確程度,準確率則代表整體的預測準確程度,包括正樣本和負樣本。

  3. 召回率
    召回率(Recall) 是針對原樣本而言的,其含義是在實際爲正的樣本中被預測爲正樣本的概率。
    準確率和召回率互相影響,理想狀態下肯定追求兩個都高,但是實際情況是兩者相互“制約”:追求準確率高,則召回率就低;追求召回率高,則通常會影響準確率。我們當然希望預測的結果precision越高越好, recall越高越好, 但事實上這兩者在某些情況下是矛盾的。這樣就需要綜合考慮它們,最常見的方法就是F-score。 也可以繪製出P-R曲線圖,觀察它們的分佈情況。

  4. F-score
    一般來說準確率和召回率呈負相關,一個高,一個就低,如果兩個都低,一定是有問題的。 一般來說,精確度和召回率之間是矛盾的,這裏引入F1-Score作爲綜合指標,就是爲了平衡準確率和召回率的影響,較爲全面地評價一個分類器。F1是精確率和召回率的調和平均。

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