原文連接:http://blog.csdn.net/Lu597203933/article/details/41802155
html
以前寫過一篇blog叫作機器學習實戰筆記之非均衡分類問題:http://blog.csdn.net/lu597203933/article/details/38666699 其中對Precision和Recall及ROC都有所講解,其中區別在於Precision,Recall, F-score, MAP主要用於信息檢索,而ROC曲線及其度量指標AUC主要用於分類和識別,ROC的詳細介紹見上面的blog,這裏的Precision、Recall和上篇blog的計算結果實際上是同樣的,只是這裏從檢索的角度進行理解。算法
一:Precision, Recall, F-score
信息檢索、分類、識別、翻譯等領域兩個最基本指標是召回率(Recall Rate)和準確率(Precision Rate------注意統計學習方法中precesion稱爲精確率,而準確率爲accuracy 是分類正確的樣本除以總樣本的個數。),召回率也叫查全率,準確率也叫查準率,概念公式:
召回率(Recall)= 系統檢索到的相關文件 / 系統全部相關的文件總數;;;亦即預測爲真實正例除以全部真實正例樣本的個數
準確率(Precision)= 系統檢索到的相關文件 / 系統全部檢索到的文件總數;;;亦即等於預測爲真實正例除以全部被預測爲正例樣本的個數
圖示表示以下:
注意:機器學習
( 1 ) 準確率和召回率是互相影響的,理想狀況下確定是作到二者都高,可是通常狀況下準確率高、召回率就低,召回率低、準確率高,固然若是二者都低,那是什麼地方出問題了。學習
(2)若是是作搜索,那就是保證召回的狀況下提高準確率;若是作疾病監測、反垃圾,則是保準確率的條件下,提高召回。
因此,在二者都要求高的狀況下,能夠用F1(或者稱爲F-score)來衡量。計算公式以下:
F1= 2 * P * R / (P + R)
(1) 公式基本上就是這樣,可是如何算圖1中的A、B、C、D呢?這須要人工標註,人工標註數據須要較多時間且枯燥,若是僅僅是作實驗能夠用用現成的語料。固然,還有一個辦法,找個一個比較成熟的算法做爲基準,用該算法的結果做爲樣原本進行比照,這個方法也有點問題,若是有現成的很好的算法,就不用再研究了。
(2) 形象直觀的理解就是Recall要求的是全,寧肯錯殺一千,不能放過一人,這樣Recall就會很高,可是precision就會最低。好比將全部的樣本都判爲正例,這是Recall就會等於1,可是不少負樣本都被當作了正例,在某些狀況就不適用,好比郵件過濾,此時要求的是準確率,不能是召回率,將全部的郵件都當作垃圾郵件確定是最壞的結果(此時Recall=1)。
若是沒有證據證實你有罪,那麼你就有罪,召回率會很高;若是沒有證據證實你有罪,那麼你就無罪,召回率會很低,不全,不少人逍遙法外;
二:MAP
MAP:全稱
mean average precision(平均準確率)。mAP是爲解決P,R,F-measure的單點值侷限性的,同時考慮了檢索效果的排名狀況。 計算以下: 假設有兩個主題,主題1有4個相關網頁,主題2有5個相關網頁。某系統對於主題1檢索出4個相關網頁,其rank分別爲1, 2, 4, 7;對於主題2檢索出3個相關網頁,其rank分別爲1,3,5。對於主題1,平均準確率爲(1/1+2/2+3/4+4/7)/4=0.83。對於主題 2,平均準確率爲(1/1+2/3+3/5+0+0)/5=0.45。則MAP=(0.83+0.45)/2=0.64。」 參考文獻: 1:http://blog.csdn.net/marising/article/details/6543943信息檢索(IR)的評價指標介紹 - 準確率、召回率、F一、mAP、ROC、AUC 2:http://blog.sina.com.cn/s/blog_662234020100pozd.htmlMAP(Mean Average Precision) 3:http://wenku.baidu.com/view/ef91f011cc7931b765ce15ec.html