《机器学习》将特征选择分为了三种方法:分别是过滤式(filter) 、包裹式(wrapper)和嵌入式(embedded)。下面依据sklearn中的特征选择文档来叙述特征选择的几个方法。
过滤式(filter)
这类方法先对数据机进行特征选择,然后再训练学习器,特征选择的过程与后续学习器无关。
1.移除低方差的特征:通过计算样本在不同特征上取值的方差来对特征经过过滤。
通过 sel = VarianceThreshold(threshold=(.8 * (1 - .8))) 设置一个阈值,
2. 单变量的特征选择是通过基于单变量的统计测试来选择最好的特征。
比如 SelectKBest
保留评分最高的 K 个特征
包裹式(wrapper)
这类方法选择直接把最终将要使用学习器的性能作为特征子集的评价准则。
在初始的特征集合上面进行训练,每一个特征的重要程度是通过coef_ 或 feature_importances_属性获得,然后移除最不重要的特征,重复这个步骤,直到最终达到所需要的特征数量为止。
嵌入式(embedded)
SelectFromModel
用来处理任何带有 coef_
或者 feature_importances_
属性的训练之后的评估器。 如果相关的coef_
或者 feature_importances_
属性值低于预先设置的阈值,这些特征将会被认为不重要并且移除掉。
Ref:机器学习之特征选择方法