r语言 - 归一化数据的低方差滤波器



我有一个大约76000列的数据集。由于我无法手工检查每一列,所以我尽量删除不必要的列。我选择的方法之一是使用低方差滤波器。尽管如此,由于方差取决于数据的范围,我需要将其规范化(我注意到一些列返回高方差,因为值以百万为单位,而其他以小数点为单位的列返回小方差)

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

注:我需要降低数据的维度,因为我的数据有大约76000列,我无法对它们进行线性回归或任何测试。

您需要从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 

最新更新