1. 程式人生 > >機器學習演算法——評價指標彙總

機器學習演算法——評價指標彙總

準確率,精確率,召回率和F1

準確率(Accuracy), 精確率(Precision), 召回率(Recall)和F1-Measure

ROC-AUC

ROC曲線

需要提前說明的是,我們這裡只討論二值分類器。對於分類器,或者說分類演算法,評價指標主要有precision,recall,F-score,以及我們今天要討論的ROC和AUC。下圖是一個ROC曲線的示例。
ROC更好的參考
正如我們在這個ROC曲線的示例圖中看到的那樣,ROC曲線的橫座標為false positive rate(FPR),縱座標為true positive rate(TPR)。下圖中詳細說明了FPR和TPR是如何定義的。(真陽性/假陽性=roc)(acu為roc曲線下的面積0.5到1)

混淆矩陣.png

 

下面考慮ROC曲線圖中的虛線y=x上的點。這條對角線上的點其實表示的是一個採用隨機猜測策略的分類器的結果,例如(0.5,0.5),表示該分類器隨機對於一半的樣本猜測其為正樣本,另外一半的樣本為負樣本。

如何畫ROC曲線

假如我們已經得到了所有樣本的概率輸出(屬於正樣本的概率),現在的問題是如何改變“discrimination threashold”?我們根據每個測試樣本屬於正樣本的概率值從大到小排序。下圖是一個示例,圖中共有20個測試樣本,“Class”一欄表示每個測試樣本真正的標籤(p表示正樣本,n表示負樣本),“Score”表示每個測試樣本屬於正樣本的概率[^4]。

樣例.png

 

接下來,我們從高到低,依次將“Score”值作為閾值threshold,當測試樣本屬於正樣本的概率大於或等於這個threshold時,我們認為它為正樣本,否則為負樣本。舉例來說,對於圖中的第4個樣本,其“Score”值為0.6,那麼樣本1,2,3,4都被認為是正樣本,因為它們的“Score”值都大於等於0.6,而其他樣本則都認為是負樣本。每次選取一個不同的threshold,我們就可以得到一組FPR和TPR,即ROC曲線上的一點。這樣一來,我們一共得到了20組FPR和TPR的值,將它們畫在ROC曲線的結果如下圖:

為什麼使用ROC曲線

既然已經這麼多評價標準,為什麼還要使用ROC和AUC呢?因為ROC曲線有個很好的特性:當測試集中的正負樣本的分佈變化的時候,ROC曲線能夠保持不變。在實際的資料集中經常會出現類不平衡(class imbalance)現象,

即負樣本比正樣本多很多(或者相反),而且測試資料中的正負樣本的分佈也可能隨著時間變化。下圖是ROC曲線和Precision-Recall曲線[^5]的對比:

信用評分的簡單小結(ROC,IV,WOE)

常見的用於信用評分的模型就是logistic迴歸,這是一種處理二分類因變數的廣義線性模型。這種模型的理論基礎比較紮實,但是對於不同的問題當然也存在一些特殊的處理方式,我最大的困惑就在於建模時對分類自變數的處理方法。
由於製作評分卡的某些需要,通常會在建立評分模型時將自變數做離散化處理(等寬切割,等高切割,或者利用決策樹來切割),但是模型本身沒辦法很好地直接接受分類自變數的輸入,因此需要對自變數進行再次的處理。比較常規的做法有兩種:做dummy變數,做基於目標的變數編碼。

dummy變數是比較順其自然的操作,例如某個自變數m有3種取值分別為m1,m2,m3,那麼可以構造兩個dummy變數M1,M2:當m取m1時,M1取1而M2取0;當m取m2時,M1取0而M2取1;當m取m3時,M1取0且M2取0。這樣,M1和M2的取值就確定了m的取值。之所以不構造M3變數,是基於資訊冗餘和多重共線性之類的考慮。但是,構造dummy變數也存在一些缺點,例如無法對自變數的每一個取值計算其信用得分,並且迴歸模型篩選變數時可能出現某個自變數被部分地捨棄的情況。

另一種處理分類變數的方法是基於目標對其進行編碼,在信用評分中比較常見的就是用WOE編碼。WOE叫做證據權重(Weight of Evidence),表示的其實是自變數取某個值的時候對違約比例的一種影響。
信用評分的簡單小結(ROC,IV,WOE)

直觀地可以認為WOE蘊含了自變數取值對目標變數(違約概率)的某種影響,因此可以自然地將自變數重新編碼:當自變數取值Ai時,編碼為相應的WOEi。

KS

風控分類模型種類(決策、排序)比較與模型評估體系(ROC/gini/KS/lift)
區分度指標(KS)是度量具體模型下正常樣本和違約樣本分佈的最大差距,首先按照樣本的信用分數或預測違約率從小到大進行排序,然後計算每一個分數或違約率下好壞樣本的累計佔比。正常和違約樣本的累計佔比差值的最大值即為區分度指標(KS)。區分度指標(KS)的示意如圖2所示。區分度指標(KS)小於0.2代表模型準確性差,超過0.75則代表模型準確性高。

實際上是就是你建立好模型後,按照評分從大到小排列後:檢驗你所謂的好客戶和壞客戶兩類客戶分佈的差異性,即模型區分度。分佈根據好壞兩個客戶評分的累積密度分佈曲線,畫出來的:比如好壞客戶共100個,按照評分排序後前百分之十的客戶即10個,其中好的客戶有8個,壞的客戶有2個(總體樣本中好客戶80個,壞客戶20個),那麼前10%的客戶的累積密度為:好客戶10%,壞客戶10%。同理前20%的客戶中其中好的客戶有15個,壞的客戶有5個那麼前20%的客戶的累積密度為:好客戶18.75%,壞客戶25%
以此類推可以得出前30%,40%。。。。100%的累積密度。以10%,20%,30%。。。100%為橫座標,以兩類客戶累積密度為縱座標,即可畫出KS曲線圖。

群體穩定指數(PSI)————模型的穩定性

群體穩定性指標(population stability index),
公式: psi = sum((實際佔比-預期佔比)/ln(實際佔比/預期佔比))

psi.png

舉個例子解釋下,比如訓練一個logistic迴歸模型,預測時候會有個概率輸出p。你測試集上的輸出設定為p1吧,將它從小到大排序後10等分,如0-0.1,0.1-0.2,......。
現在你用這個模型去對新的樣本進行預測,預測結果叫p2,按p1的區間也劃分為10等分。
實際佔比就是p2上在各區間的使用者佔比,預期佔比就是p1上各區間的使用者佔比。
意義就是如果模型跟穩定,那麼p1和p2上各區間的使用者應該是相近的,佔比不會變動很大,也就是預測出來的概率不會差距很大。
一般認為psi小於0.1時候模型穩定性很高,0.1-0.25一般,大於0.25模型穩定性差,建議重做。
模型的穩定性用PSI指標來檢驗




轉自:https://www.jianshu.com/p/f60f7755a847