1. 混淆矩陣
確定截斷點后,評價學習器性能
假設訓練之初以及預測后,一個樣本是正例還是反例是已經確定的,這個時候,樣本應該有兩個類別值,一個是真實的0/1,一個是預測的0/1
TP(實際為正預測為正),FP(實際為負但預測為正),TN(實際為負預測為負),FN(實際為正但預測為負)
通過混淆矩陣我們可以給出各指標的值:
查全率(召回率,recall):樣本中的正例有多少被預測准確了,衡量的是查全率,預測對的正例數占真正的正例數的比率:
查全率=檢索出的相關信息量 / 系統中的相關信息總量 = TP / (TP+FN)
查准率(精准率,Precision):針對預測結果而言,預測為正的樣本有多少是真正的正樣本,衡量的是查准率,預測正確的正例數占預測為正例總量的比率:
查准率=正確預測到的正例數/實際正例總數 = TP / (TP+FP)
准確率(Accuracy):反映分類器統對整個樣本的判定能力,能將正的判定為正,負的判定為負的能力,計算公式:
准確率=(TP+TN) / (TP+FP+TN+FN)
評分卡准確率如下:
陰性預測值(NPV):可以理解為負樣本的查准率,陰性預測值被預測准確的比例,計算公式:
陰性預測值=正確預測到的負例數/實際負例總數=TN / (TN+FN)
查准率和查全率通常是一對矛盾的度量,通常一個高,另外一個就低。兩個指標都很重要,我們應該如何綜合考慮這兩個指標呢?
主要有兩種辦法:
1. "平衡點“ Break-Even Point, BEP
查准率=查全率的點,過了這個點,查全率將增加,查准率將降低。如下圖,藍色和橘黃色的交叉點就是“平衡點”
2. F1度量---查准率和查全率的加權調和平均數
(1)當認為查准率和查全率一樣重要時,權重相同時:
(2)當查准率查全率的重要性不同時,即權重不同時:
通常,對於不同的問題,查准率查全率的側重不同。比如,對於商品推薦系統,為了減少對用戶的干擾,查准率更重要;逃犯系統中,查全率更重要。因此,F1度量的一般形式:
其中β表示查全率與查准率的權重,很多參考書上就只給出了這個公式,那么究竟怎么推導來的呢?
兩個指標的設置及其關系如下,因為只考慮這兩個指標,所以二者權重和為1,即 可以推導得到
帶權重的調和平均數公式如下: 進一步推導:
因此
1. β=1,查全率的權重=查准率的權重,就是F1
2. β>1,查全率的權重>查准率的權重
3. β<1,查全率的權重<查准率的權重
那么問題又來了,如果說我們有多個二分類混淆矩陣,應該怎么評價F1指標呢?
多個二分類混淆矩陣可能有以下幾種情況:多次訓練/測試,多個數據集上進行訓練/測試,多分類任務的兩兩類別組合等
這里介紹兩種做法:
(1)宏F1
設有n個混淆矩陣,計算出查全率和查准率的平均值,在計算F1即可
這種做法認為每一次的混淆矩陣(訓練)是同等權重的
(2)微F1
設有n個混淆矩陣,計算出混淆矩陣對應元素(TP,FP,FN,TN)的平均值,再計算查全率、查准率,F1
這種做法認為每一個樣本的權重是一樣的。
具體可見京東風控
2. ROC曲線, AUC值
評價學習器性能,檢驗分類器對客戶進行正確排序的能力
分類器產生的結果通常是一個概率值不是直接的0/1變量,通常數值越到,代表正例的可能性越大。
根據任務的不同也會采取不同的“截斷點”,大於則為正例,小於則為反例。如重視查全率,則閾值可以設置低一些;而重視查准率,閾值可以設置高一些。
如果設定了截斷點或明確了任務,那么我們根據混淆矩陣就可以知道分類器的效果好壞。
在未設定截斷點(任務不明確)情況下,我們如何評價一個分類模型的效果的好壞或者比較不同分類模型效果?
我們可以觀察這個學習器利用所有可能的截斷點(就是所有樣本的預測結果)對樣本進行分類時的效果,注意要先對所有可能的截斷點進行排序,方便對比觀察。
ROC曲線描繪的是不同的截斷點時,並以FPR和TPR為橫縱坐標軸,描述隨着截斷點的變小,TPR隨着FPR的變化。
縱軸:TPR=正例分對的概率 = TP/(TP+FN),其實就是查全率
橫軸:FPR=負例分錯的概率 = FP/(FP+TN)
如果是隨機分類,沒有進行任何學習器,FPR=TPR,即正例分對和負例分錯概率相同,預測出來的正例負例和正例負例本身的分布是一致的,所以是一條45°的直線。
因此,ROC曲線越向上遠離這條45°直線,說明用了這個學習器在很小的代價(負例分錯為正例,橫軸)下達到了相對較大的查全率(TPR)。
作圖步驟:
1. 根據學習器的預測結果(注意,是正例的概率值,非0/1變量)對樣本進行排序(從大到小)-----這就是截斷點依次選取的順序
2. 按順序選取截斷點,並計算TPR和FPR---也可以只選取n個截斷點,分別在1/n,2/n,3/n等位置
3. 連接所有的點(TPR,FPR)即為ROC圖
3. KS曲線,KS值
學習器將正例和反例分開的能力,確定最好的“截斷點”
KS曲線和ROC曲線都用到了TPR,FPR。KS曲線是把TPR和FPR都作為縱坐標,而樣本數作為橫坐標。
作圖步驟:
1. 根據學習器的預測結果(注意,是正例的概率值,非0/1變量)對樣本進行排序(從大到小)-----這就是截斷點依次選取的順序
2. 按順序選取截斷點,並計算TPR和FPR ---也可以只選取n個截斷點,分別在1/n,2/n,3/n等位置
3. 橫軸為樣本的占比百分比(最大100%),縱軸分別為TPR和FPR,可以得到KS曲線
4. TPR和FPR曲線分隔最開的位置就是最好的”截斷點“,最大間隔距離就是KS值,通常>0.2即可認為模型有比較好偶的預測准確性
例圖:
作為評分卡模型性能監測指標,在模型構建初期KS基本要滿足在0.3以上,而在評分卡模型監測期間,通常以日、周和月為維度進行計算KS,觀察評分卡對好壞客戶的區分能力是否仍然保持建模時候的狀態。如果KS持續下降惡化,就要考慮是市場發生了變化所致,還是客群發生了偏移,還是說評分卡模型不夠穩定,或者是評分卡內的某個特征變量發生重大變化所致。如果KS下降至閾值之下,而無法通過重新訓練模型進行修正的話,就要考慮上新的評分卡模型代替舊的版本。不僅評分卡模型整體分數要進行KS的監測,模型內的每個特征變量同樣要進行KS監測,這樣就能立即發現究竟是模型整體發生惡化,還是單一某個特征變量區分能力在惡化。如果僅僅是單一某個特征變量區分能力在惡化的話,可以考慮更換特征變量或者剔除特征變量的方法進行修正。
4.psi
psi = sum((實際占比-預期占比)/ln(實際占比/預期占比))
舉個例子解釋下,比如一個評分卡模型,按天為維度計算PSI,我們把模型剛上線第一天(設定為一個基期)的各分數段用戶占比作為預期占比P1,之后每天的各分數段用戶占比作為實際占比P2,這樣根據公式就可以計算出每天的PSI值,通過觀測這些PSI的大小和走勢,從而實現對評分卡穩定性的監測。通常PSI會以日、周和月為維度進行計算,同時也會對評分卡模型中各個特征變量分別做PSI監測。一般認為PSI小於0.1時候模型穩定性很高,0.1-0.25一般,大於0.25模型穩定性差,建議重做。
模型分數的變化可能由特征變化引起,也可能是模型本身不穩定引起,若是高分段總數量沒變,而psi值變動較大,認為需要重訓模型。若是psi值沒變,高分段總數量變多,認為整體用戶變好。
5. Lift 和Gain圖
Lift圖衡量的是,與不利用模型相比,模型的預測能力“變好”了多少,lift(提升指數)越大,模型的運行效果越好。
Gain圖是描述整體精准度的指標。
計算公式如下:
作圖步驟:
1. 根據學習器的預測結果(注意,是正例的概率值,非0/1變量)對樣本進行排序(從大到小)-----這就是截斷點依次選取的順序
2. 按順序選取截斷點,並計算Lift和Gain ---也可以只選取n個截斷點,分別在1/n,2/n,3/n等位置
例圖:
6.KT 值
7.遷移矩陣