为什么PCA降低了Logistic回归的性能?

Pra*_*rma 3 statistics machine-learning pca logistic-regression data-science

我进行Logistic回归在二元分类问题50000 X 370 dimensions.I的数据得到了约90%的准确率.但是当我做了数据PCA +物流,我的准确度降低到10%,我感到非常震惊地看到这个结果.任何人都可以解释可能出错的地方吗?

lej*_*lot 8

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

现在回到你的问题 - 我会说在你的情况下,问题是......你的代码中的一个错误.你不能将准确率显着降低到50%以下.10%的准确度意味着,使用与分类器相反的方法将得到90%(当它表示"真实"时回答"假" ,反之亦然).因此,即使PCA可能无法提供帮助(或者甚至可能会造成伤害,如上所述) - 在您的情况下,您的代码肯定是错误的.

  • 覆盖协方差的量与分类无关 - 正如答案中所述。再说一遍 - 你的结果看起来像是一个错误,在二元分类中获得低于 50% 的准确率几乎是不可能的。包括你的代码,提出单独的问题,我相信社区会告诉你你做错了什么。我最好的猜测(没有看到代码)是你独立地拟合 PCA 来训练和测试数据集,即使你应该只拟合训练,并使用拟合的数据集来转换测试 (2认同)