有人能帮我编写一段Python代码,用于从数据框中移除方差为零的变量吗?
回答:
移除低方差特征
X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]
这里有3个布尔特征,每个特征有6个实例。假设我们希望移除在至少80%的实例中是常量的特征。一些概率计算显示,这些特征需要具有低于0.8 * (1 – 0.8)的方差。因此,我们可以使用 参考:Scikit链接
from sklearn.feature_selection import VarianceThresholdsel = VarianceThreshold(threshold=(.8 * (1 - .8))) sel.fit_transform(X)
输出将是:
array([[0, 1], [1, 0], [0, 0], [1, 1], [1, 0], [1, 1]])