檢測識別問題中的metrics

以前一直記不熟各類指標的具體計算,本文準備完全搞定這個問題,涵蓋目前遇到過的全部評價指標。markdown

TP,TN,FP,FN

首先是true-false和positive-negative這兩對詞。以二分類爲例:函數

positive和negative指的是預測的分類是正樣本仍是負樣本,true和false指的是預測結果是對的仍是錯的。spa

所以:ci

實際類別\預測類別 正樣本 負樣本
正樣本 TP FN
負樣本 FP TN

基於這些數值能夠計算各項指標:it

Accuracy, precision, recall等

Accuracy

\[ A C C=\frac{T P+T N}{T P+T N+F P+F N} \]io

分子爲全部正確預測了的樣本數目(即正樣本被預測爲正,負樣本被預測爲負),分母爲全部樣本總數。table

Accuracy表明了全部樣本中,被正確預測的樣本所佔的比例class

其缺陷在於,當正負樣本嚴重不均衡的時候沒法反映出模型的真實水平。方法

Precision

\[ P=\frac{T P}{T P+F P} \]call

分子爲正樣本被預測爲正的個數,分母爲全部被預測爲正的個數。

Precision表明了被預測爲正的樣本中,真的是正樣本的比例。又叫查準率。

Recall

\[ \operatorname{Recall}=\frac{T P}{T P+F N} \]

分子爲正被預測爲正,分母爲正樣本的總數。

Recall表明了全部正樣本中,被正確預測爲正樣本的比例

Recall通常被稱爲召回率,,又叫Sensitivity,又叫查全率 ,它和一些傳統方法中所說的正檢率是一個概念。

Specificity

上述的Sensitivity對應的有Specificity:
\[ \operatorname{Specificity}=\frac{T N}{FP+TN} \]
表明實際負樣本中被預測爲負的比例。

f1-score

\[ \mathrm{F} 1=\frac{2 * P * R}{P+R} \]

f1-score是對precision和recall的調和平均值。

正檢率,虛警率,漏警率

正檢率(P_d):正樣本被正確檢測到的機率,即recall

漏警率(P_m):正樣本沒有被預測爲正的機率,即1-P_d,即1-recall。

虛警率(P_f):負樣本被預測爲正的機率,即1-Specificity。

指標間的關係

爲了更簡單清楚的說明,用P和N表示預測結果是正和負,用P^和N^表示正樣本和負樣本。不用*號的緣由是我不想在markdown裏打一堆轉義符。咱們有P+N=P^+N^。

對於一個正常的識別模型,P中大多數應當是P^,小部分是N^;一樣N中大多應當是N^,小部分是P^。

Precision和recall是互相矛盾的一對指標。直觀地理解,precision爲全部P中P^的比例,要想提升這個比例,須要更加嚴格的篩選,更嚴格的篩選意味着,模型只會將那些預測機率很是高的樣本預測爲P,顯然這會更多地篩選掉實際爲N^的P,剩下的P中P^。而對於recall,recall表明P^中P的比例,更加嚴格的篩選會致使,一些P^的樣本沒有被預測爲P,從而致使recall降低。

同理,正檢率與虛警率成正相關關係。

ROC曲線與PR曲線

ROC曲線

ROC曲線即縱軸爲正檢率,橫軸爲虛警率。

懶得放示意圖了,簡單描述一下,通常爲從左下到右上的凹函數(注意凹函數的定義),區間爲(0,0),(1,1)的正方形區域內。評估方法爲計算曲線下積分面積,即AUC。

對於瞎猜模型,ROC曲線應當是一條從(0,0)到(1,1)的對角直線,故AUC爲0.5。

對於一個正常的模型,AUC應當在0.5到1之間。越大越好。

PR曲線

相似地,PR曲線縱軸爲precision,橫軸爲recall。

PR曲線通常爲從左上到右下的凹函數,區間一樣在(0,0),(1,1)的正方形區域。評估方法一樣爲計算曲線下積分值,稱爲AP值,對於多個分類,取平均,稱爲mAP值。

相關文章
相關標籤/搜索