前言
在评分卡建模的过程中,最重要的是样本和特征,最耗时间的也是样本抽取以及特征工程。特别是在小公司,从数据抽取、到数据清洗、再到变量衍生基本都是一个人来完成。当然小公司的维度少,相对应的变量也少。但是,随着业务的发展以及外部环境的变化,一直维持着之前的业务分析维度是很难跟上其他公司的脚步的。拓展维度最好的方法就是衍生变量,这也不仅仅对建模有帮助,对风险规则的制定也有益。
变量衍生也是基于已经有的数据进行挖掘,一般风控手上都会有申请表数据,征信数据、流水数据、运营商数据等等。
接下来讲讲自己工作上用到的一些衍生方法
1. 申请表变量交叉
主要用在申请表变量上,比如:年龄和收入进行交叉;或者婚姻与性别,收入与房产等等。这部分交叉数据也比较多,但更需要追求在业务上的解释。
2. 缺失值处理
如果有缺失值超过30%的变量,那缺失值处理就是最简单的衍生变量方法。缺失值处理也有很多种的方法,如:连续值:使用均值,中值,0来替换;类别型:使用最多的类、单独为一类来替换。每一种处理方式都能得出新一列变量。但是,在处理的时候,需要先去了解缺失值出现的原因。比如,申请表上工作年限字段出现空缺。可能是客户未填,那样是可以做处理的。也可能是申请表上已经取消了工作年限,那就没有必要做处理了,因为这个字段已经无法获取,可以剔除了。
3. 外部数据
一般在对这些数据进行衍生时,首先需要去熟悉原始数据,将原始数据中能进行分类的点和衍生维度记下来,最后加上统计方法。是先将想到的衍生点记下来,然后一个一个去枚举衍生,再做交叉衍生。
以运营商数据为例,
分类点: 通话时长,通话次数,主叫次数,联系人个数,话费等等。
衍生维度:近1月,近3月,白天,工作日等等。
统计方法:总和,最大值,平均值等等。
可以衍生出变量:近1月通话总时长,近一月平均每日通话时长,近1月工作日通话总时长。
交叉衍生:近1月工作日通话总时长占所有通话时长比例。
除了上述,还有一些其他的角度也可以丰富特征:
如:
近期性:最近一次贷款距今时长。
严重性:信用卡逾期次数,流水超月收入次数。
4.使用模型衍生,对变量进行转换。
如使用gbdt衍生变量,或者对变量做转换,如:log,平方等等。这里有些问题就是变量在业务上不好解释(如果是用在行为评分就无所谓了)和后期不好调整。
结束语
变量衍生的方法有很多种,这里也只是写一些常用的,如果有不足或问题,欢迎指出。最近在研究自动特征工程的一个python包,后面有空也更新一下。