天天看點

準确率 召回率_機器學習—準确率(Precision)、召回率(Recall)、F值(F-Measure)

摘要:

  資料挖掘、機器學習和推薦系統中的評測名額—準确率(Precision)、召回率(Recall)、F值(F-Measure)簡介。

在機器學習、資料挖掘、推薦系統完成模組化之後,需要對模型的效果做評價。

業内目前常常采用的評價名額有準确率(Precision)、召回率(Recall)、F值(F-Measure)等,下圖是不同機器學習算法的評價名額。下文講對其中某些名額做簡要介紹。

準确率 召回率_機器學習—準确率(Precision)、召回率(Recall)、F值(F-Measure)
本文針對二進制分類器! 本文針對二進制分類器!! 本文針對二進制分類器!!! 對分類的分類器的評價名額将在以後文章中介紹。 在介紹名額前必須先了解“混淆矩陣”: 混淆矩陣

True Positive(真正,TP):将正類預測為正類數

True Negative(真負,TN):将負類預測為負類數

False Positive(假正,FP):将負類預測為正類數誤報 (Type I error)

False Negative(假負,FN):将正類預測為負類數→漏報 (Type II error)

準确率 召回率_機器學習—準确率(Precision)、召回率(Recall)、F值(F-Measure)
準确率 召回率_機器學習—準确率(Precision)、召回率(Recall)、F值(F-Measure)
1、準确率(Accuracy)

準确率(accuracy)計算公式為:

準确率 召回率_機器學習—準确率(Precision)、召回率(Recall)、F值(F-Measure)

注:準确率是我們最常見的評價名額,而且很容易了解,就是被分對的樣本數除以所有的樣本數,通常來說,正确率越高,分類器越好。

準确率确實是一個很好很直覺的評價名額,但是有時候準确率高并不能代表一個算法就好。比如某個地區某天地震的預測,假設我們有一堆的特征作為地震分類的屬性,類别隻有兩個:0:不發生地震、1:發生地震。一個不加思考的分類器,對每一個測試用例都将類别劃分為0,那那麼它就可能達到99%的準确率,但真的地震來臨時,這個分類器毫無察覺,這個分類帶來的損失是巨大的。為什麼99%的準确率的分類器卻不是我們想要的,因為這裡資料分布不均衡,類别1的資料太少,完全錯分類别1依然可以達到很高的準确率卻忽視了我們關注的東西。再舉個例子說明下。在正負樣本不平衡的情況下,準确率這個評價名額有很大的缺陷。比如在網際網路廣告裡面,點選的數量是很少的,一般隻有千分之幾,如果用acc,即使全部預測成負類(不點選)acc也有 99% 以上,沒有意義。是以,單純靠準确率來評價一個算法模型是遠遠不夠科學全面的。

2、錯誤率(Error rate)

錯誤率則與準确率相反,描述被分類器錯分的比例,error rate = (FP+FN)/(TP+TN+FP+FN),對某一個執行個體來說,分對與分錯是互斥事件,是以accuracy =1 - error rate。

3、靈敏度(sensitive)

sensitive = TP/P,表示的是所有正例中被分對的比例,衡量了分類器對正例的識别能力。

4、特效度(sensitive)

specificity = TN/N,表示的是所有負例中被分對的比例,衡量了分類器對負例的識别能力。

5、精确率、精度(Precision)

精确率(precision)定義為:

準确率 召回率_機器學習—準确率(Precision)、召回率(Recall)、F值(F-Measure)

表示被分為正例的示例中實際為正例的比例。

6、召回率(recall)

召回率是覆寫面的度量,度量有多個正例被分為正例,recall=TP/(TP+FN)=TP/P=sensitive,可以看到召回率與靈敏度是一樣的。

7、綜合評價名額(F-Measure)

P和R名額有時候會出現的沖突的情況,這樣就需要綜合考慮他們,最常見的方法就是F-Measure(又稱為F-Score)。

F-Measure是Precision和Recall權重調和平均:

準确率 召回率_機器學習—準确率(Precision)、召回率(Recall)、F值(F-Measure)

當參數α=1時,就是最常見的F1,也即

準确率 召回率_機器學習—準确率(Precision)、召回率(Recall)、F值(F-Measure)

可知F1綜合了P和R的結果,當F1較高時則能說明試驗方法比較有效。

8、其他評價名額

計算速度:分類器訓練和預測需要的時間;

魯棒性:處理缺失值和異常值的能力;

可擴充性:處理大資料集的能力;

可解釋性:分類器的預測标準的可了解性,像決策樹産生的規則就是很容易了解的,而神經網絡的一堆參數就不好了解,我們隻好把它看成一個黑盒子。

下面來看一下ROC和PR曲線(以下内容為自己總結):

1、ROC曲線:

ROC(Receiver Operating Characteristic)曲線是以假正率(FP_rate)和假負率(TP_rate)為軸的曲線,ROC曲線下面的面積我們叫做AUC,如下圖所示:

準确率 召回率_機器學習—準确率(Precision)、召回率(Recall)、F值(F-Measure)

圖檔根據Paper:Learning from eImbalanced Data畫出

其中:

準确率 召回率_機器學習—準确率(Precision)、召回率(Recall)、F值(F-Measure)

(1)曲線與FP_rate軸圍成的面積(記作AUC)越大,說明性能越好,即圖上L2曲線對應的性能優于曲線L1對應的性能。即:曲線越靠近A點(左上方)性能越好,曲線越靠近B點(右下方)曲線性能越差。

(2)A點是最完美的performance點,B處是性能最差點。

(3)位于C-D線上的點說明算法性能和random猜測是一樣的–如C、D、E點。位于C-D之上(即曲線位于白色的三角形内)說明算法性能優于随機猜測–如G點,位于C-D之下(即曲線位于灰色的三角形内)說明算法性能差于随機猜測–如F點。

(4)雖然ROC曲線相比較于Precision和Recall等衡量名額更加合理,但是其在高不平衡資料條件下的的表現仍然過于理想,不能夠很好的展示實際情況。

2、PR曲線:

即,PR(Precision-Recall)曲線。

舉個例子(例子來自Paper:Learning from eImbalanced Data):

假設N_c>>P_c(即Negative的數量遠遠大于Positive的數量),若FP很大,即有很多N的sample被預測為P,因為

準确率 召回率_機器學習—準确率(Precision)、召回率(Recall)、F值(F-Measure)

,是以FP_rate的值仍然很小(如果利用ROC曲線則會判斷其性能很好,但是實際上其性能并不好),但是如果利用PR,因為Precision綜合考慮了TP和FP的值,是以在極度不平衡的資料下(Positive的樣本較少),PR曲線可能比ROC曲線更實用。