特征工程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了特征工程相关的知识,希望对你有一定的参考价值。
参考技术A1.数据预处理: 标准化;归一化;定量特征二值化;定性特征编码哑变量;缺失值处理(均值/众数/中位数,决策树不用);数据变换(针对多项式)
2.特征选择:
3.降维 :PCA和LDA
线性函数归一化(min-max scaling)、零均值归一化(Z-score Normalization)
对于梯度下降,如果特征的取值范围不同,学习速率相同,则更新速度会有差别。如果将不同特征归一化到相同的数值区间,更新速度变得一样,容易更快地通过梯度下降找到最优解。
通过梯度下降法求解的模型是需要归一化的。但是对决策树模型则不适用。决策树在进行节点分裂的时候主要依据数据集 D 关于特征 x 的信息增益比,信息增益比与特征是否经过归一化是无关的。因为归一化不会改变样本在特征 x 上的信息增益。
如线性函数Ax+By+b=C,在用梯度下降求解最优解过程中,对A求偏导每次变化是和X成线性的,对B求偏导是和y成线性的,这就造成了两个维度下降速度不一致。可能导致某一个维度由于数量级较大已经到达最低点,而其他维度y由于数量级的差异未到达最低点,先到达的维度需要等待其他维度,走出的曲线是震荡性较大图像。
在决策树算法中,建模过程是逐步递增的,每次拆分只有一个变量参与,这种建模机制含有抗多重共线性干扰的功能。
朴素贝叶斯算法中,直接假定变量之间是相互独立的,表面上看,也没有多重共线性的问题
最小二乘法的解满足正定方程: ,此时
当方程有共线性问题时,X的最小特征值非常小?,相应的,上述的条件数非常大。实际应用中,一般如果k<100,则认为多重共线性的程度很小。如果100<k<1000,认为存在一般程度上的多重共线性问题,如果k>1000,则认为存在严重的多重共线性问题。因为条件数数很大的时候,矩阵的逆的数值计算也是非常不准确的。
PCA: 考虑用降维的方法将一些特别相关的特征组合成一个特征,例如PCA降维方法。采用主成分提取了新的变量之后,往往这些变量的组内差异小而组间差异大,起到了消除共线性的效果
岭回归: 在损失函数(平方误差损失函数)中加入了L2惩罚项,这样参数的方差不会过大,且随着惩罚项系数C的增加,共线性的影响也越来越小。为什么岭回归能解决共线性的问题?因为L2方程的解为: ,当我们加上一个单位矩阵后,奇异性(不可逆)问题就没有啦
以上是特征共线性对于线性回归模型的影响,而特征共线性对于决策树是没有影响的,朴素贝叶斯模型前提假设了特征间独立,那么对于LR模型特征共线性有什么影响?或者说把高度相关的特征去掉会有什么好处
1.去掉高度相关的特征可能会让模型的可解释性更好
2.可以提高模型训练的速度
3.如果用lgb进行特征选择的时候,共线性是一个非常致命的问题,共线性会导致一些相关性高但重要性高的特征在特征选择的过程中被排除掉,比如三个相关性高的特征,由于选了其中一个,另外的就无法代来特征收益了
4.相关性高的特征可能会放大噪声的影响,多个特征平分了这类特征对模型的贡献,导致了模型更加敏感,泛化误差增大
删除、众数/中位数/平均数,k近邻
决策树处理缺失值的方法:
1.如何在属性缺失的情况下进行划分属性的选择
2.给定划分属性,如果样本在该属性上是缺失的,那么如何对这个样本进行选择
对于第一个问题,可以用在属性a上没有缺失值的样本子集来计算信息增益或其他指标,并且给其一个权重
对于第二个问题,如果样本x在划分属性a上的取值未知,则将x同时划入所有子节点,只不过这时候要调整该样本的权重。直观的看就是让同一个样本以不同的概率划入到不同的子节点中去
以上是关于特征工程的主要内容,如果未能解决你的问题,请参考以下文章