今天我们来输出一篇风控长文,关于大家熟悉关注的逻辑评分卡的开发的内容,文章篇幅较长,大纲目录如下:
-
建模前准备
1.1特征预处理与转化
1.2特征衍生与提取
1.3特征选择与降维 -
分箱
2.1分箱概述
2.2分箱方法 -
Woe计算
3.1 WOE
3.2 IV -
建模
-
模型评估
5.1 混淆矩阵
5.2 roc曲线与auc值
5.3 KS曲线与ks值 -
分数校准
1 建模前准备
在开始建模前,需要进行大量的数据处理工作,包括特征预处理和转化、特征衍生与提取、特征选择与降维,这一部分是整个建模流程的基石,约占整个建模流程的70%的工作量。
1.1 特征预处理与转化
特征预处理与转化包含数据清洗、编码和转化。
1.1.1 数据清洗
本文介绍对错误值、异常值、缺失值的数据清洗方法。
错误值:
1.定义:录入错误、系统原因到时数据引入错误、后续加工计算错误
2.处理办法:有两种。
a).找到错误原因进行修正变成正常值
b).直接删除
异常值处理:
定义:没有明确的定义,通常认为在置信区间1%-99%以外的数据,当做异常值,一般用箱型图来判断异常值(箱型图原理如下)。
2、处理办法:修正、删除(要求随机),删除要求不影响y的分布和随机性,另外一种方法:将异常值放在头尾两个箱内,减少极值的杠杆效应,另外可将异常值当做缺失值,然后用均值替换、盖帽法等进行修正和填补
缺失值处理:
1、定义:在表关联匹配时没有匹配到时产生的空值
2、处理方法:
a).缺失值有一定的含义,保留缺失值,如果这个字段本身大于0的,那么给他赋值-999,如果这个字段有正有负,那么给他赋值-9999。
b).有明确的逻辑的缺失:要通过逻辑进行填充
c).随机缺失的:通过众数/中位数填充
d).转化:通过woe单独作为一箱
e).删除:如果该变量缺失率很高,大于85%,和y的关联性不高的话,可以直接删除。如果和y关联性比较显著的话,不建议删除。
1.1.2编码
1.分类变量:如性别、学历、省份等,可采用onehot或labelencoder进行编码
2.文本型变量:分词向量化后,用词袋模型onehot/word2vec词嵌入
3. 二值化:是否、好坏等,直接转化成0/1映射
1.1.3 转化
1.分布转化:当数据分布不符合正态分布时,通过特征处理,使得数据接近正泰分布。常见的转化有如下几种:
对数:ln(x)、平方根、sigmoid,probit
2.归一化/标准化:
1.2 特征衍生与提取
特征衍生的方法通常有两种,1.专家经验,2.自动衍生:预定义算子和特征组合,批量化特征组合
1.3 特征选择与降维
特征选择与降维是指通过一些手段,从业务角度和数据角度筛选对模型贡献度高的特征。
1.3.1业务角度
从业务角度要求数据的合规性、可获得性、可解释性
1.3.2 数据角度
(1)通常要求数据缺失率不能太高、集中度不能太高、波动性不能太大。
(2)时间稳定性PSI:不同时间分布是否变化
评价特征稳定性:衡量特征是否随时间的推移发生大的波动,可用于变量监控。模型上线前做特征选择,剔除不稳定变量。
评价模型的稳定性:对数据集的预测/分类结果进行稳定性评价。模型上线部署后,可通过PSI曲线报表来观察模型的稳定性。
PSI计算方式:PSI=SUM(实际占比-预期占比)*ln(实际占比/预期占比)
PSI越小,代表稳定性越好。
(3)变量预测力:IV,通过IV筛选预测能力比较强的特征。IV计算可通过woe计算得到,IV越大,代表变量预测能力越强。
1.3.3特征选择的方式
过滤法:
1)缺失率>x,
2)方差波动<x,
3)psi>x,
4)corr>x,
5)woe单调,
6)iv<x
嵌入法:特征选择整合为模型的一部分,比如决策树
包装法:通过统计模型或者机器学习来选择特征
2 分箱
2.1 分箱概述
分箱的定义:将变量取值划分成不同的分组。
分箱的目的:适应缺失值和极端值,对于缺失值和极端值放在单独一个箱里。这样变量就会平滑一些,模型也更稳定。
常用分箱方法:等频/等距分箱,决策树/best-ks/卡方分箱
分箱的原则:组内差异小,组间差异大,每组分箱占比不小于5%,必须有好坏两种分类(对于二分类而言必须一个箱里好坏样本都有)。
2.2 分箱方法
等距分箱:每个箱的区间大小是相等的,每个箱内的数据量不一定相等。边界值:xmin+n*(Xmax-xmin)/10
等频分箱:分箱之后,每个箱内的数据量相等。
决策树分箱:单变量用树模型拟合目标变量,例如直接使用sklearn提供的决策树(是用cart决策树实现的),然后将内部节点的阈值作为分箱的切点。
Best-ks分箱:计算方式跟模型KS一样,只是这里的分箱不是模型评分,而是特征的分箱。具体的步骤如下:
a)将特征取值按从小到大排序,每一个值作为一个分箱
b)计算每一个分箱的KS值
c)找到最大KS值对应的分箱,即特征值,以该特征值作为划分依据将数据划分成左右两份数据SET1和SET2(低于该特征值以及高于该特征值)
d)按照第三步递归划分左右两个数据集,直到满足终止条件(一般以KS值低于某个阈值或分箱数达到预设的值)
举例:
注:bad占比=累计坏人数/sum(红框内)
good占比=累计好人数/sum(蓝框内)
ks=abs(good占比-bad占比)
卡方分箱:卡方分箱是依赖于卡方检验的分箱方法,在统计指标上选择卡方统计量(chi-Square)进行判别,分箱的基本思想是判断相邻的两个区间是否有分布差异,基于卡方统计量的结果进行自下而上的合并,直到满足分箱的限制条件为止。如果两个相邻的区间具有非常类似的分布,那么这两个区间可以合并,否则,他们应该分开。低卡方表明他们具有相似的类分布。
具体的步骤如下:
a)预先设定一个卡方的阈值
b)特征进行排序,每个取值属于一个区间
c)合并区间:计算每一对相邻区间的卡方值,将卡防止最小的一对区间合并。
举例:
【表2-卡方分箱案例】
注:
Bad期望=totalsum(bad)/sum(total)
good期望=totalsum(good)/sum(total)
相邻卡方:上下两组的卡方值相加。例如:年龄18/19组的相邻卡方3.4852=0+3.3913
相邻卡方越小,说明上下两组的分布越相似。
如下表18 19两个组,卡方值均为0,相邻卡卡方值=0+0=0,所以18 19两个组的分布一致。
【表3-低卡方案例】
卡方分箱的终止条件:
a)分箱个数:每次将样本中具有最小卡方值的区间与相邻的最小卡方区间进行合并,直到分箱个数达到限制条件为止,比如限制分箱个数为5。
b)卡方阈值:根据自由度和显著性水平得到对应的卡方阈值,如果分箱的各区间最小卡方值小于卡方阈值,则继续合并,直到最小卡方值超过设定阈值为止。卡方停止的阈值一般设置置信度为0.9、0.95、0.99,自由度是n-1,例如分箱数是5,那么自由度是4,参考下表,查看自由度是4、显著水平为0.05的卡方值:9.488,卡方值>9.488,则拒绝原假设,认为两个bin分布一样,否则接受原假设,认为两个bin一样(原假设:两个bin不分布一样)。
【表4-卡方分布的临界值表】
3 WOE计算
变量分完箱后,接下来要对每一箱计算woe和变量IV值。
3.1 WOE
WOE公式:ln(p/(1-p)),其中p为违约概率,违约件占比高于正常件时,woe为负值,绝对值越高,表示该组别好坏客户的区别程度越高,各组之间woe值差距尽可能拉开并呈现由低至高的趋势。当p>0.5时,说明违约概率较高,此时woe为正,反之为负。变量分箱后的Woe要求单调或者呈U型的分布。
案例1:WOE计算:
3.2 IV
IV 称为信息值,计算公式为sum((违约件占比-正常件占比))*woe,IV值表示变量预测能力的强度。
分组i的IV值计算:
总体的IV:
结合上面的公式,计算如下案例:
同时,我们需要woe具有单调性或者呈U型,否则的话,需要进行手动调整。举例如下:
4 建模
在做完如上准备工作后,接下来要开始建模。
逻辑回归公式:
5 模型评估
5.1 混淆矩阵
准确率(accuracy):正确预测的正负例样本与所有样本的壁纸,(A+D)/(A+B+C+D)。
正例覆盖率(sensitivity):正确预测的正例数在实际正例的比例,D/(B+D)
负例覆盖率(specificity):正确预测的负例数在实际负例的比例,A/(A+C)
正例命中率(precision):正确预测的正例数在预测正例数的比例,D/(C+D)
一般前三个越高,模型越理想。
5.2 Roc曲线与auc值
分类错误的正常记录比例=1-specificity,也叫误报率。Roc曲线通过在0-1之间改变创建混淆军阵的临界值,以纵轴敏感度sensitivity与横轴误报率(1-specificity)勾绘的图。auction的值等于曲线下的面积。
从AUC判断分类器(预测模型)优劣的标准
AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
总结:AUC值越大,正确率越高
5.3 KS曲线与ks值
Ks曲线:将样本数据,评分由低到高排序,累计坏占比和累计好占比的两条曲线的差,就是ks曲线。其中累计好分布,上凸,累计坏分布时下凹面积,所以ks曲线,是先增加后减少。
Ks越大越好,但过大要考虑过拟合。
KS值的取值范围是[0,1],一般习惯乘以100%。通常来说,KS越大,表明正负样本区分程度越好。KS的业务评价标准如下所示。由于理解因人而异,不一定完全合理,仅供参考。
Ks<0.2:区分能力弱
20<ks<=40:区分能力较好
40<Ks<=50:区分能力良好
50<Ks<60:区分能力很强
60<Ks<=75:区分能力非常强
Ks>75:区分能力高但疑似过拟合
6 分数校准
分数校准是将模型算出来的0-1的概率值转换成整数分数,分数越高表示客户风险越低(不同业务分数范围不同,解释存在差异)。
逻辑回归的线性公式:
该公式将自变量x与y之间的非线性关系转换为线性关系。
客户的分
定义
p/(1-p)表示坏好比,-b可以使得违约概率越低,分数越高:
odds>1,表示坏客户概率高于好客户概率
odds<1,表示坏客户概率低于好客户概率
odds=1,表示坏客户概率等于好客户概率
这里要做两个假设,将score公式中的A、B参数计算出来。
(1)在某个特征比例下的分数。比如,设定坏:好=1:60的时候,score=600。(这里可根据个人习惯设定比例和分数值)
(2)坏好比翻倍的分数。比如,坏:好=1:120时,分数为620,也就是比率翻倍后,分数增加20分。设为pdo。
解方程
解得:
因此:score = 481.89-28.85*ln(p/(1-p))
经过如上分数校准后,可将每一个违约概率对准到整数分数上。
接下来我们根据具体实例介绍分数校准:
【表5-分数校准案例】
如上表,,红色框表示回归模型算出来特征
因此变量v211的分数是492.2。该客户得分分数=所有变量分数的累加。
如上,逻辑回归评分卡建模的分箱板块、模型评估和分数校准内容已介绍完毕。
另外关于中小微财税票中的模型内容,有兴趣的童鞋可关注:
…
~原创文章