变量筛选
用户的属性有千千万万个维度,而评分卡模型所选用的字段在30个以下,那么怎样挑选这些字段呢?
挑选入模变量需要考虑很多因素,比如:变量的预测能力,变量之间的线性相关性,变量的简单性(容易生成和使用),变量的强壮性(不容易被绕过),变量在业务上的可解释性(被挑战时可以解释的通)等等。
其中最主要和最直接的衡量标准是变量的预测能力和变量的线性相关性。
本文主要探讨基于变量预测能力的单变量筛选,变量两两相关性分析,变量的多重共线性分析。
1.单变量筛选
单变量的筛选基于变量预测能力,常用方法:
基于IV值的变量筛选
基于stepwise的变量筛选
基于特征重要度的变量筛选:RF, GBDT…
基于LASSO正则化的变量筛选
1.1基于单变量的IV值筛选
① 用IV值检验有效性
IV值(信息价值(information value)),是目前评分卡模型中筛选变量最常用的指标之一。
自变量的IV值越大,表示自变量的预测能力越强。类似的指标还有信息增益、基尼(gini)系数等。常用判断标准如下:
变量第i个分箱的IV值计算公式如下:
总的计算流程如下:
特征信息度IV的作用:
(1)高IV表示该特征和目标变量的关联度高
(2)不能盲目追求过高的IV,过高的IV,可能有潜在的风险
(3)特征分箱越细,IV越高
(4)实际应用过程,IV满足一个阈值,即可保留该变量,常用阈值如下:
- <=0.02: 没有预测性,不可用
- 0.02 to 0.1: 弱预测性
- 0.1 to 0.2: 有一定的预测性
- 0.2 +: 高预测性
(这里注意,一般银行里面数据质量比较好,可以设置IV的阈值为0.2,但是其他机构,数据,数据质量没有那么好,可以设置IV的阈值为0.1,0.02的比较低的阈值)
- 0.8+:IV超过0.8一般是不可取的
Q:举例说明,IV值是如何知道单变量筛选的
自变量为age,Y表示目标变量,其中bad代表坏客户,good代表好客户。我们希望能用自变量age来预测好坏客户的概率,以此来决定是否放贷。
从以上案例中我们可以分析出:
- 当前分箱中,坏客户占比越大,WOE值越大;
- 当前分箱中WOE的正负,由当前分箱中好坏客户比例,与样本整体好坏客户比例的大小关系决定。
· 当分箱的比例小于整体比例时,WOE为负 。例如年龄18-30分箱中:250/4750 <1000/9000,该分箱对应的WOE为负值;
· 当分箱的比例大于整体比例时,WOE为正。例如年龄45-55分箱中:250/1200 > 1000/9000, ,该分箱对应的WOE为正值;
· 当分箱的比例等于整体比例时,WOE为0。例如年龄30-45分箱中:300/2700 = 1000/9000 ,该分箱对应的WOE为0。 - WOE的取值范围是[-∞,+∞],当分箱中好坏客户比例等于整体好坏客户比例时,WOE为0。
- 对于变量的一个分箱,这个分组的好坏客户比例与整体好坏客户比例相差越大,IV值越大,否则,IV值越小。
- IV值的取值范围是[0,+∞),当分箱中只包含好客户或坏客户时,IV = +∞,当分箱中好坏客户比例等于整体好坏客户比例时,IV为0。
②连续变量bad rate呈单调性
③单一区间的占比不宜过高
1.2 基于特征重要性的变量筛选
基于特征重要度的变量筛选方法是目前机器学习最热门的方法之一,其原理主要是通过随机森林和GBDT等集成模型选取特征的重要度。
①随机森林计算特征重要性步骤:
1)对每一颗决策树,选择相应的袋外数据(OOB)计算袋外数据误差,记为errOOB1;
2)随机对袋外数据OOB所有样本的特征加入噪声干扰(随机的改变样本在该特征的值),再次计算袋外数据误差,记为errOOB2;
3)特征的重要度=∑▒〖(errOOB1-errOOB2)〗/N ,N 表示随机森林中决策树的个数;
4)当改变样本在该特征的值,若袋外数据准确率大幅度下降,则该特征对于样本的预测结果 有很大影响,说明特征的重要度比较高。
②GBDT计算特征重要性步骤:
特征 j 在单颗树中的重要度的如下:
其中,L 为树的叶子节点数量,L-1 为树的非叶子节点数量,V_t 是和节点 t 相关联的特征,i_t^2是节点 t 分裂之后平方误差的减少值。
特征j的全局重要度为特征j在单颗树中的重要度的平均值:
其中,M 是树的数量。
2.多变量分析
避免由于共线性,造成造模的不便
2.1 变量两两相关性分析
当相关性高时,只能保留一个:
- 选择IV高的
- 选择分箱均衡的
对于自变量X1,X2,如果存在常数 c,0,c1,c2 使得以下线性等式近似成立:
称自变量X_1,X_2如具有较强的线性相关性。
两变量间的线性相关性可以利用皮尔森相关系数来衡量。系数的取值为 [-1.0,1.0] ,相关系数越接近0的说明两变量线性相关性越弱,越接近1或-1两变量线性相关性越强。
当两变量间的相关系数大于阈值时(一般阈值设为 0.7 或 0.4),剔除IV值较低的变量,或分箱严重不均衡的变量。
2.2 变量的多重共线性分析
对于自变量X1,X2 …. Xn如果存在常数 c0,c1,c2 …. cn使得以下线性等式近似成立:
称自变量X1,X2…Xn如具有较强的线性相关性。
通常用 VIF 值来衡量一个变量和其他变量的多重共线性:
当某个变量的 VIF 大于阈值时(一般阈值设为10 或 7),需要逐一剔除解释变量。当剔除X_k发现VIF低于阈值,从X_i,X_k中剔除IV值较低的一个。
Q:为什么要进行相关性分析?
设想建立一个具有两变量X1和X2 的线性模型,真实模型是Y= X1+X2 。如果X1和X2 线性相关(比如说X1≈2X1),那么拟合模型= 3X2 , Y= 2(X1)- X2 。
Y= 51X1 - 99X2 。 的效果都一样好,理想状态下,系数权重会有无数种取法,使系数权重变得无法解释,导致变量的每个分段的得分也有无数种取法
即使不进行线性相关性分析也不会影响模型的整体性能,进行相关性分析只是为了让我们的模型更易于解释,保证不同的分箱的得分正确。
总结一下变量筛选的意义:
1 剔除跟目标变量不太相关的特征
2 消除由于线性相关的变量,避免特征冗余
3 减轻后期验证、部署、监控的负担
4 保证变量的可解释性