我最近读了很多关于PCA和交叉验证的文章,似乎大多数人认为在交叉验证之前做PCA是一种弊端。我也想进行击打,但在PCA之前或之后执行击打的人是有分歧的。是的,我很困惑,但即使是发表论文的作者似乎也对此感到困惑(我是个新手)。即使在这里(在CrossValidate上),对于同样的Q关于SMOTE和PCA,也有不同的答案,要点是,看看什么适合您的数据。无论如何,我知道如何通过自己的方法来执行每一个,但不知道如何在每个折叠中进行PCA,例如在Kfold中,或者任何其他交叉验证方法。
有人能和我分享如何在科夫德内部做PCA吗?可能是通过循环还是管道?
2-我个人对击打/主成分分析( PCA )有一种不同的看法:(A)我认为应该在击打前进行PCA,这样在我们对主要(真实)训练数据进行采样(在我的情况下是重采样)之前,就可以对主要(真实)的训练数据进行降维。b-我的另一个想法是,如果你上升样本,然后执行击打,那么你的维度降低是基于“非偏倚”组样本(现在两个组都有相同的数字)。我的Q是,如果我的简历(交叉验证) PCA,我可以包括在混合?
最后一次问,我看了一段教授的视频。谁说,如果你测试/分割你的数据,然后在培训集上进行简历主成分分析,这是错误的。由于交叉验证,例如,科夫德已经为你做了火车/测试分裂。是这种情况吗?如果是这样,我将如何最终选择我的X_test X_train y_test y_train进行进一步分析?
发布于 2019-02-20 11:32:16
为了避免数据泄漏,在拆分数据之后进行任何转换都是很重要的--所以是的,您希望将PCA安装到您的培训集/折叠中,但是将该转换应用于培训和测试数据(当您想考虑泛化时)。
学习让这个过程在sklearn.pipeline.Pipeline上变得简单明了,有一个很好的例子,5折简历是在一个主成分分析与logistic回归链上完成的,这应该会给你一些东西。
为了解决你的第二个问题,没有什么能阻止你在做完火车测试或简历分割后,把SMOTE纳入其中,但是如果不知道更多关于数据和情况的信息,我就不会发表进一步的评论。
最后,没有必要在k折叠简历中嵌套火车测试分割,因为正如你所说的,k折叠简历包含了一个测试集。然而,对于最终的模型选择,一种更严格的方法是在做任何其他事情之前分离出一个最终的验证集。对培训数据进行k折简历实验,选择任何模型和参数,并使用验证结果作为总结的最终估计。
为了实现这一点,上面的scikit学习示例展示了如何评估不同参数对分类器的影响。它没有显示出最终的模型选择和评估,但所需要做的就是在示例中的所有内容之前先将合理数量的数据分离,然后取最佳模型(S),并在该验证集上评估它们的性能。
https://datascience.stackexchange.com/questions/45860
复制相似问题