【问题标题】:low variance filter on normalized data归一化数据的低方差过滤器
【发布时间】:2021-12-01 15:17:31
【问题描述】:

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

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

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

【问题讨论】:

  • 查看?scale 帮助页面。默认设置是使每列居中,然后将值除以其标准差。不知道你在运行 scale 后期待什么。

标签: r variance dimensionality-reduction


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-06-30
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2014-02-09
    • 2018-10-30
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多