2. 特征工程之特征选择

1. 特征工程之特征预处理

2. 特征工程之特征选择

1. 前言

当数据预处理完成后,我们需要选择有意义的特征输入机器学习的算法和模型进行训练。

2. 特征选择的方法

通常来说,从两个方面考虑来选择特征:

  • 特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。
  • 特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择。除方差法外,本文介绍的其他方法均从相关性考虑。

特征选择方法有很多,一般分为三类:

  1. 过滤法(Filter)比较简单,它按照特征的发散性或者相关性指标对各个特征进行评分,设定评分阈值或者待选择阈值的个数,选择合适特征。上面我们提到的方差筛选就是过滤法的一种。
  2. 包装法(Wrapper),根据目标函数,通常是预测效果评分,每次选择部分特征,或者排除部分特征。
  3. 集成法(Embedded),它先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据权值系数从大到小来选择特征。

2.1 Filter

2.1.1 方差选择法

使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。使用feature_selection库的VarianceThreshold类来选择特征

2.1.2 相关系数法

使用相关系数法,先要计算各个特征对目标值的相关系数以及相关系数的P值。用feature_selection库的SelectKBest类结合相关系数来选择特征

2.1.3 卡方检验

经典的卡方检验是检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,构建统计量:

\[{\chi}^2=\sum\frac{(A-E)^2}{E} \]

2.1.4 互信息法

经典的互信息也是评价定性自变量对定性因变量的相关性的。

\[I(X,Y)=∫_X∫_YP(X,Y)log\frac{P(X,Y)}{P(X)P(Y)} \]

2.2 Wrapper

2.2.1 递归特征消除法

递归消除特征法使用一个基模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。

2.3 Embedded

2.3.1 基于惩罚项的特征选择法

使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维。使用feature_selection库的SelectFromModel类结合带L1惩罚项的逻辑回归模型

2.3.2 基于树模型的特征选择法

树模型中GBDT也可用来作为基模型进行特征选择,使用feature_selection库的SelectFromModel类结合GBDT模型

3. 总结

特征选择是在通过各种维度(例如上文提到的方差维度、互信息维度、递归特征等)去衡量所有特征,然后在各个维度下,对评分差的一些特征加上专家人员的判断,来决定是否应该删除。通过一层层的筛选,最后剩下的特征在某些方面可能会对模型有特征作用。

posted @ 2018-11-16 10:17  hyc339408769  阅读(3480)  评论(0编辑  收藏  举报