4

我对 50000 X 370 维度的数据进行二元分类问题的 Logistic 回归。我得到了大约 90% 的准确率。但是当我对数据进行 PCA + Logistic 时,我的准确率降低到 10%,看到这个结果我感到非常震惊. 谁能解释可能出了什么问题?

4

2 回答 2

10

不能保证 PCA 会帮助或不会损害学习过程。特别是 - 如果您使用 PCA 来减少维度数量 - 您正在从数据中删除信息,因此一切都可能发生 - 如果删除的数据是多余的,如果它是问题的重要部分,您可能会获得更好的分数 -你会变得更糟。即使没有降维,但只是通过 PCA “旋转”输入空间既可以有益也可以损害该过程 - 必须记住,PCA 只是一种启发式,当涉及到监督学习时. PCA 的唯一保证是每个后续维度解释的方差会越来越少,并且它是解释前 K 维方差的最佳仿射变换。就这样。这可能与实际问题完全无关,因为 PCA 根本不考虑标签。给定任何数据集,PCA 将以仅取决于点位置的方式对其进行转换-因此对于某些标签(与数据的一般形状一致)-它可能会有所帮助,但对于许多其他标签(更复杂的标签模式)-它将破坏先前可检测到的关系。此外,由于 PCA 会导致某些尺度的变化,您可能需要分类器的不同超参数 - 例如 LR 的正则化强度。

现在回到你的问题 - 我会说在你的情况下问题是......你的代码中的一个错误。您不能将准确度显着降低到 50% 以下。10% 的准确率意味着,使用与您的分类器相反的分类器将给出 90%(当它说“真”时只回答“假”,反之亦然)。因此,即使 PCA 可能无济于事(或者甚至可能有害,如所述) - 在您的情况下,这肯定是您的代码中的错误。

于 2016-04-16T22:20:56.490 回答
0
  • PCA 在减少特征数量的同时不关心类标签。它唯一关心的是保留最大方差,这对于分类任务可能并不总是最优的。

  • 另一方面,L1-Reg 将那些与类标签没有太大相关性的特征推向零。因此,L1-Reg 努力减少特征数量,同时获得良好的分类性能。

  • 因此,L1-Regularization 应该优先于 PCA,以减少特征数量。为了避免欠拟合,我们总是可以进行超参数调整以找到最佳 lambda。

于 2020-07-24T07:31:18.473 回答