如何判断 PCA 结果中没有模式?

机器算法验证 主成分分析
2022-03-19 10:09:09

我有一个包含 19 个变量的 1000 多个样本数据集。我的目标是根据其他 18 个变量(二进制和连续)预测二进制变量。我非常有信心 6 个预测变量与二元响应相关联,但是,我想进一步分析数据集并寻找我可能遗漏的其他关联或结构。为了做到这一点,我决定使用 PCA 和集群。

在标准化数据上运行 PCA 时,需要保留 11 个分量才能保留 85% 的方差。 在此处输入图像描述 通过绘制pairplots我得到这个: 在此处输入图像描述

我不确定接下来会发生什么......我在 pca 中没有看到明显的模式,我想知道这意味着什么,以及它是否可能是由于某些变量是二进制的事实引起的。通过运行具有 6 个集群的聚类算法,我得到以下结果,尽管有些斑点似乎很突出(黄色的),但这并不完全是一种改进。 在此处输入图像描述

正如您可能知道的那样,我不是 PCA 方面的专家,但看过一些教程以及它如何强大地一瞥高维空间中的结构。使用著名的 MNIST 数字(或 IRIS)数据集,它工作得很好。我的问题是:我现在应该怎么做才能使 PCA 更有意义?聚类似乎没有找到任何有用的东西,我怎么能知道 PCA 中没有模式,或者我接下来应该尝试什么来找到 PCA 数据中的模式?

3个回答

您解释的方差图告诉我 PCA 在这里毫无意义。11/18 是 61%,所以你需要 61% 的变量来解释 85% 的方差。在我看来,PCA 并非如此。当 18 的 3-5 个因子解释 95% 左右的方差时,我使用 PCA。

更新:查看由 PC 数量解释的累积方差百分比图。这是来自利率期限结构建模领域。您会看到 3 个分量如何解释超过 99% 的总方差。这可能看起来像是 PCA 广告的虚构示例 :) 然而,这是真实的。利率期限是如此相关,这就是为什么 PCA 在这个应用程序中非常自然。您只需处理 3 个组件,而不是处理几十个男高音。

在此处输入图像描述

如果您有样本并且只有预测变量,那么在模型中使用所有预测变量是非常合理的。在这种情况下,很可能不需要 PCA 步骤。N>1000p=19

如果您确信只有一部分变量是真正具有解释性的,那么使用稀疏回归模型(例如 Elastic Net)可以帮助您确定这一点。

此外,使用混合类型输入(二进制与实数、不同比例等,请参阅此处的 CV 问题)解释 PCA 结果并不是那么简单,除非有明确的理由,否则您可能希望避免这样做。

我将尽可能简洁地解释你的问题。让我知道它是否改变了你的意思。

我非常有信心,其中 6 个预测变量与二元响应相关 [但是] 我在 pca 中没有看到明显的模式

除了您的配对图中的一致性之外,我也没有看到任何“重要模式”。它们都只是大致圆形的斑点。我很好奇你期望看到什么。清楚地分开一些配对图的点簇?一些非常接近线性的情节?

您的 PCA 结果 - 斑点状配对图和前 11 个主成分中仅捕获 85% 的方差 - 并不排除您对 6 个变量足以进行二元响应预测的预感。

想象一下这些情况:

  1. 假设您的 PCA 结果显示 99% 的方差由 6 个主成分捕获。

    这似乎支持您对 6 个预测变量的预感——也许您可以在该 6 维空间中定义一个平面或某个其他曲面,这些曲面可以很好地对点进行分类,并且您可以将该曲面用作二元预测变量。这让我想到了第 2 名...

  2. 假设您的前 6 个主要成分具有如下所示的配对图

    配对图中的“模式”。

    但是让我们对任意二进制响应进行颜色编码

    “模式”没用。

    即使您设法捕获了 6 个变量中几乎所有 (99%) 的方差,您仍然不能保证有空间分离来预测您的二元响应。

您实际上可能需要几个数值阈值(可以在该 6 维空间中绘制为表面),并且一个点对您的二元分类的成员资格可能取决于该点与每个阈值的关系构成的复杂条件表达式。但这只是如何预测二元类的一个例子。有大量的数据结构和方法用于表示、训练和预测。 是一个预告片。去引用,

通常,解决机器学习问题最困难的部分可能是为工作找到合适的估算器。