分类模型的性能评估——以SAS Logistic回归为例(2): ROC和AUC
ROC
上回我們提到,ROC曲線(xiàn)就是不同的閾值下,以下兩個(gè)變量的組合(如果對(duì)Sensitivity和Specificity兩個(gè)術(shù)語(yǔ)沒(méi)有概念,不妨返回,《分類(lèi)模型的性能評(píng)估——以SAS Logistic回歸為例(1): 混淆矩陣》,強(qiáng)烈建議讀者對(duì)著看):
Sensitivity(覆蓋率,True Positive Rate)
1-Specificity (Specificity, 負(fù)例的覆蓋率,True Negative Rate)
二話(huà)不說(shuō),先把它畫(huà)出來(lái)(以下腳本的主體是標(biāo)紅部分,數(shù)據(jù)集valid_roc,還是出自上面提到的那篇):
axis order=(0 to 1 by .1) label=none length=4in;
symbol i=join v=none c=black;
symbol2 i=join v=none c=black;
proc gplot data = valid_roc;
plot _SENSIT_*_1MSPEC_ _1MSPEC_*_1MSPEC_
/ overlay vaxis=axis haxis=axis;
run; quit;
上圖那條曲線(xiàn)就是ROC曲線(xiàn),橫軸是1-Specificity,縱軸是Sensitivity。以前提到過(guò),隨著閾值的減小(更多的客戶(hù)就會(huì)被歸為正例),Sensitivity和1-Specificity也相應(yīng)增加(也即Specificity相應(yīng)減少),所以ROC呈遞增態(tài)勢(shì)(至于ROC曲線(xiàn)凹向原點(diǎn)而非凸向原點(diǎn),不知道有無(wú)直觀(guān)的解釋,不提)。那條45度線(xiàn)是作為參照(baseline model)出現(xiàn)的,就是說(shuō),ROC的好壞,乃是跟45度線(xiàn)相比的,怎么講?
回到以前,我們分析valid數(shù)據(jù),知道有36.5%的bad客戶(hù)(Actual Positive )和63.5%的good客戶(hù)(Actual Negative)。這兩個(gè)概率是根據(jù)以往的數(shù)據(jù)計(jì)算出來(lái)的,可以叫做“先驗(yàn)概率”( prior probability)。后來(lái),我們用logistic回歸模型,再給每個(gè)客戶(hù)算了一個(gè)bad的概率,這個(gè)概率是用模型加以修正的概率,叫做“后驗(yàn)概率”(Posterior Probability)。
| ? | ? | 預(yù)測(cè) | ? | ? |
| ? | ? | 1 | 0 | ? |
| 實(shí) | 1 | d, True Positive | c, False Negative | c+d, Actual Positive |
| 際 | 0 | b, False Positive | a, True Negative | a+b, Actual Negative |
| ? | ? | b+d, Predicted Positive | a+c, Predicted Negative | ? |
如果不用模型,我們就根據(jù)原始數(shù)據(jù)的分布來(lái)指派,隨機(jī)地把客戶(hù)歸為某個(gè)類(lèi)別,那么,你得到的True Positive對(duì)False Positive之比,應(yīng)該等于A(yíng)ctual Positive對(duì)Actual Negative之比(你做得跟樣本分布一樣好)——即,d/b=(c+d)/(a+b),可以有(d/c+d)/(b/a+b)=1,而這正好是Sensitivity/(1-Specificity)。在不使用模型的情況下,Sensitivity和1-Specificity之比恒等于1,這就是45度線(xiàn)的來(lái)歷。一個(gè)模型要有所提升,首先就應(yīng)該比這個(gè)baseline表現(xiàn)要好。ROC曲線(xiàn)就是來(lái)評(píng)估模型比baseline好壞的一個(gè)著名圖例。這個(gè)可能不夠直觀(guān),但可以想想線(xiàn)性回歸的baseline model:
如果不用模型,對(duì)因變量的最好估計(jì)就是樣本的均值(上圖水平紅線(xiàn))。綠線(xiàn)是回歸線(xiàn)(模型),回歸線(xiàn)與水平線(xiàn)之間的偏離,稱(chēng)作Explained Variability, 就是由模型解釋了的變動(dòng),這個(gè)變動(dòng)(在方差分析里,又稱(chēng)作model sum of squares, SSM)越大,模型表現(xiàn)就越好了(決定系數(shù)R-square標(biāo)準(zhǔn))。同樣的類(lèi)比,ROC曲線(xiàn)與45度線(xiàn)偏離越大,模型的效果就越好。最好好到什么程度呢?
在最好的情況下,Sensitivity為1(正確預(yù)測(cè)到的正例就剛好等于實(shí)際的正例總數(shù)),同時(shí)Specificity為1(正確預(yù)測(cè)到的負(fù)例個(gè)數(shù)就剛好等于實(shí)際的負(fù)例數(shù)),在上圖中,就是左上方的點(diǎn)(0,1)。因此,ROC曲線(xiàn)越往左上方靠攏,Sensitivity和Specificity就越大,模型的預(yù)測(cè)效果就越好。同樣的思路,你還可以解釋為什么ROC曲線(xiàn)經(jīng)過(guò)點(diǎn)(0,0)和(1.1),不提。
AUC, Area Under the ROC Curve
ROC曲線(xiàn)是根據(jù)與45度線(xiàn)的偏離來(lái)判斷模型好壞。圖示的好處是直觀(guān),不足就是不夠精確。到底好在哪里,好了多少?這就要涉及另一個(gè)術(shù)語(yǔ),AUC(Area Under the ROC Curve,ROC曲線(xiàn)下的面積),不過(guò)也不是新東西,只是ROC的一個(gè)派生而已。
回到先前那張ROC曲線(xiàn)圖。45度線(xiàn)下的面積是0.5,ROC曲線(xiàn)與它偏離越大,ROC曲線(xiàn)就越向左上方靠攏,它下面的面積(AUC)也就應(yīng)該越大。我們就可以根據(jù)AUC的值與0.5相比,來(lái)評(píng)估一個(gè)分類(lèi)模型的預(yù)測(cè)效果。
SAS的Logistic回歸能夠后直接生成AUC值。跑完上面的模型,你可以在結(jié)果報(bào)告的Association Statistics找到一個(gè)叫c的指標(biāo),它就是AUC(本例中,c=AUC=0.803,45度線(xiàn)的c=0.5)。
/*注:以上提到的c不是AUC里面那個(gè)’C’。這個(gè)c是一個(gè)叫Wilcoxon-Mann-Whitney 檢驗(yàn)的統(tǒng)計(jì)量。這個(gè)說(shuō)來(lái)話(huà)長(zhǎng),不過(guò)這個(gè)c卻等價(jià)于ROC曲線(xiàn)下的面積(AUC)。*/
ROC、AUC:SAS9.2一步到位
SAS9.2有個(gè)非常好的新功能,叫ODS Statistical Graphics,有興趣可以去它主頁(yè)看看。在SAS9.2平臺(tái)提交以下代碼,Logistic回歸參數(shù)估計(jì)和ROC曲線(xiàn)、AUC值等結(jié)果就能一起出來(lái)(有了上面的鋪墊,就不懼這個(gè)黑箱了):
ods graphics on;
proc logistic data=train plots(only)=roc;
model good_bad=checking history duration savings property;
run;
ods graphics off;
這個(gè)ROC圖貌似還漂亮些,眼神好能看見(jiàn)標(biāo)出來(lái)的AUC是0.8029。 最后提一句,ROC全稱(chēng)是Receiver Operating Characteristic Curve,中文叫“接受者操作特性曲線(xiàn)”,江湖黑話(huà)了(有朋友能不能出來(lái)解釋一下,誰(shuí)是Receiver,為什么Operating,何謂Characteristic——這個(gè)看著好像是Sensitivity和Specificity),不過(guò)并不妨礙我們使用ROC作為模型評(píng)估的工具。
下期預(yù)告:Lift和Gain
不多說(shuō),只提一句,跟ROC類(lèi)似,Lift(提升)和Gain(增益)也一樣能簡(jiǎn)單地從以前的Confusion Matrix以及Sensitivity、Specificity等信息中推導(dǎo)而來(lái),也有跟一個(gè)baseline model的比較,然后也是很容易畫(huà)出來(lái),很容易解釋。
參考資料
from: http://cos.name/2008/12/measure-classification-model-performance-roc-auc/
總結(jié)
以上是生活随笔為你收集整理的分类模型的性能评估——以SAS Logistic回归为例(2): ROC和AUC的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 分类模型的性能评估——以SAS Logi
- 下一篇: 分类模型的性能评估——以SAS Logi