方差选择法当然是使用方差来衡量特征,处理的维度是特征维度,计算当前的特征的方差大小,根据设定的方差阈值选取出大于阈值的特征。

为什么方差可以用来选择特征?

理论上是认为在样本集上如果当前特征基本上都差异不大,因此可以认为这个特征对我们区分样本贡献不大,因此可以在构造特征过程中可以将其去掉。

sklearn 函数剖析

from sklearn.feature_selection import VarianceThresholdprint VarianceThreshold(threshold=2).fit_transform(irisdata.data)
截取部分结果[[ 1.4] [ 1.4] [ 1.3] [ 1.5] [ 1.4] [ 1.7] [ 1.4] [ 1.5]

对比没有使用方差选择法之前所有的特征

>>>print irisdata.feature_names['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
>>> print irisdata.data[[ 5.1  3.5  1.4  0.2] [ 4.9  3.   1.4  0.2] [ 4.7  3.2  1.3  0.2] [ 4.6  3.1  1.5  0.2] [ 5.   3.6  1.4  0.2] [ 5.4  3.9  1.7  0.4]

因此可以发现使用方差选择法选取了第三维特征,实际过程中方差阈值是可以根据需要调节。

函数的 api 如下

sklearn.feature_selection.VarianceThreshold(threshold=0.0) #默认阈值为 0 #方法函数与之前的预处理基本上差不多,主要还是使用 fit_transform 方法

Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明特征选择(1)-方差选择法

发表回复