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列满足要求。