特征工程概略

并非原创,网上整理

特征工程简明图

特征工程概略_第1张图片
如上。特征处理是特征工程的核心部分,包括数据预处理、特征选择、降维等,通过sklearn的processing库来实现。

数据预处理

不属于同一量纲:无量纲化
信息冗余:进行区间离散
定性特征不能直接利用:采用哑编码
存在缺失值:对缺失值进行补充
信息利用率低:对定量变量进行多项式化,增加新的特征,可以达到非线性的结果。
无量纲化:即使不同规格的数据转换到同一规格,常用方法:标准化和区间缩放法。
标准化:其使用前提是特征值服从正态分布,从而标准化后,转化为标准正态分布。使用preproccessing库的StandardScaler类对数据进行标准化。
在这里插入图片描述

区间缩放法:利用边界信息,将取值区间缩放到某个区间范围,如[0,1],
在这里插入图片描述
使用preproccessing库的MinMaxScaler类对数据进行区间缩放。
区间离散:详见kaggle入门。
哑编码:同上
缺失值计算:同上
数据变换:常见的数据变换有基于多项式的、基于指数函数的、基于对数函数的。

特征选择

特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。
特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择。
Filter:过滤法,按照发散性或相关性对特征进行筛选,设定阈值或者待筛选阈值的个数,选择特征。
Wrapper:包装法,根据目标函数(通常是预测结果评分),每次选择若干特征,或排除若干特征。
Embedded:嵌入法(集成法),先使用机器学习的算法和模型进行训练,得到各个特征的权值系数,然后根据系数大小进行特征的选择。类似于Filter方法,但是是通过训练来确定特征的优劣。
使用sklearn中的feature_selection库来进行特征选择。
Filter:方差选择法(特征发散性)、相关系数法、卡方检验、互信息法
方差选择法:使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。使用feature_selection库的VarianceThreshold类来选择特征。(移除低方差的特征,只有离散型变量才可以使用,连续型变量需要离散化后才能使用,一般此方式筛选掉的特征很少,只能用来预处理)
相关系数法:使用相关系数法,先要计算各个特征对目标值的相关系数以及相关系数的p值。用feature_selection库的SelectKBest类结合相关系数来选择特征。(只对线性数据敏感,当数据是非线性时,即使输入与输出一一对应的,p值也不会很高)
卡方检验:检验定性自变量和定性因变量之间的相关性,(只给出有无相关性,是定性分析),用feature_selection库的SelectKBest类结合卡方检验来选择特征。
互信息法:经典的互信息也是定性分析自变量和因变量的相关性,公式如下,
在这里插入图片描述
为了处理定量数据,最大信息系数法被提出,使用feature_selection库的SelectKBest类结合最大信息系数法来选择特征。
距离相关系数:克服了p相关系数只能解决相关性的问题,此时为0将为独立。
基于模型的特征排序:基于你想要使用的机器学习方法,逐个输入特征进行排除。

Wrapper:递归特征消除法
递归特征消除法使用一个基模型来进行多轮训练,每轮训练之后,消除若干权值系数的特征,在基于新的特征集进行下一轮的训练。使用feature_selection库的RFE类来选择特征。
Embedded:基于惩罚项的特征选择法、基于树模型的特征选择方法.
基于惩罚项的特征选择法:使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维。使用feature_selection库的SelectFromModel类结合带L1惩罚项的逻辑回归模型
基于树模型的特征选择方法:树模型中GBDT也可用来作为基模型进行特征选择,使用feature_selection库的SelectFromModel类结合GBDT模型。

降维

主成分分析法:使用decomposition库的PCA类选择特征
线性判别分析法:使用lda库的LDA类选择特征

你可能感兴趣的:(特征工程)