AUC(Area Under roc Curve)學習筆記


        AUC是一種用來度量分類模型好壞的一個標准。

        ROC分析是從醫療分析領域引入了一種新的分類模型performance評判方法。

        ROC的全名叫做Receiver Operating Characteristic,其主要分析工具是一個畫在二維平面上的曲線——ROC curve。平面的橫坐標是false positive rate(FPR),縱坐標是true positive rate(TPR)。對某個分類器而言,我們可以根據其在測試樣本上的表現得到一個TPR和FPR點對。這樣,此分類器就可以映射成ROC平面上的一個點。調整這個分類器分類時候使用的閾值,我們就可以得到一個經過(0, 0),(1, 1)的曲線,這就是此分類器的ROC曲線。一般情況下,這個曲線都應該處於(0, 0)和(1, 1)連線的上方。因為(0, 0)和(1, 1)連線形成的ROC曲線實際上代表的是一個隨機分類器。雖然,用ROC curve來表示分類器的performance很直觀好用。可是,人們總是希望能有一個數值來標志分類器的好壞。於是Area Under roc Curve(AUC)就出現了。

        顧名思義,AUC的值就是處於ROC curve下方的那部分面積的大小。通常,AUC的值介於0.5到1.0之間,較大的AUC代表了較好的performance。

AUC的計算方法總結:

(AUC的值就是計算出ROC曲線下面的面積)

      直接計算AUC是很麻煩的,所以就使用了AUC的一個性質(它和Wilcoxon-Mann-Witney Test是等價的)來進行計算。Wilcoxon-Mann-Witney Test就是測試任意給一個正類樣本和一個負類樣本,正類樣本的score有多大的概率大於負類樣本的score。有了這個定義,我們就得到了另外一中計算AUC的辦法:得到這個概率。

 

      方法一:統計一下所有的 M×N(M為正類樣本的數目,N為負類樣本的數目)個正負樣本對中,有多少個組中的正樣本的score大於負樣本的score。當二元組中正負樣本的 score相等的時候,按照0.5計算。然后除以MN。實現這個方法的復雜度為O(n^2)。n為樣本數(即n=M+N)。

                              

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

                                    AUC=((所有的正例位置相加)-M*(M+1))/(M*N)

 

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


免責聲明!

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



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