深入理解KS


一、概述

KS(Kolmogorov-Smirnov)評價指標,通過衡量好壞樣本累計分布之間的差值,來評估模型的風險區分能力。

KS、AUC、PR曲線對比:

1)ks和AUC一樣,都是利用TPR、FPR兩個指標來評價模型的整體訓練效果。

2)不同之處在於,ks取的是TPR和FPR差值的最大值,能夠找到一個最優的閾值;AUC只評價了模型的整體訓練效果,並沒有指出如何划分類別讓預估的效果達到最好,就是沒有找到好的切分閾值。

3)與PR曲線相比,AUC和KS受樣本不均衡的影響較小,而PR受其影響較大。(詳看P-R曲線及與ROC曲線區別

KS的曲線圖走勢大概如下:

ks值<0.2,一般認為模型沒有區分能力。

ks值[0.2,0.3],模型具有一定區分能力,勉強可以接受

ks值[0.3,0.5],模型具有較強的區分能力。

ks值大於0.75,往往表示模型有異常。

 

二、直觀理解KS

1)如何直觀的理解ks呢?

參考上述ks曲線圖,可以這樣理解,隨着閾值從大逐漸的變小,TPR的提升速度高於FPR的提升速度,直到一個臨界閾值threshold,之后TPR提升速度低於FPR,這個臨界threshold便是最佳閾值。在前期TPR越快提升,模型效果越好;反之,FPR越快提升,模型效果就越差。

 

2)公式推導KS

前提假設:正負樣本在當前模型下的預測值分布,都服從高斯分布。

令:

根據上述ks曲線圖,可知ks曲線是一個凹函數,存在極大值,所以對g(x)求導,令其導數為0:

由此可知,當f-(x)=f+(x)的時候,g(x)取值最大,即為所求的KS值。

 注:

g(x)表示大於閾值x情況下的TPR-FPR的值,

s+(x)表示大於閾值x情況下實際為正樣本的個數

P表示正樣本的總量

s-(x)表示大於閾值x情況下實際為負樣本的個數

N表示負樣本的總量

F+(x)表示在當前模型下實際正樣本的概率分布函數,為什么要強調當前模型下,因為不同的模型對樣本預測的值不一樣,其概率分布也不一樣。

F-(x)表示在當前模型下實際負樣本的概率分布函數

f+(x)表示在當前模型下實際正樣本的概率密度函數

f-(x)表示在當前模型下實際負樣本的概率密度函數

 

3)用概率密度函數直觀展示KS值

從2)公式推導中我們發現,在當前模型預測下,正負樣本的概率密度函數值相等時候,KS值最大。可以利用二元分類樣本數據構建模型進行驗證。

我們利用《西南財經大學新網銀行杯數據科學競賽》的數據進行驗證,訓練數據共15000條,篩選后有效特征122個,訓練集、驗證集、測試集按8:1:1切分,利用xgboost構建模型后對測試集進行打分,最終ks=0.52,最優閾值=0.0539,auc=0.82。將測試集的正負樣本分開,根據其預測值分別畫出對應的概率密度曲線,再畫出x=0.0539直線,看最優閾值線是否與兩個概率密度曲線的相交處也相交。如下圖:

從2)中的g(x)我們知道,g(x)值等於在閾值x下,負樣本<=x的概率減去正樣本<=x的概率。

對應圖中的概率密度曲線而言,就是在<=x條件下,綠色曲線下的面積減去藍色去曲線下的面積。從圖上也可以看出,兩個分布交點處的閾值,是KS值最大對應的閾值,其KS值就等於紅線左側藍線上方綠線下面的面積,閾值向左切或者往右切,所求面積都會變小。

紅線就是我們所求的ks值最優閾值線,在圖形上也與預期一致,三者相交於一點;從圖中也看出ks值與正負樣本比例無關系,只與模型對正負樣本的預測值分布有關系。,但是如果樣本量太小的話,其預測值的分布無法准確反應模型的性能,因此樣本還是要達到一定數量。

另外,從正負樣本預測值的概率密度函數,我們也能直觀看出模型是否有效,如果模型比較有效,兩個分布就會分的比較開,KS值自然比較大,所以這也是一種直觀評測模型的方式。


免責聲明!

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



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