模型界,有一句话叫数据和特征决定了机器学习的上限。
关于这句我本人是有以下理解:
1.我们做模型的目的就是要筛出最有区分度和对不同层次的客群进行分层。但只要有一个数据变量,只要对这个变量做分析就能得到想要这部分客群,我们还需要这么辛苦做一个模型吗?
2.正因为模型里用的都是一些相关的弱变量、弱特征,所我们才需要把这么多的数据糅合在一起,整出一个模型,于是我们也同样把这个模型看成是集成了所有优点能辨别客群特征的一个变量。然后再用这个最强的模型变量去给客群做分析。我把他称为模型强变量。
正因为数据跟特征工程很重要,所以也正想说说这两个维度,今天这篇先来讲一下特征的处理。
常涉及到的一些特征方面的处理:
在评分卡模型的开发中,特征构造是极其关键的步骤,其作用是将分散在不同字段中的信息加以组合,从中提炼出有价值的、可用的信息从而迚行评分卡模型的开发。
常用的特征构方法也非常容易理解不外乎是常用的加减乘除,但是这一部分需要结合到业务逻辑里理解清楚,这一部分都是大家一点就会了,特征方法如下有如下所示:
作差:最近这笔贷款距上次的贷款有多长的时间差
求和:例如过去一段时间内的贷款次数的总和
比例:例如申请贷款的月还款本息不月收入的占比
频率:例如过去一段时间内的消费次数
平均:例如过去一段时间内平均每次信用卡取现额度
比如之前做过的一个还款期数占比总合同期数的变量就是挺好用的变量,还记得之前文章里那个变量:
Period_percent
已还期数占比的占比,这个变量整理出来也很有含义,我在做完这个变量的分组后,会发现这个变量的woe值是一个V形的走势。整理好的woe的曲线走势。
有兴趣的详情可以了解这篇文章:催收评分卡(三)迁徙率模型_中(源数据+含代码)
还有一些方法是在上面这些=方法的基础上进行变换,如以下这些特殊的处理方法:
时间切片法:
由于绝大部分观测样本的时间跨度在半年和1年内,所以我们选取半年内的时间切片,考虑以月为单位的时间切片,则可以衍生出30天、60天、90天、120天、150天、180天等多种选择。
比如,当时在开发催收评分卡的时候,可以考虑构造如下计算逻辑:
时间切片内的逾期的次数
时间切片内下P的个数
时间切片内的联系的次数
不同的时间切片不同的计算逻辑的交互可以产生多个特征。当然这些特征往往存在一定程度上的线性相关性。在接下来的多变量分析中,需要消除线性相关性对模型产生的影响。
特征组合法:
常见的组合方法,是将一些常用的方法进行组合衍生,比如用学历跟婚姻状态进行组合,我们有将根据具体的特征组合成以下类似的形式,如
大专未婚、大专未婚大专离异,
本科未婚、本科已婚、本科离异
机器学习里筛出来的特征:
目前在工业界似乎有这个声音,深度学习已经逐渐开始替代人去拍脑袋琢磨特征工程了。
因为在大数据的基调下,动辄成千上万条的特征变量,如果最后只是用简单的逻辑回归出来的结果,筛出来的变量不多,最后很容易造成信息损失过大。于是普遍采用最前沿的算法,如kernel trick或神经网络自动生成。不过这些算法生成之前,都是需要在根据业务知识人工建立feature的基础上衍生的。不然一旦进行这样的算法法,解释性就更低。虽然本来解释性跟这样的算法就是两种不同的维度算法。
之前使用SVM去筛选多变量特征一样,很多变量映射到同一个平面之后,原先的数据的业务逻辑已经不存在了。从目前很多建模大赛给与的数据源来看,主办方也很喜欢用这样的方法进行数据处理,把许多rawdata都进行了脱敏处理。
但是从目前来看,这样的一类特征目前是应用在不需要解释性特别强的模型场景里,比如反欺诈模型里。
当然就像前面所说,这样的方法做出来的特征衍生解释性稍差点,不过如果特征好用,区分度在训练集跟验证集在都非常明显,也可以入模。
当然这样的方法做出来的特征衍生解释性稍差点,不过如果特征好用,区分度在训练集跟验证集在都非常明显,也可以入模,特使是在某些不需要解释性而是要去准确性的模型上。
关于特征工程更多的资料干货,欢迎加下官微交流下啦...


雷达卡




京公网安备 11010802022788号







