标准化数据的低方差滤波器
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
我有一个大约 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