具有相关特征和异常值的主成分分析

问题描述 投票:0回答:2

我正在使用 Python 3 中的 scikit learn 对形状为 300,1500 的数据集执行 PCA。 我在 scikit learn 中的 PCA 实现和普遍接受的方法方面有以下问题。

1)在进行 PCA 之前,我是否删除高度相关的列?我有 67 列相关性 > 0.9。 PCA 是否会自动处理这种相关性,即忽略它们?

2) 在执行 PCA 之前我需要删除异常值吗?

3)如果我必须删除异常值,如何最好地解决这个问题。当我尝试删除异常值(z 分数 >3)时,对每列使用 z 分数,我只剩下 15 个观察值。这似乎是错误的做法。

4)最后是否存在理想的累积解释方差量,我应该用它来选择 P 分量。在这种情况下,大约 150 个组件给了我 90% 的解释方差

python scikit-learn statistics pca
2个回答
1
投票

关于使用 PCA,PCA 将发现数据中方差最大的轴。因此:

  1. 不,您不需要删除相关特征。

  2. 您不需要因为与 PCA 相关的任何先验原因而删除异常值。也就是说,如果您认为它们可能会为了分析或预测而操纵您的结果,您可以考虑删除它们,尽管我认为它们本身对 PCA 来说不是问题。

  3. 这可能不是正确的方法。首先,首先可视化您的数据并寻找异常值。另外,我不会假设数据的分布并对其应用基本的 z 分数。在谷歌上搜索有关删除异常值的标准在这里会很有用。

  4. 人们在 PCA 中使用了各种截止值。 99% 可能很常见,尽管我不知道是否有一个硬性规定。如果您的目标是预测,则可能需要在预测速度和准确性之间进行权衡。您需要找到适合您需求的截止点。


0
投票

以防其他人在没有看到statsexchange

上相关列的答案的情况下登陆这里

我强烈建议阅读答案,但作为一名博士,我的结论是:

我们现在可以看到,丢弃被认为测量变量集合的相同潜在(但“潜在”)方面的变量可能是有价值的,因为包含近乎冗余的变量可能会导致 PCA 过分强调它们的贡献。

这样的过程在数学上没有什么正确(或错误)的;这是基于分析目标和数据知识的判断。但应该非常清楚的是,搁置已知与其他变量密切相关的变量可能会对 PCA 结果产生重大影响。

© www.soinside.com 2019 - 2024. All rights reserved.