派生特征的生成
0.前言
在数据挖掘中最重要的步骤应是数据清洗,通过非结构化数据转化得到结构化数据,以便之后进行训练模型和模型预测。但是在很多时候不能直接将初级特征直接用到模型中,如果根据已知的初级特征生成派生特征,会更好的提高模型参考效果。
一个特征可能在一个场景效果很好,但是当场景变换效果就会不尽如人意。所以可以总结为一点局限: 场景的变换会影响特征的使用效果。(比如是否针对此特征值进行相关操作,例如网购软件一般会对新用户提供优惠活动,但是传统商场一般并不会,两者对于新用户转化率这一特征的重要性是不同的。)
在开始,点出两个生成派生特征的常用技巧:
- 用数值特征替换类别特征(category value)
- 用目标变量的历史值作为特征
1.原理
假设我们手中已经有n个数据维度,现在将数据维度扩大到m维(n<m),得到许多派生特征值。如果映射方式是线性相关,那么很难得到有用得新得特征值(因为线性相关,所以新特征值可以被旧特征值表示),但是如果映射方式是非线性相关,则很有可能获得新的可利用特征值。
那么应该如何判断哪些特征值是有用的,哪些是无用的呢?这也就引申出另一个难点:通过算法进行分析得到由帮助的派生特征值。
2.
(后续会进行详细说明)
Ⅰ**正则化**
- 中心化【每个特征值减去均值,代表原始值是否高(低)于均值】
- 缩放【将中心化的特征值映射到(-1,1)的区间】
Ⅱ**标准化**
即将数值转化成百分位,例如数值高于70%的同类值。
Ⅲ**比率化**
有时候单个绝对值是意义不大的,需要将特征值与其他值得到比率,更有利于进行建模。
Ⅳ**类别特征的数值化**
抓取类别特征应当抓取和我们目标关联性强的特征,例如一个国家类别特征可以派生出人口、面积、降雨量等等特征,我们需要选择适合自己模型的数据。
一般常用one hot representation进行处理,但是这样往往会引起“维度爆炸”,即增加许多的无关维度,使模型复杂性上升。为此也需要后续使用降维的方法。
Ⅵ**分箱**
分箱的具体介绍在这篇文章里(会后写):分箱
Ⅶ**组合特征**
由两个特征组合在一起,表达原有特征不能表达的新信息。
3.其他
很多类型特征例如地理信息、工业信息是可以导出许多可用特征的。例如GEO编码这样的信息,可以导出许多地理方面信息。这方面是需要注意的。