在将数据发送到SVM之前应用PCA

R.a*_*ani 1 machine-learning

在对数据应用SVM之前,我想通过PCA减小其尺寸。我应该分开Train dataTest data然后分别对它们分别应用PCA还是对组合在一起的两组应用PCA,然后将它们分开?

lej*_*lot 5

实际上,两个提供的答案仅部分正确。这里的关键部分是您要解决的确切问题什么。有两种可能的基本设置可供考虑,并且在某些假设下均有效。

情况1

您有一些数据(您将这些数据拆分以进行训练和测试),将来您将获得来自同一分布的更多数据

如果是这种情况,则应将PCA拟合到火车数据上,然后将SVM拟合到其投影上,并且为了进行测试,只需应用已经拟合的PCA,然后再应用已经拟合的SVM,并对即将出现的新数据进行完全相同的操作。这样,您的测试错误(在某些“大小假设”下应接近您的预期错误)。

情况二

你有一些数据(你分裂训练和测试),并在未来,你会获得未标记数据的一大块,你将能够适合你的模型,然后

在这种情况下,您可以将PCA拟合到所提供的全部数据上,在带标签的零件(训练集)上学习SVM,并在测试集上进行评估。这样,一旦新数据到达,您就可以同时使用数据和新数据来适应PCA,然后-在旧数据上训练SVM(因为这是唯一带有标签的数据)。再次假设数据来自相同的分布,这里的一切都是正确的。您使用更多的数据来拟合PCA只是为了有一个更好的估计量(也许您的数据确实是高维的,而PCA在样本较少的情况下会失败?)。