8、特征选择

特征选择的常用方法包括:

(1)过滤(Filter)

  • 去掉取值变化小的特征
  • 单变量特征选择 

(2)封装(Wrapper)

  • 递归特征消除

(3)嵌入(Embedding)

  • 使用SelectFromModel选择特征 
  • 将特征选择过程融入pipeline 

用过滤法对以下数据进行特征选择:

                             [[0,2,0,3],

                              [0,1,4,3],

                              [0,1,1,3]]

其中,

Variance Threshold(threshold =1.0)为方差选择法,通过sklearn.feature_selection库调用。

关于threshold

训练集方差低于此阈值的特征将被删除。默认值是保留所有方差为非零的特征,

即删除所有样本中具有相同值的特征。

代码如下:

1 from sklearn.feature_selection import VarianceThreshold
2 
3 X = [[0, 2, 0, 3],
4      [0, 1, 4, 3],
5      [0, 1, 1, 3]]
6 sel = VarianceThreshold(threshold=1.0)
7 sel.fit_transform(X)

 具体分析——方差选择法

  • 先计算各个特征的方差
1 import numpy as np
2 data = np.mat(X)
3 for i in range(4):
4     print("第 {0:d}".format(i) + " 列的方差值 {0:f}".format(np.var(data[:, i])))

  • 选择方差大于阈值(threshold =1.0)的特征,即只有第2列满足要求。

原文地址:https://www.cnblogs.com/lxml/p/12802956.html