一、特征选择需注意两方面:
1.特征是否发散
- 选方差不为0,且大点的特征。
- 特征方差为0,不发散,即样本在该特征上无差异。这个特征对于区分样本无用。
- 方差:变量与均值的差的平方。
2.特征与目标的相关性
二、根据选择的形式可分为三种:
1.filter 过滤法
- 按照发散性或相关性对各个特征评分,设定阈值或待选择的阈值个数,选择特征。
2.wrapper 包装法
- 根据目标函数(通常是预测效果评分),每次选择或排除若干特征
3.Embedded 嵌入法
- 先训练,得到各个特征的权值系数,然后从大到小选择特征。类似filter,但通过训练来确定特征优劣
三、filter 过滤法
# 1 filter之VarianceThreshold
# 方差阈值选择法 : 移除不满足阈值的特征
# X有3列,即三种特征,选择:【值为0,1超过80%的特征】
from sklearn.feature_selection.variance_threshold import VarianceThreshold
X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]
self = VarianceThreshold(threshold=(.8 * (1 - .8)))
print(self.fit_transform(X)) # 移除第一列 0占5/6
# 2 Univariate feature selection
# 单变量特征选择:基于单变量的统计测试来选择
#