风控的作用和意义(风控系统架构

另一方面,业务背景在金融控制领域,常用KS指标衡量评价模型的区分度(discrimination ),这也是控制模型最需要的指标之一。 在此,从划分概念、KS计算方法、业务指导意义、几何分析、数学思想等角度,对KS进行深入分析。

二、在直观理解区分度概念的数据搜索中,如果想粗略判断自变量x相对于因变量y是否存在区分度,往往将样本分为正负来观察变量分布的差异。 那么,如何判断自变量有用? 直观地理解,如果两个分布的重叠部分越小,代表正负样本的差异性越大,自变量就能更好的将正负样本区分开来具体如图1所示。

例如,想象一下这个变量用双手将这个分布拉开到两边。 说明这双手的力越大,两个概率分布的间隔越远,变量的区别性越强。

图1 -正负样本分布差异比较

importmatplotlibimportnumpyasnpimportmatplotlib.pyplotaspltmu=100 # meanofdistributionsigma=15 # standarddeviationonofdistion NP.random.randn(20000 ) num_bins=80fig,ax=plt.subplots ) #the patches=ax.hist(x,num_bins,densins ) density=1) adda’bestfit’liney=((1/) NP.sqrt )2*NP.pi ) * sigma ) ) NP.exp(-0.5* ) * sigma ) 2 ) ) ) ) ax.plot(bins,y,’-‘,label=’bads ‘ ) label=’goods ‘ ) ax.set_xlabel(varible ) ax.set linestyle=’: ‘,color=’r ‘,alpha=0.7 ) plt.legend ) ) plt.show )三,KS统计定义KS ) ) kolmoow )。 风控中KS通常用于评价模型的区分度,区分度越大表明模型的风险排序能力越高。

KS基于经验累积分布函数(emporicalcumulativedistributionfunction,ecdf )创建,一般定义如下:

四、KS计算过程和业务分析KS常用计算方法:

step1:允许对变量进行binning (分割,选择等频率、等间隔或自定义距离。

计算每个step2分箱区间的好样本数(goods )和差样本数(bads )。

step3:计算各包厢区间内累计客流量对总好客的比率(cum_good_rate )和累计客流量对总坏客的比率(cum_bad_rate )。

step4)计算每个箱区间累计不良顾客占有率和累计好顾客占有率的绝对值,得到KS曲线。 也就是说:

step5:取这些绝对值中的最大值,得到该变量的最终KS值。

为了清楚起见,用具体数据展示了上述过程。

表1 – KS计算流程表

上标计算逻辑:

从上表中可以获得以下信息:

1 .模型分数越高,逾期率越低,因此低段bad_rate相对于高段而言越高,cum_bad_rate曲线的增长率快于cum_good_rate。 cum_bad_rate曲线位于cum_good_rate曲线上。

2 .各分箱样本数基本相同,表明为等频分箱。

如果将cutoff限定为0.65,则其cum_bad_rate为82.75%,82.75%的坏顾客被拒绝,但同时cum_good_rate为29.69%,同时29.69%的好顾客被拒绝

根据bad_rate的变化趋势,模型排序性较好。 对于a卡,由于需要根据风险等级对用户风险定价,所以对排序性的要求较高。

5 .模型的KS达到53.1%,区分度强,这是最理想的状态。 在实际业务APP应用中,需要根据预设条件权衡通过率与注销率的关系,一般的Cut关闭不会被选为理想值,因此可以看出KS是区分度的上限。

/p>

6.对于A卡来说,通常KS很难达到52%,因此,若上表数据为A卡结果,需要进一步确认模型是否发生过拟合。

需要进一步指出的是,KS是在放贷样本上评估的,放贷样本对于全量样本永远是有偏的。对于裸奔风控系统,偏差会很小;反之如果风控系统做的越好,偏差就会越大。因此KS不仅仅只是一个数字,其背后蕴藏的很多原因,需要结合业务进行具体分析。

当KS不佳时,为了达到预期目的,可进行以下校验:

1.检验入模变量是否已被策略使用,使用重复变量会导致模型无法命中本应被命中的坏客户,导致模型效果下降。

2.检验训练样本与验证样本之间的客群差异是否明显,其中包括时间分布,某些特征分布、特殊特征命中情况等。

3.开发对目标场景更具针对性的新特征,比如税务场景,在进行特征衍生时,更加关注税务指标;如识别长期风险,就使用强金融属性变量,对于欺诈风险,就使用一些短期的负面变量。

4.分群建模,但须考虑稳定性与差异性,防止过拟合。

5.坏客户分析,试图通过个性推共性。

对表1数据进行可视化,便得到KS曲线,主要使用到最后三列数据,即cum_good_rate、cum_bad_rate和KS,具体代码和图像如下:

import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as npcum_good_rate = np.array([0.00,0.05,0.12,0.20,0.30,0.41,0.53,0.71,0.86,1.00])cum_bad_rate = np.array([0.26,0.45,0.59,0.72,0.83,0.90,0.97,0.99,1.00,1.00])x = np.linspace(0, 1, 10)plt.plot(x, cum_good_rate, label = ‘cum_good_rate’)plt.plot(x, cum_bad_rate, label = ‘cum_bad_rate’)plt.plot(x, cum_bad_rate – cum_good_rate, label = ‘KS’)plt.title(‘KS Curve’, fontsize = 16)plt.grid(True,linestyle = ‘:’, color = ‘r’, alpha = 0.7)plt.axhline(y = 0.53, c = ‘r’, ls = ‘–‘, lw = 3) #绘制平行于x轴的水平参考线plt.axvline(x = 0.43, c = ‘r’, ls = ‘–‘, lw = 3) #绘制平行于y轴的垂直参考线plt.legend()plt.show()

图2 – KS曲线

至此,我们已经了解了KS的计算的基本流程、评价标准、业务指导意义和优化思路,接下来有几个问题:

1.为什么风控中常用KS来评价模型效果,而不是使用准确率、召回率等?

2.最大KS只是一个宏观的结果,那么在不同的cutoff下取到max,模型效果有何差异?

3.一般情况下,KS越大越好,但为什么通常认为高于75%的KS就不可靠了?

五、风控中选择KS的原因

风控建模过程中,常把样本标签分为GBIX四类,其中:G=Good(好人,标记为0),B=Bad(坏人,标记为1),I=Indeterminate(不定,未进入表现期),X=Exclusion(排斥,异常样本)。

需要指出的是,Good与Bad之间的定义往往是模糊的、连续的,依赖于实际业务需求。这里举两个例子帮助理解:

例1:模糊性

对于12期信贷产品,如果设定表现期为前6期,S6D15(前6期中,任意一期逾期超15天)就是1,否则为0;但后来如果把表现期调整为3期,那么对于**“前3期都正常还款,但4~6期才发生逾期并超过15天”**的这部分样本,原本所定义的label就从1变成了0.因此业务需求不同,导致标签的定义不是绝对的。所以说,好坏样本定义一定要根据实际业务需求来,要在对业务进行充分理解与分析的基础上进行确定,而不是拍脑袋而为之。

例2:连续性

定义首期逾期超30天为1,否则为0。但是,逾期29天与逾期31天的用户之间其实并没有不可跨越的硬间隔,逾期29天的用户可能会进一步恶化为逾期31天。

由于逾期严重程度定义本身就带有一定的主观色彩,我们很难说逾期天数差几天有多少本质差异,所以哪怕我们为了转化为分类问题做了硬性的1和0的界限定义,但业务上理解还是一个连续问题。

因此,在风控中,y的定义并不是非黑即白(离散型),而用概率分布(连续型)衡量或许更合理。

那么,为什么选择KS指标呢?KS倾向于从概率角度衡量正负样本之间的差异,正是因为正负样本之间的模糊性与连续性,所以KS也是一条连续曲线。但最终为什么取一个最大值,主要原因是提取KS曲线中的的一个显著特征,从而便于相互比较。

技术交流

欢迎转载、收藏、有所收获点赞支持一下!

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

方式①、发送如下图片至微信,长按识别,后台回复:加群;方式②、添加微信号:dkl88191,备注:来自CSDN方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注