【问题标题】:PCA vs averaging columnsPCA 与平均列
【发布时间】:2019-08-03 04:42:19
【问题描述】:
我有一个包含 300 个浮点类型列和 1 个整数列的数据框,它是因变量。 300 列分为 3 种:
1.A 类:第 1 至 100 列
2.B 类:第 101 至 200 列
3.种类 C:第 201 至 300 列
我想减少维度的数量。我应该平均每种类型的值并聚合成 3 列(每种类型一个),还是应该执行一些降维技术,如 PCA?这样做的理由是什么?
【问题讨论】:
标签:
machine-learning
pca
dimensionality-reduction
【解决方案1】:
选项 1:
如果你有大量的训练数据(比如超过 5*300 的训练样本),不要进行降维操作
选项 2:
既然您知道有 3 种数据,请分别运行这三种数据的 PCA,并为每种数据获取 2 个特征。即
f1, f2 = PCA(kind A columns)
f3, f4 = PCA(kind B columns)
f5, f6 = PCA(kind C columns)
train(f1, f2, f3, f4, f5, f6)
选项 3
在所有列上运行 PCA,只取保留 90+ 方差的列数
不要平均,平均是不好的。但是,如果您真的想进行平均,并且如果您确实知道某些功能很重要,那么请进行加权平均。一般来说,为降维对特征进行平均是一个非常糟糕的主意。
【解决方案2】:
PCA 将仅考虑与输出/结果具有最高相关性的行。因此,并非所有行都将被视为确定输出的过程的一部分。
因此,如果您进行平均会更好,因为它将考虑所有行并确定它们的输出。
因为你有更多的特征,所以如果所有的特征都用于确定输出会更好。