【问题标题】:Principal Component Analysis with correlated features and outliers具有相关特征和异常值的主成分分析
【发布时间】:2018-03-26 17:48:34
【问题描述】:

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

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

2) 在执行 PCA 之前是否需要去除异常值?

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

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

【问题讨论】:

  • 可能更适合Data ScienceCross-Validated
  • @srinivas-suresh 我可以将此问题转移到数据科学或交叉验证吗?
  • 是的,标记问题并等待模组

标签: python scikit-learn statistics pca


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2016-01-16
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 2016-02-05
    • 2017-07-14
    • 2013-04-21
    • 2013-10-21
    相关资源
    最近更新 更多