标准化数据的低方差滤波器

low variance filter on normalized data

我有一个大约 76000 列的数据集。由于我无法手动检查每一列,因此我尝试删除不需要的列。我选择的方法之一是使用低方差过滤器。尽管如此,由于方差取决于数据的范围,我需要对其进行归一化(我注意到一些列 return 高方差,因为该值以百万为单位,而其他列的小数点 return 小方差.)

尽管如此,在我的所有列上使用 R 中的 scale 函数后,我注意到我所有列的方差现在都为 1。我现在真的很困惑如何实现低方差过滤器.我正在使用 this 网站进行低方差过滤(但我需要将 Python 代码翻译成 R)

P.S。我需要减少数据的维度,因为我的数据有大约 76,000 列,我无法 运行 线性回归或对它们进行任何测试。

您需要从 scale() 函数中删除缩放,即

df <- iris[1:50, -5]

sapply(data.frame(scale(df)), var)
#Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
#           1            1            1            1 

sapply(data.frame(scale(df, scale = FALSE)), var)
#Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
#  0.12424898   0.14368980   0.03015918   0.01110612