你是不是觉得你的变量太少?
The following article is from 屁屁的sas数据分析 Author 屁屁的铭仔的数据之路
今天我们来聊聊建模中最让人又爱又恨的衍生变量吧。
因为我个人认为建模,拟合模型并不是重点,最重点是你能有多少底层变量,以及你能把数据处理到噪声少掉多少,噪声数据影响整体数据的准确性,衍生变量影响你数据深挖的程度。
实际上不论是建模还是策略,对于客户维度的挖掘一直都是主要的工作,如果一直按照业务经验去定客户维度,那么风控系统的客户维度就不会增加,你就客户的精准定位就没有其他公司的全面。
1.缺失变量衍生
这是一个最简单的衍生变量的思路。举个例子,就是你现在有个变量是缺失了大概30-50%,你觉得尽管我做了缺失值填补,或者单独分为一组,但是我觉得会不会缺失和不缺失有比较大的特征,所以这时候你可以衍生一个变量叫,职业是否缺失,但是这里我要加一个附加条件哈,例如这个职业是否缺失,是在什么前提下可以衍生的,是在你们的申请资料提交中,职业他是一个可选项,可填可不填,那么这时候你去衍生这个变量是有一定的业务意义的。氮素,我并不是说就只有这种情况可以衍生这类变量,而是说你在衍生的时候最好清楚他的口径,你不要等下进入了模型之后,发现这个变量只是有些数据是因为系统迭代的时候缺失了,或者之前没有这个选项造成了。这只是个例子,就是希望你们多关于一下数据的意义。
2.流水数据
流水数据我一般会以3个步骤进行衍生。
第一步,我会将一些标签类数据做清洗,例如我们的运营商数据中,电话标签,这个电话是酒店的电话,外卖电话、快递电话之类,我会把这个标签清洗之后汇总,汇总的可能就是以生活服务类,酒店会所类,贷款业务类等等。
第二步,那就是我将一些时间的节点清洗,一般有时间节点,我会看下这类电话是在那个时间段拨打的,没有时间点,有日期,那我会清洗出上旬中旬下旬,上班日周末、最近一个月,最近两个月这类时间标签.
第三步,就是合并维度,合并维度之前我会有一个总的单标签的统计变量,例如酒店会所类的全部拨打次数这类,接下来才是标签与时间维度或者拨打电话类型合并,我举个例子,例如:最近一个月贷款电话次数。那再上去,就是标签和电话类型以及时间合并,例如:最近一个月贷款电话被叫次数。
以上是处理的数据的三部曲,接下来我们手下流水数据的几种思路。
(1)就第三步说的比较单一的维度组合,这里就不多讲,因为一般大家都知道。
(2)流水数据取统计量。例如,平均通话时间,每月平均号码数,最长的通话时间之类的。那更上一层楼就是,每个拨打电话次数的标准差,方差,psi之类的。这里我要特别提醒,就是你这里在取的时候,你要先想好,就是你的标准差是取6个月,那么你那些没有6个月的客户,你要怎么处理,置零或者置空的话你要先想好哦。
(3)占比类。例如,最近一个月占最近6个月的通话号码个数占比,主叫电话占比。
你还可以通过自己观察一个客户的行为,定义一些标签,我举个例子哈,就是我发现与自己亲近的人拨打的电话时间大概都会超过三分钟,那么这时候你可以自定义例如,超过三分钟的电话个数这类变量。又或者你发现经常去东莞的人不要好,你可以定义一个,例如:去东莞的次数。
3.组合变量
说到组合变量,其实这个谁都会,但是我想告诉你们一个比较贱的方法。其实当你的底层变量比较多的时候,组合变量一个一个去写是很浪费时间,而且是很枯燥的,所以我建议呢,你可以尝试用决策树帮你组合(这里必须说,这不是一定好用的方法,只是建议!)。
思路是这样子的:1.你可以先将变量降维,proc varclus变量分区之后,分区之后,你可以防止变量共线性。2.随机抽取两个变量进入决策树(这两个变量可以先粗分组也可以不分组,看你自己。)3.树的深度大概设置在3以内,最小的分支的数量设置在总体样本的5%-10%。4.这时候让决策树批量跑,你去挑选出那种组数少,但是效果不错的组合变量好的出来。这里为什么提说是组数少呢,是我认为组数多的。代表变量的特征并不能很好的区分客户,那么分了多组之后就容易过拟合,就不太建议了。
那么这只是组合变量的一种,还有另外一种是两两变量四则运算那种,这种其实也可以做成批量化的代码,举个例子哈:就是例如,最近三个月的贷款笔数/最近三个月的贷款审批查询次数。我这个人喜欢什么都写成批量化处理的东西,然后我看跑出来的数据集再去挑,就好过我自己在哪里意淫到底什么组合好,数据会告诉你的。
强调一下,组合变量一定要业务逻辑合理。
4.交叉验证变量
例如客户填写的婚姻情况是否与征信报告报告中一致这类。
5.各种转化
这种是一类迫不得已的做法,那就是把变量转化,例如log转化,指数转化,加平方。我个人不太喜欢这类做法,但是有时候用一些集成算法,这类变量会有些效果。
6.小模型
你实在觉得你的变量太多了,但是都不舍得扔掉,那就分区做小模型,把一些可以互相作用的变量做成小模型,小模型的意思,就是几个变量通过模型拟合成为一个变量。这类做法就是要是后期调整不好调整。
来源|屁屁的sas数据分析
更多精彩,戳这里: