博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
评分卡模型构建介绍
阅读量:6160 次
发布时间:2019-06-21

本文共 2415 字,大约阅读时间需要 8 分钟。

hot3.png

终于要写点什么了,这次讲讲评分卡构建流程。评分卡是银行非常喜欢用的模型,现在很多P2P也用。主要分为申请评分卡,行为评分卡,催收评分卡。下面我就梳理下评分卡的各个环节,文中很多材料知识都非原创,敬请留意。

v2-79a0b5b161bda8d4bf5631cfd1ae50fe_hd.jpg

变量选择:

选择上基本几个方面,客户物理属性,贷前贷中贷后的表现,这里不多叙述,比如逾期,余额等,此处不多叙述。

实际中,在实际应用场景,很多很根据业务背景,构造特征变量(或者称为衍生变量),

形如

v2-67fde046f36ac184bda8da04ef9049e7_hd.jpg

x,y和z都是变量,a和b是系数,当然还有很多形式,这方面我请教过很多人,似乎并没有可以套用的经验模板,只能看各位的脑洞了。

而因变量,一般选舆情90天以上的客户标记为0(坏客户),其他为1(好客户)

 

变量筛选

这里学校的理论都有一堆。

单变量:归一化,离散化,缺失值处理

多变量:降维,相关系数,卡方检验,信息增益。决策树等。

这里讲一种行业经常用的基于IV值进行筛选的方式。

首先引入概念和公式。

IV的全称是Information Value,中文意思是信息价值,或者信息量。

求IV值得先求woe值,这里又引入woe的概念。

WOE的全称是“Weight of Evidence”,即证据权重。

首先把变量分组(怎么分后面说),然后对于每个组i,对于第i组有:

v2-49cca6232614a88cba3895dcc519a93b_hd.jpg

其中 是第i组坏客户数量(bad), 是整体坏客户数量。同理,G就是good,好客户的意思。

 

v2-6295a4c1d36ef2945efda5cb5e3de30d_hd.jpg

woe反映的是在自变量每个分组下违约用户对正常用户占比和总体中违约用户对正常用户占比之间的差异;从而可以直观的认为woe蕴含了自变量取值对于目标变量(违约概率)的影响

而IV值得公式如下:

v2-14bf9f98ac62c6298ba2463eb6d56b84_hd.jpg

我们可以看到IV值其实是woe值加权求和。这个加权主要是消除掉各分组中数量差异带来的误差。

比如如果只用woe的绝对值求和,如果一些分组中,A组数量很小,B组数量很大(显然这样的分组不合理),这是B的woe值就很小,A组很大,求和的woe也不会小,显然这样不合理。比如:

v2-d7f23c243c388ebeb8f9debde08899e0_hd.jpg

最后我们可以根据每个变量VI值的大小排序去筛选变量。VI越大的越要保留。

 

变量处理

变量离散化:

评分卡模型用的是logistics,基本上都需要变量离散化后,效果才比较好。

离散化一般有几种方式:合并和切割。

合并:先把变量分为N份,然后两两合并,看是否满足停止合并条件。

切割:先把变量一分为二,看切割前后是否满足某个条件,满足则再切割。

 

而所谓的条件,一般有两种,卡方检验,信息增益。

传送门:卡方检验 

信息增益 

所以流程总结下来就是

v2-9861cb1e8fdd6ed44c24a139da0e694a_hd.jpg

哑变量:

当一些变量是非等级的字符串变量怎么办呢?

比如职业ABC,有的人写成123,其实这样就会有很大误差,ABC3种职业本无关系,但变为123后,1 2之间和1 3之间,似乎前者更加密切,对于模型来说(2-1<3-1)。所以我们需要将其变成哑变量。形如:

v2-958124a78ea5791201b07097ef35321c_hd.jpg

N组变量用M个变量的0和1来代替(M肯定小于N),在用这些新变量拟合模型。

 

构建评分卡

首先肯定是拟合logistics模型,用SAS,R,PYTHON,SPSS都可以,你开心就好。

一般出来各种系数和检验值。最后模型的形状形如:

v2-72e136554df014f732c276bc8fc3951d_hd.jpg

而回到评分卡,我们需要将logistics回归结果衍生成评分卡,一般除了每个变量每个分组对应一个分值,还得加个基础分。所以有如下公式:

v2-75f391751cba18a7d0ab7b8b56da91f9_hd.jpg

一般行业规则,一般设定当odds为50时,score为600;

Odds翻倍时,score+20,所以有如下公式:

v2-65204a1b3573b7758ec529a5f86548d3_hd.jpg

这样我们就能得到新鲜出炉的评分卡了!

后面我们就把变量离散化后每组对应的woe值代进模型就好了。

v2-04a413d8eea6a697bbcbec75db789395_hd.jpg

比如这样图,如果拟合出来的模型为:

v2-f1116572865ab08c0c29787c9f865b42_hd.jpg

我们只用把该客户对应的woe值代进模型就可以了。

比如客户最近一次购买金额是<100元,woe为-0.74,模型中就是1.5*-0.74,以此类推。

模型优化

根据KS值图

v2-f1c33063b6c9177a15fd4305e6a4cb81_hd.jpg

横轴是总体累积率,纵轴是各样本累积率

蓝色是坏客户的占比,红色是好客户的占比,两者都会随着横轴总体累积率的变化而变。但两者差距最大时,为KS值。

如在60%的时候KS值取得最大,此时将模型里面算出的P值(odds)排序,往下取60%时的P值,将60时的P值作为新的阈值,效果往往会有所提升。

模型检验

1.KS值图

上面说过,此处不再叙述。

2.ROC曲线

召唤经典级交叉矩阵

v2-38d5af16381f3ebfd952d596b48a0500_hd.jpg

(1)True Positive Rate,敏感度,召回率计算公式为TPR=TP/(TP+FN)

(2)False Positive Rate,简称为FPR,计算公式为FPR=FP/(FP+TN)

(3)Precision=TP/(TP+FP),或2TP/((TP+FN)+(TP+FP))。

(4)真负类率(True Negative Rate,TNR),也称为specificity,计算公式为TNR=TN/ (FPTN) = 1 - FPR

此时根据每段的百分比,可以列出下图的数据:

v2-a498762391be42b6722109ac2656d549_hd.jpg

然后根据数据可以得到下图。

v2-9be9568718f200ebeaec1e946cc73e5a_hd.jpg

折线下方的面积我们称为AUC,如果AUC接近0.5,就是说和随机没什么区别,AUC越大越好(当然过大可能是过拟合)

3.Lift曲线

v2-65424bcdf17996841de6484dce8b369d_hd.jpg

 

Lift=命中率/真实中正例的比例

横坐标Depth为预测成正例的比例

在模型中,随着改变阈值p,命中率会随之改变,lift曲线中横坐标就是改变阈值p下正比例的变化,纵坐标是lift提升度。比如命中率是80%,原来好坏比是1.1,那样就提高了1.6。

一般来说,在depth为1前,lift越大于1越好。

总结

一般来说,构建的过程大致是和业务聊聊天,开下脑洞想想怎么构建特征工程,然后变量离散化,扔进logistics模型,根据KS图改下P值。不爽的话改下特征工程变量中各系数,然后再来一遍离散化,进入模型,优化,检验。。。。。。

最后小弟才疏学浅,有所不知,请指教~

转载于:https://my.oschina.net/hblt147/blog/1575208

你可能感兴趣的文章
ContentValues 和HashTable区别
查看>>
LogicalDOC 6.6.2 发布,文档管理系统
查看>>
给PowerShell脚本传递参数
查看>>
实战2——Hadoop的日志分析
查看>>
利用FIFO进行文件拷贝一例
查看>>
Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG
查看>>
resmgr:cpu quantum等待事件
查看>>
一个屌丝程序猿的人生(六十六)
查看>>
Java 编码 UTF-8
查看>>
SpringMVC实战(注解)
查看>>
关于静态属性和静态函数
查看>>
进程的基本属性:进程ID、父进程ID、进程组ID、会话和控制终端
查看>>
spring+jotm+ibatis+mysql实现JTA分布式事务
查看>>
MyBatis启动:MapperStatement创建
查看>>
调查问卷相关
查看>>
eclipse启动无响应,老是加载不了revert resources,或停留在Loading workbench状态
查看>>
1. Git-2.12.0-64-bit .exe下载
查看>>
怎样关闭“粘滞键”?
查看>>
[转]React 教程
查看>>
拓扑排序介绍
查看>>