ROC 曲線,以及AUC計算方式

2022-07-05 09:54:11 字數 1652 閱讀 9165

roc曲線:

roc曲線:接收者操作特徵(receiveroperating characteristic),roc曲線上每個點反映著對同一訊號刺激的感受性。

roc曲線的橫軸:

負正類率(false postive rate fpr)特異度,劃分例項中所有負例佔所有負例的比例;(1-specificity)

**為正樣本但是實際為負樣本的數目佔所有負樣本的數目的比例

roc 縱軸

真正類率(true postive rate tpr)靈敏度,sensitivity(正類覆蓋率)

**為正樣本實際也為正樣本的數目 佔 所有正樣本數目的比例

auc計算方式:

乙個關於auc的很有趣的性質是,它和wilcoxon-mann-witney test是等價的。這個等價關係的證明留在下篇帖子中給出。而wilcoxon-mann-witney test就是測試任意給乙個正類樣本和乙個負類樣本,正類樣本的score有多大的概率大於負類樣本的score。有了這個定義,我們就得到了另外一中計 算auc的辦法:得到這個概率。我們知道,在有限樣本中我們常用的得到概率的辦法就是通過頻率來估計之。這種估計隨著樣本規模的擴大而逐漸逼近真實值。這 和上面的方法中,樣本數越多,計算的auc越準確類似,也和計算積分的時候,小區間劃分的越細,計算的越準確是同樣的道理。具體來說就是統計一下所有的 m×n(m為正類樣本的數目,n為負類樣本的數目)個正負樣本對中,有多少個組中的正樣本的score大於負樣本的score。當二元組中正負樣本的 score相等的時候,按照0.5計算。然後除以mn。實現這個方法的複雜度為o(n^2)。n為樣本數(即n=m+n) 

3.  第三種方法實際上和上述第二種方法是一樣的,但是複雜度減小了。它也是首先對score從大到小排序,然後令最大score對應的sample 的rank為n,第二大score對應sample的rank為n-1,以此類推。然後把所有的正類樣本的rank相加,再減去m-1種兩個正樣本組合的情況。得到的就是所有的樣本中有多少對正類樣本的score大於負類樣本的score。然後再除以m×n。即 

公式解釋:

1、為了求的組合中正樣本的score值大於負樣本,如果所有的正樣本score值都是大於負樣本的,那麼第一位與任意的進行組合score值都要大,我們取它的rank值為n,但是n-1中有m-1是正樣例和正樣例的組合這種是不在統計範圍內的(為計算方便我們取n組,相應的不符合的有m個),所以要減掉,那麼同理排在第二位的n-1,會有m-1個是不滿足的,依次類推,故得到後面的公式m*(m+1)/2,我們可以驗證在正樣本score都大於負樣本的假設下,auc的值為1

2、根據上面的解釋,不難得出,rank的值代表的是能夠產生score前大後小的這樣的組合數,但是這裡包含了(正,正)的情況,所以要減去這樣的組(即排在它後面正例的個數),即可得到上面的公式

另外,特別需要注意的是,再存在score相等的情況時,對相等score的樣本,需要 賦予相同的rank(無論這個相等的score是出現在同類樣本還是不同類的樣本之間,都需要這樣處理)。具體操作就是再把所有這些score相等的樣本 的rank取平均。然後再使用上述公式。 

ROC曲線與AUC計算總結

橫軸 負正類率 false postive rate,fpr 特異度,劃分例項中所有負例佔所有負例的比例 1 specificity 縱軸 真正類率 true postive rate,tpr 靈敏度,sensitivity 正類覆蓋率 1 若乙個例項是正類並且被 為正類,即為真正類 true po...

python計算ROC曲線和面積AUC

roc曲線是根據一系列不同的二分類方式 分界值或決定閾 以真正率 也就是靈敏度 true positive rate,tpr 為縱座標,假正率 1 特效性 false positive rate,fpr 為橫座標繪製的曲線。通過將連續變數設定出多個不同的臨界值,從而計算出一系列敏感性和特異性,從而可...

ROC曲線和AUC面積

本博文所有理論都是基於二分類,多分類問題其實與二分類問題相通。考慮乙個二分問題,如果一類定為正類 positive 那麼另一類就是負類 negative 注意和正樣本和負樣本概念不同,參考博文 真正類 true positive 例項是正類並且也被 成正類 假正類 false positive 例項...