1. 程式人生 > >基於python的k-s值計算

基於python的k-s值計算

\n odi das csdn 出現 區分 min ima 篩選

做評分卡模型時(假設有多個自變量,因變量即是否違約。)通常需要篩選變量。

k-s值的作用類似於AUC,它期初是用來評價模型(變量)對是否違約事件的區分程度的。

技術分享圖片

# -*- coding: utf-8 -*-
"""
Created on Mon Apr  8 17:04:37 2019

@author: Administrator
ks計算

"""
import pandas as pd
import numpy as np

data_test_2 = {y30:[1,1,1,1,1,1,0,0,0,0,0,0,0],a:[1,2,0,2,2,7,4,5,4,0,4,18,np.nan]}
data_test_2 
= pd.DataFrame(data_test_2) def ks_calc_cross(data,var_col,y_col): ‘‘‘ 功能: 計算KS值,輸出對應分割點和累計分布 輸入值:- 輸出值: ‘ks‘: KS值,‘crossdens‘: 好壞人累積概率分布以及其差值gap ‘‘‘ ks_df1 = pd.crosstab(data[var_col],data[y_col]) ks_df2 = ks_df1.cumsum(axis=0) / ks_df1.sum() ks_df2[gap
] = abs(ks_df2[0] - ks_df2[1]) ks = ks_df2[gap].max() return ks,crossdens ks_value,ks_df2 = ks_calc_cross(data_test_2, a, y30) print(ks_value,\n,ks_df2)

技術分享圖片

ks檢驗介紹<轉載>
筆者剛入門機器學習開始做的例子就是金融場景下風控模型。那時評價模型的好壞就用傳統的機器學習評價標準,比如說準確率、精確率和AUC,對風控模型的ks指標還一無所知,倒是作為統計科班出身的童鞋,第一次見到ks想到的就是數理統計中的Kolmogorov-Smirnov檢驗(柯爾莫哥洛夫-斯米爾洛夫)。後來實習過程中,發現老板們在看風控模型結果最關註的結果就是ks指標,才開始對ks指標逐漸重視起來。在衡量模型效果時,對評分卡或者機器學習模型給出的違約概率和y值計算ks值,給出模型效果來確定模型的好壞(一般0.3左右可以使用,0.4以上模型效果較高,超過0.7,可能模型有問題,這時候需要去debug一下是不是出現了特征信息泄露以及一些其他的問題)。筆者在實際應用中,發現市面上關於ks系統介紹的文章比較少,本文就系統的介紹一下ks的前世今生,以及在在風控模型下的多種實現。

參考:《風控分類模型種類(決策、排序)比較與模型評估體系(ROC/gini/KS/lift)》

https://blog.csdn.net/qq_38984677/article/details/85632268

《分類模型的評價指標--混淆矩陣,ROC,AUC,KS,Lift,Gain》

註意:對名義變量不適合用k-s值。一下證明了變量值的排序影響最終的ks值:

技術分享圖片

基於python的k-s值計算