roc_auc_score


roc_auc_score(Receiver Operating Characteristics(受試者工作特性曲線,也就是說在不同的閾值下,True Positive Rate和False Positive Rate的變化情況))

我們只考慮判為正的情況時,分類器在正例和負例兩個集合中分別預測,如果模型很好,在正例中預測,百分百為正例,而在負例中預測,百分0為正例,說明模型分類能力很強,因為對於不同的例子進行了區別對待,正確識別了。

如果模型很差,在正負例兩個集合中,全都一般判為正,一半判為負,則說明這個分類器啥也沒干。

 

TPR(預測為正的在正例中的比例) = TP/P = TP/(TP+FN)

FPR(預測為正的在正例中的比例) = FP/N = FP/(FP+TN)

並且通過調整閾值,一定存在兩個點:

1、全部樣本都判正,則TPR=1, FPR=1

2、全部樣本都判負,則TPR=0, FPR=0

 

所以,如果分類器啥也沒干,則為中間虛線,AUC=AUCmin=0.5

如果分類器真正有識別能力,則TPR>FPR,也就是在正例中更傾向於判正,負例中傾向於判負,為圖中實線。

如果在某一閾值下,TPR為1,FPR=0,則這個分類器經過點(0,1),AUC=AUCmax=1

 

 

實際模型判定時,通常令thresh=0.5,即高於0.5判正,低於0.5判負。但考慮到樣本不均的問題,我們應該使用不同的thresh,然后去計算auc。這個過程可以讓sklearn幫我們完成。

import numpy as np

from sklearn.metrics import roc_auc_score

y_true = np.array([0, 0, 1, 1])

y_scores = np.array([0.1, 0.4, 0.35, 0.8])

roc_auc_score(y_true, y_scores)

0.75

auc就是曲線下面積,這個數值越高,則分類器越優秀

https://zhuanlan.zhihu.com/p/100059009

https://www.zhihu.com/question/39840928


免責聲明!

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



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