热线电话:13121318867

登录
2018-12-08 阅读量: 762
移除方差特征

VarianceThreshold 是特征选择的一个简单基本方法,它会移除所有那些方差不满足一些阈值的特征。默认情况下,它将会移除所有的零方差特征,即那些在所有的样本上的取值均不变的特征。

例如,假设我们有一个特征是布尔值的数据集,我们想要移除那些在整个数据集中特征值为0或者为1的比例超过80%的特征。布尔特征是伯努利( Bernoulli )随机变量,变量的方差为


![\mathrm{Var}[X] = p(1 - p)](img/468283fb7514d3373112cb7db7c43356.jpg)

因此,我们可以使用阈值 ``.8 * (1 - .8)``进行选择:

>>> from sklearn.feature_selection import VarianceThreshold
>>> X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]
>>> sel = VarianceThreshold(threshold=(.8 * (1 - .8)))
>>> sel.fit_transform(X)
array([[0, 1],
[1, 0],
[0, 0],
[1, 1],
[1, 0],
[1, 1]])

正如预期一样, VarianceThreshold 移除了第一列,它的值为 0 的概率为

p = 5/6 > .8

0.0000
6
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子