AUC計算 - 手把手步進操作


2017-07-10 14:38:24


理論參考: 

評估分類器性能的度量,像混淆矩陣、ROC、AUC等

http://www.cnblogs.com/suanec/p/5941630.html

 

ROC全稱:receiver operation characters,適用於二分類。

同理可得由ROC曲線計算的AUC,適用於二分類。

計算AUC需要知道這個表格:

  實際正樣本 實際負樣本
預測正樣本 正樣本正確數 正樣本錯誤數
預測負樣本 負樣本錯誤數 負樣本正確數

其中實際正樣本常被成為Positive,實際負樣本常被成為Negative。

對應的表格中數據分別為True Positive、False Positive、True Negative、False Negative。

對應的概率Rate,分別為TPR、FPR、TNR、FNR。

其中TPR=TP/P、FPR=FP/N,繪制ROC,主要使用TPR和FPR。

使用網上的例子:

模型預測情況與實際類標情況:

由以上繪制的ROC曲線及各點取值。

 

 

 

 當閾值自高向低取,分別為0.9、0.8、0.7、0.6、0.55。

0.9:TPR:0.1,FPR:0

0.8:TPR:0.2,FPR:0

0.7:TPR:0.2,FPR:0.1

0.6:TPR:0.3,FPR:0.1

0.55:TPR:0.4,FPR:0.1

按照取值繪制ROC圖線,計算圖線下面積即可得AUC。

其中:以0.7舉例TRP和FPR如何統計:

當閾值為0.7時,可得模型將1、2、3樣本分為了正樣本,其他為負樣本。

1、2、3中正樣本正確了兩個。

TPR:正樣本正確率為正樣本正確數目/所有正樣本數目:2/10=0.2。

FPR:正樣本錯誤率為正樣本錯誤數目/所有負樣本數目:1/10=0.1。

 

那么在0.7為閾值可以繪制ROC曲線點:(0.1,0.2)。

以此類推。繪制多個閾值下的ROC曲線點,可得ROC曲線的近似值。(因為閾值取值數量有限,故ROC為近似值)

計算AUC:

因為ROC曲線近似,可以利用矩陣面積加和得到面積和。(計算AUC面積和,就可以按個人喜好計算了,spark mllib中的AUC是按坐標取值計算連線形成梯形的面積加和。個人感覺按縱軸計算矩陣面積實現更容易一些,但精度有損失。)

當ROC為精確時,需要積分。僅存於理論層面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM