roc曲線可以認為越靠上代表分類效果越好,網上的介紹是非常的多,在這裡重點是在說明其中的乙個應用,下面還會有部分介紹,但是具體沒有提及的部分可以網上另外查,不是本文重點。
常用的二分類演算法如邏輯回歸,往往需要根據業務需求設定乙個臨界值(用以分開0和1,預設是0.5)。
我們舉乙個列子來說明這個
臨界值(threshold)
的作用,假設真實中有250個人信用卡會違約(negative),250個人信用卡不會違約(positive)。如下圖所示,藍色代表違約的人群分布,紅色代表不違約的人群分布,這個例子中分類的效果還是挺好的,基本把兩個人群分布分開了,roc曲線也在左上角一小部分。圖形的x軸代表**的概率值,我們可以選擇乙個臨界值作為0和1分類的分界點,y軸代表觀察的數量。
假如把臨界值設為0.3,則左邊星星面積部分可以認為被判斷成違約(negative)的人數是175個(也就是說有75個人錯誤地分類到不違約中),真實不違約的人100%都**正確了,在這個例子中x值是0.3,y值代表有大概50個人的**概率等於0.3(根據高度瞎猜的)。
假如把臨界值設為0.5,則左邊劃線部分面積代表的違約人數是250個,與真實值一樣,但是因為有重疊的部分,250人被分類到違約的人中有大概20個人(根據圖形比例瞎猜的)真實是不違約的(positive)而錯誤地分類到了違約(negative),也有大概20個人真實是違約的,但被分類到了不違約中。
上述的例子當然是乙個比較理想的分類器,如果我們遇到的分類結果沒那麼好的時候,roc曲線包括其臨界值該怎麼設定呢?
同樣還是上面的例子,這時候可以看到整個違約的人群分布右移了(可以理解為壞人聰明了,懂得了偽裝自己更接近好人,不會再有那種**概率只有0.1那麼明顯的違約人士了,當然也有可能這個第二間銀行,用的分類演算法較上面的銀行弱多了)。這時候兩個人群的分布重疊的部分大多了,我們無論把臨界值設在**都會較上乙個產生更多的錯誤分類。
假如我們秉著「寧可殺錯一萬,不可放過一人」(有殺錯冇放過)的信念把臨界值設到0.8,則右邊劃線面積代表只有50個人(根據圖形比例瞎猜的)會被分類到不違約(positive)中,其餘450人都會被歸為違約(negative),真實是不違約而錯判的人有200個。
說了這麼多我們回到roc曲線上面去,roc曲線的y軸是tpr(true positive rate/sensitivity),tpr=tp/(all positive),x軸是fpr(false positive/1-specificity),fpr=fp/(all negative)。因此拿第二個例子計算一下,tpr=50/250=0.2,fpr=0/250=0,因此我們取點(0,0.2)如下圖roc曲線所示,代表臨界值的點。
aucauc則是另外乙個用於評估分類好壞的方法,其與roc是相關聯的(就是代表roc曲線下面的面積,如下圖所示的陰影部分)。分類的效果越好,roc曲線越靠上,auc的值越大。auc值一般是在0.5到1之間浮動,如果auc小於0.5,代表模型的精準度甚至不如瞎猜(瞎猜是0.5),同理,如果auc等於1,則表明分類精度達到100%。
假設auc的值是0.8,我們可以解讀為:隨機選擇乙個資料,有80%的機會它的true positive(真實是正的樣本被**為正)得分會高於false positive(真實為負的樣本被**為正)。
幾點關於roc和auc的補充說明:
1. roc是最常用的用於評估二分類器好壞的方法,它著重於圖形化得出直觀結論,而auc則是通過single number總結模型好壞。
2. auc用在unbalanced data也完全沒有問題
3. roc在**概率不是「精確校準」(比如概率不是正常的0~1)的情況下也有用
4. roc也可以擴充套件用在多分類器的評估上:假設有3個類別(畫三個roc圖)
class 1 vs class 2 & 3
class 2 vs class 1 & 3
class 3 vs class 1 & 2
5. roc曲線的臨界值並沒有說那個值是好是壞,更多是根據業務需求定的乙個值(瞎舉個例子,信用卡部門可能更多關心不違約的使用者,盡可能地最大化利潤,因此可以接受乙個更低的臨界值)
6. 上面的例子不代表現實世界案例,現實中更多的是不平衡的分類
7. 上面例子中兩個類別的人群都是服從正態分佈的,而現實中的分布各種各樣
二、高階理解
roc和auc是評價分類器的指標,上面第乙個圖的abcd仍然使用,只是需要稍微變換。
回到roc上來,roc的全名叫做receiver operating characteristic。
roc關注兩個指標
true positive rate ( tpr ) = tp / [ tp + fn] ,tpr代表能將正例分對的概率
false positive rate( fpr ) = fp / [ fp + tn] ,fpr代表將負例錯分為正例的概率
在roc 空間中,每個點的橫座標是fpr,縱座標是tpr,這也就描繪了分類器在tp(真正的正例)和fp(錯誤的正例)間的trade-off。roc的主要分析工具是乙個畫在roc空間的曲線——roc curve。我們知道,對於二值分類問題,例項的值往往是連續值,我們通過設定乙個閾值,將例項分類到正類或者負類(比如大於閾值劃分為正類)。因此我們可以變化閾值,根據不同的閾值進行分類,根據分類結果計算得到roc空間中相應的點,連線這些點就形成roc curve。roc curve經過(0,0)(1,1),實際上(0, 0)和(1, 1)連線形成的roc curve實際上代表的是乙個隨機分類器。一般情況下,這個曲線都應該處於(0, 0)和(1, 1)連線的上方。如圖所示。
用roc curve來表示分類器的performance很直觀好用。可是,人們總是希望能有乙個數值來標誌分類器的好壞。
於是area under roc curve(auc)就出現了。顧名思義,auc的值就是處於roc curve下方的那部分面積的大小。通常,auc的值介於0.5到1.0之間,較大的auc代表了較好的performance。
三、深度理解
[1]from 機器學習和統計裡面的auc怎麼理解?
ROC曲線與AUC計算總結
橫軸 負正類率 false postive rate,fpr 特異度,劃分例項中所有負例佔所有負例的比例 1 specificity 縱軸 真正類率 true postive rate,tpr 靈敏度,sensitivity 正類覆蓋率 1 若乙個例項是正類並且被 為正類,即為真正類 true po...
ROC和AUC的理解
roc roc經常被用來評價乙個二值分類器的優劣。舉個例子,有10個樣本。分類器會計算出經過啟用函式前的score,假設score範圍是 0,1 根據score從左到右按降序排序。1,如果分類器效果很好,將樣本完美 pppppnnnnn p表示label為正,n表示label為負 2,如果分類器效果...
關於ROC與AUC最通俗的解釋
本文內容大部分來自於如下兩個部落格 假設有下面兩個分類器,哪個好?樣本中有a類樣本90個,b 類樣本10個。a類樣本 b類樣本 分類精度 分類器c1 a 90 100 a 10 0 90 分類器c2 a 70 b 20 78 a 5 b 5 50 75 分類器c1把所有的測試樣本都分成了a類,分類器...