其他分享
首页 > 其他分享> > 特征选择1:过滤法1~方差过滤

特征选择1:过滤法1~方差过滤

作者:互联网

概述:

1.过滤法
全部特征->最佳特征子集->算法->模型评估

Filter过滤

1.方差过滤

(1).一个特征本身的方差很小,就表示样本在这个特征上基本没有差异,没有区分的作用。
优先消除方差为0的特征。

(2)默认VarianceThreshold()中为方差为0

from sklearn.feature_selection import VarianceThreshold
selector = VarianceThreshold()
#实例化,不填参数默认方差为0

X_var0 = selector.fit_transform(X)
#or X_var0 = VairanceThreshold.fit_transform(X)
#获取删除不合格特征之后的新特征矩阵

(42000, 708)

(3)我们也可以直接告诉Variance Threshod我们需要留下多少特征他会帮我们处理。

import numpy as np
np.median(X.var().values)

1352.286703180131

我们需要留下一半的特征,所以取方差的中位数

X_fsvar = VarianceThreshold(np.median(X.var().values)).fit_transform(X)
#VarianceThreshold()填阈值
X_fsvar

(42000, 392)

(4)当特征是二分类时,特征的取值就是伯努利随机变量,这些变量的方差可以计算为:

Var[X] = p(1-p)

#若特征是伯努利随机变量,假设p=0.8,即二分类特征中某种分类占到80%以上的时候删除特征,中X是特征矩阵。
X_bvar = VarianceThreshold(0.8 * (1 - 0.8)).fit_transform(X)
X_bvar.shape

(5)方差过滤对模型的影响

总结一下,如果过滤掉较多特征如果编号说明是噪音,而少的话影响不大。

被我们过滤掉的特征中有很多都有有效特征,那我们就放弃过滤,使用其他手段来进行特征选择。

只会使用阈值为0或者阈值很小的方差过滤,来为我们优先消除一些明显用不到的特征。

标签:过滤法,方差,特征选择,VarianceThreshold,特征,过滤,随机,决策树
来源: https://blog.csdn.net/weixin_51871375/article/details/120763307