precision:查準率spa
recall:查全率,召回率ci
查準率,基於預測的結果,預測爲正的樣本中 由多少真正的正樣本。即,真正爲正的越多越好。it
查全率,針對原來的正樣本,有多少正樣本被預測正確了。io
\[ Precision = \frac{True \ positives}{predictied \ as \ positives} = \frac{TP}{TP+FP} \]class
\[ Recall = \frac{True \ positives}{actual \ positives} = \frac{TP}{TP+FN} \]call
舉個例子:dict
咱們用一個模型去判斷一段時間的做弊流量,假設該段時間的流量是100個,做弊的是25個,沒有做弊的是75個,假設這裏正樣本爲沒有做弊的流量。di
而後咱們用某種模型去預測,結果是70個沒有做弊的,可是經檢查,咱們把其中69個正樣本預測爲沒有做弊,把1個負樣本預測爲沒有做弊。時間
那麼,display
P = 69/70, 基於預測的結果,共有70個正樣本;這70個樣本中,真正的正樣本由69個。
R = 69/75, 已知正樣本有75個,有69個正樣本被正確的預測到了。
因此,
查準率,在於 "準",就是基於預測的結果中,真正的正樣本越多越好。
查全率,在於"全",就是把全部的真正的正樣本預測出來的越多越好,雖然有些負樣本也有可能被預測爲正樣本,那也無論,重點在於"全"。
咱們在預測的時候,老是但願檢索結果precision越高越好,同時recall也越高越好,但事實上這二者在某種狀況下是矛盾的。例如,我只取一個樣本,且是真正的正樣本,那麼P就是100%,可是R只有\(\frac{1}{70}\)就很低了;而若是取100個樣本,那麼R顯然是100%,可是P只有75%。
這樣就引出了 F(k),
\[ F(k) = \frac{(1+k)*P*R}{(k*k)*P+R} \]
k>0 度量了 查全率 對 查準率 的相對重要性。k>1查全率有更大影響;k<1查準率有更大影響。
一般咱們看到的F1就是F(1),在binary classification問題中,F1值是P和R的調和平均數,取值範圍爲[0,1],值爲1表示perfect precision and recall,worst at 0。
\[ F(1) = \frac{2*P*R}{P+R} \]