特征选择法之方差选择

from sklearn.feature_selection import  VarianceThreshold
X=[[100,1,2,3],
       [100,4,5,6],
       [100,7,8,9],
       [101,11,12,13]]
selector=VarianceThreshold(1)#方差为1
selector.fit(X)#训练
print("Variances is %s"%selector.variances_)
print("After transform is %s"%selector.transform(X))#筛选结果
print("The surport is %s"%selector.get_support(True))#保留下来哪些列
print("After reverse transform is %s"%selector.inverse_transform(selector.transform(X)))

使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。

方差过滤可以使用在巨大的稀疏矩阵中,稀疏矩阵中可以考虑将方差的过滤阈值设置为0,这样就会将稀疏矩阵中大量特征值为0的特征过滤掉

在我自己的数据集里特征比较少,才十几个,方差筛选后不到十个,结果在各种boost模型上都翻车了

posted @ 2021-02-07 22:18  小千北同学超爱写代码  阅读(1220)  评论(0编辑  收藏  举报