分析流程是门工艺
实际工作中,清晰的数据分析流程是保证模型质量的重要手段,属于工艺的范畴。数据分析流程没有统一固定的标准答案,只有业界领先的经验,需要结合实际业务的特点进行不断调整与优化。
建模总体需排除异常
构建信用评分模型前,需明确用于建模的客户或申请者必须是日常审批过程中接触到的,入模样本总体需排除如下三类人群:
- 异常行为:如销户、按条例明确拒绝的客户;
- 特殊账户:出国、卡丢失或失窃、死亡、未成年人、员工账户、VIP账户;
- 其他建模对象:欺诈客户、主动销户者。
其中,欺诈客户可以构建反欺诈评分模型去识别预测,主动销户者可以构建流失评分模型去识别预测。同时,对于预测建模,目标变量的定义非常重要,Y的定义方式是对建模结果影响最大的一步。
最好别让字符型变量入模
有些SAS过程不能直接处理字符型变量,即便可以处理,过程也比较繁琐,因此在构建模型之前,最好将字符型变量转换成数值型变量,例如性别F/M重新编码为0/1的形式,学历等级小学、中学、高中重新编码为1/2/3的形式。
一般,我的处理方法为:利用数据字典与宏变量数组相结合的方式,自动化的对字符变量进行重编码。SAS构建模型时经常会用到样本列的信息,所以利用sashelp逻辑库中的Vcolumn真的非常重要。
样本抽样时的坑
信用评分模型建模时,某些情况下想要预测的事件发生的比例非常低,即坏样本数量过低,如直邮营销中潜在客户的响应率、企业贷款违约率、电信客户流失率等等,用这样的数据样本构建建模,模型误差与整体计算都会受到影响,即便模型训练时能够做到将总体的预测准确率优化的很好,训练出的模型也是失败的。
举例来说,某公司提供的数据样本中,坏账率仅有2%,建模时如果只是简单的将所有潜在客户都判断为好客户,即便能够达到98%的总体准确率,模型也是没有任何实际意义的。针对这种坏账率特别低的情况,我一般会使用过抽样的方法去解决:
可以将所有的坏样本放入建模数据集,而对于好样本只随机抽取一部分放入建模数据集,以此来提升坏样本的浓度,使得建模样本中好坏样本达到一定比例,一般该比例调整为1:1最好,在此基础上再去构建模型。
当然也会出现极其特殊的情况,实在没有办法进行样本的调整,例如公司刚起步,欺诈样本实在过少,坏账率确实就是全体样本的万分之一,此时我会使用另一种建模流程,即三步法建模。
所谓三步法,指的是在定义因变量0-1的时候定性与定量相结合、去逐步构建三个模型,从而找出比较少的那几个“坏”,即:
- 第一步:建模去找肯定是“好”的样本,我习惯使用决策树;
- 第二步:建模去找很有可能是“好”的样本,我习惯使用逻辑回归;
- 第三步:精确建模型区分出好坏样本,我习惯使用神经网络。
这种方法前两次建模是模糊的,第三次建模是精确的,做到这样三步很不容易,麻烦的地方在于前两次建模必须考虑Y如何去定义,这是比较困难的。
变量粗筛的方法很多
建模时变量粗筛的目的是滤除与被解释变量Y相关性不大的解释变量X,降低后续工作量,最终入模的变量大概20个左右,一般不会太多。
变量粗筛可以从几个角度入手,可以从自变量与因变量间的相关系数角度去筛选,也可以借助一些算法进行筛选。实际工作中,决策树与随机森林我用的较多,其实决策树单独使用的机会不大,但是作为辅助还是非常不错的选择。
日常样本积累时的注意点
日常工作中常常会涉及到样本的累积,样本累积便涉及到了样本维护的问题,一般样本维护应遵循三个基本原则:
- 维护的数据越少越好,要对存储的内容负责,有选择的存;
- 功能单一的数据单独存储,表的分类尽可能丰富,每张表中数据功能力求相似;
- 为了方便修改调整,某一个变量能且只能存在一张表中。
数据样本存储的形式基本为:
- 变量固定、观测也固定,以表的形式进行存储;
- 变量固定、观测动态,以视图的形式进行存储;
- 变量与观测皆为动态,以临时查询的方式进行存储。