ROC 和 AUC 簡介

用於評估分類器輸出質量的接收器操作特性(ROC)度量的示例。

ROC 曲線通常在 Y 軸上具有真陽性率,在 X 軸上具有假陽性率。這意味著圖的左上角是理想點 - 誤報率為零,真正的正率為 1。這不太現實,但它確實意味著曲線下面積(AUC)通常更好。

ROC 曲線的陡峭度也很重要,因為它是最大化真實陽性率同時最小化誤報率的理想選擇。

一個簡單的例子:

import numpy as np
from sklearn import metrics
import matplotlib.pyplot as plt

任意 y 值 - 在實際情況下,這是預測目標值(model.predict(x_test)):

y = np.array([1,1,2,2,3,3,4,4,2,3])

分數是給定測試資料和標籤的平均準確度(model.score(X,Y)):

scores = np.array([0.3, 0.4, 0.95,0.78,0.8,0.64,0.86,0.81,0.9, 0.8])

計算 ROC 曲線和 AUC:

fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2)
roc_auc = metrics.auc(fpr, tpr)

繪圖:

plt.figure()
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.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic example')
plt.legend(loc="lower right")
plt.show()

輸出:

http://i.stack.imgur.com/CYShh.jpg

注意:源是從這些 link1link2 中獲取的