首先,特征的预处理主要有以下方式:
1、异常值和缺失值检测处理
2、归一化,不同自变量之间的数据范围不一致,导致比较复杂,两个维度范围相差的越大,梯度下降的越慢,还可能永远无法收敛,利用归一化加快收敛的速度。
归一化的方式
x-min/max-min
z-score=x–μ/σ
3、改变数据的分布
对于连续型的变量的原始分布严重不对称,会干扰模型的拟合。通过数据的转换使得成正态分布,提高模型的拟合能力,比如取 LOG,平方根,指数等。
4、离散化、交叉、衍生变量
离散化的意义主要有:
一方面可以减弱极端和异常值的影响;
另外一方面有利于对非线性的关系进行分析描述,使得自变量和因变量的关系变得清晰化,特征离散化引入非线性,加大拟合,给线性模型(如逻辑回归)增加非线性的能力
离散化的做法主要有:
分段,方式有很多,等频率、等间隔、、、
优化离散:把自变量和因变量联系综合考虑。切分点是导致目标变量出现明显变化的折点。常用的检验指标有卡方、信息增益、基尼系数、WOE(二元的目标变量)
衍生变量通过对原始数据进行加工,生成更加有商业意义的新的变量,更加适合后续的数据建模。
5、正则化、降维
为了增强模型的泛化能力,解决过拟合的问题,正则化(惩罚)和降维(减少样本的维度)是两种常用的方法。结构风险最小化,就是除了要最小化经验风险,降低训练的误差,还要降低模型复杂度,正则化一般是在损失函数后增加一个正则化项,对特征进行惩罚,来降低模型复杂度。逻辑回归在损失函数后增加L1、L2 ,增强模型的泛化能力,L1俗称lasso 回归,L2俗称岭回归,在极大似然估计后加上对权重的L1或者L2等罚项后会让信号弱的特征权重很小甚至为0。降维的方式有很多,比如互信息、卡方检验、信息增益、主题等等,在文本的关键词筛选中,还可以基于样本数据集,选择出现频次最多的关键词作为最终的特征集合。
接着我们说一下特征筛选的一些方法:
首先要基于业务进行理解,和业务进行讨论,尽可能的评估对因变量有影响的所有的自变量。
初步选出自变量后,需要进行特征选择,特征选择有以下几种方式:(Filter—考虑自变量和目标变量之间的关联,Wrapper-离线和在线评估是否增加一个特征,Embedded-利用学习器自身的筛选功能)
Filter方式,主要考虑的是自变量和目标变量之间的关联。
对于连续型的变量之间的相关性,可以采用相关系数来评估,比如皮尔逊相关系数。
对于类别型的可以采用假设检验的方式,比如卡方检验
对于连续型的自变量和二元的离散因变量,利用WOE,IV,通过WOE的变化来调整出最佳的分箱阀值,通过IV值,筛选出有较高预测价值的自变量。
R平方,一个变量的变化有百分之多少可以有另外一个变量来解释。
当然还有互信息、信息增益等等
还有就是需要避免自变量之间的共线性问题,所谓共线性,就是指自变量之间存在较强线性的关系。
Wrapper方式,主要考虑的是离线和在线评估是否增加一个特征,通过选定模型评估的指标(AUC、MAE、MSE)来评价对特征增加和去除后模型的好坏,通常有前向和后向两种特征选择方式。
Embedded方式,通过分类学习器本身对特征自动的进行刷选,比如逻辑回归中的L1 L2惩罚系数,决策树中的基于最大熵的信息增益选择特征。