機器學習:分類算法性能指標之ROC曲線


      在介紹ROC曲線之前,先說說混淆矩陣及兩個公式,因為這是ROC曲線計算的基礎。

1.混淆矩陣的例子(是否點擊廣告):

     說明:

            TP:預測的結果跟實際結果一致,都點擊了廣告。

            FP:預測結果點擊了,但是真實情況是未點擊。

            FN:預測結果沒有點擊,但是真實情況是點擊了。

            TN:預測結果沒有點擊,真實情況也是沒有點擊。

2.兩個公式:

    1)真正率:

         TPR=TP/(TP+FN)

    2)假正率

         FPR=FP/(FP+TN)

3.ROC曲線就是真正率隨假正率的變化情況。下面用一段代碼展示一下(sklearn包中包含相關算法):

##導入相關包
import numpy as np
from sklearn import metrics
import matplotlib.pyplot as plt

##設置y值:表示實際值
y = np.array([1, 1, 2, 2])
##設置pred值:表示預測后的值
pred = np.array([0.1, 0.4, 0.35, 0.8])
##計算相關數據:注意返回的結果順序
fpr, tpr, thresholds = metrics.roc_curve(y, pred, pos_label=2)
##計算曲線下面積
roc_auc=metrics.auc(fpr, tpr)
##繪圖
plt.clf()
plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], 'k--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.0])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.legend(loc="lower right")
plt.show()

  結果如圖所示:

 

4.關於ROC曲線

  1)虛線所示直線隨機分類時的ROC曲線,一般畫到圖中作為參照點

  2)對於一個完美的分類器,ROC曲線應該是從(0,0)到(0,1),然后橫着連到(1,1)的折線

  3)ROC曲線越接近左上角,分類效果越好

5.關於AUC

  1)AUC表示曲線下面的面積

  2)對於一個完美的分類器,AUC的值應該為1

  3)對於一個隨機猜測分類器(即圖中虛直線),AUC的面積為0.5

  4)AUC面積越大,分類效果越好

 


免責聲明!

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



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