1. 程式人生 > >精確度,準確率,召回率,漏警概率,虛警概率

精確度,準確率,召回率,漏警概率,虛警概率

一組樣本,個數為M,正例有P個,負例有N個,

判斷為正例的正例有TP個,判斷為負例的正例有FN個(假的負例)P=TP+FN

判斷為負例的負例為TN個,判斷為正例的負例有FP個(假的正例)N=TN+FP

精確度(Precision)P=所有判斷為正例的例子中,真正為正例的所佔的比例=TP/(TP+FP)

準確率(Accuracy)A=判斷正確的例子的比例=(TP+TN)/(P+N)

召回率(Recall)R=所有正例中,被判斷為正例的比例=TP/P

漏警概率=1-R,正例判斷錯誤的概率,漏掉的正例所佔比率

虛警概率=1-P,錯誤判斷為正例的概率,虛假正例所佔的比率

假設原始樣本中有兩類,其中: 


1:總共有 P個類別為1的樣本,假設類別1為正例。 
2:總共有N個類別為0 的樣本,假設類別0為負例。 
經過分類後:

3:有 TP個類別為1 的樣本被系統正確判定為類別1,FN 個類別為1的樣本被系統誤判定為類別 0,顯然有P=TP+FN; 
4:有 FP 個類別為0 的樣本被系統誤判斷定為類別1,TN 個類別為0 的樣本被系統正確判為類別0,顯然有N=FP+TN; 
 
那麼:
精確度(Precision):
P = TP/(TP+FP) ; 反映了被分類器判定的正例中真正的正例樣本的比重( 
 
準確率(Accuracy)
A = (TP + TN)/(P+N) = (TP + TN)/(TP + FN + FP +TN);   反映了分類器統對整個樣本的判定能力——能將正的判定為正,負的判定為負 
 
召回率(Recall),也稱為 True Positive Rate:
R = TP/(TP+FN) = 1 - FN/T; 反映了被正確判定的正例佔總的正例的比重 
 
轉移性(Specificity,不知道這個翻譯對不對,這個指標用的也不多),也稱為 TrueNegativeRate 
S = TN/(TN + FP) = 1 – FP/N;  明顯的這個和召回率是對應的指標,只是用它在衡量類別0 的判定能力。 
 
F-measure or balanced F-score
F = 2 *  召回率 *  準確率/(召回率+準確率);這就是傳統上通常說的F1 measure,另外還有一些別的Fmeasure,可以參考下面的連結 
 
上面這些介紹可以參考: 
http://en.wikipedia.org/wiki/Precision_and_recall

同時,也可以看看:http://en.wikipedia.org/wiki/Accuracy_and_precision
 
為什麼會有這麼多指標呢?
       這是因為模式分類和機器學習的需要。判斷一個分類器對所用樣本的分類能力或者在不同的應用場合時,需要有不同的指標。 當總共有個100個樣本(P+N=100)時,假如只有一個正例(P=1),那麼只考慮精確度的話,不需要進行任何模型的訓練,直接將所有測試樣本判為正例,那麼A 能達到99%,非常高了,但這並沒有反映出模型真正的能力。另外在統計訊號分析中,對不同類的判斷結果的錯誤的懲罰是不一樣的。舉例而言,雷達收到100個來襲導彈的訊號,其中只有3個是真正的導彈訊號,其餘 97 個是敵方模擬的導彈訊號。假如系統判斷 98 個(97個模擬訊號加一個真正的導彈訊號)訊號都是模擬訊號,那麼Accuracy=98%,很高了,剩下兩個是導彈訊號,被截掉,這時Recall=2/3=66.67%,Precision=2/2=100%,Precision也很高。但剩下的那顆導彈就會造成災害。 
 
因此在統計訊號分析中,有另外兩個指標來衡量分類器錯誤判斷的後果:
漏警概率(MissingAlarm)
MA = FN/(TP + FN) = 1 – TP/T = 1 - R; 反映有多少個正例被漏判了(我們這裡就是真正的導彈訊號被判斷為模擬訊號,可見MA此時為33.33%,太高了) 

 
虛警概率(False Alarm) 
FA = FP / (TP + FP) = 1 –P;反映被判為正例樣本中,有多少個是負例。 


      統計訊號分析中,希望上述的兩個錯誤概率儘量小。而對分類器的總的懲罰舊是上面兩種錯誤分別加上懲罰因子的和:COST = Cma *MA+ Cfa * FA。不同的場合、需要下,對不同的錯誤的懲罰也不一樣的。像這裡,我們自然希望對漏警的懲罰大,因此它的懲罰因子 Cma要大些。