我最近阅读了很多关于 PCA 和交叉验证的内容,似乎大多数人认为在交叉验证之前进行 PCA 是一种不当行为。我也想执行 SMOTE,但在 PCA 之前或之后执行 SMOTE 的人之间存在分歧。是的,我很困惑,但即使是已发表论文的作者似乎也对此感到困惑(我是新手)。即使在这里(在 CrossValidate 上),关于 SMOTE 和 PCA 的相同 Q 也有不同的答案,要点是,看看什么适合您的数据。无论如何,我知道如何自己执行每个操作,但不知道如何在每个折叠中执行 PCA,例如在 Kfold 或任何其他交叉验证方法中。
1-有人可以与我分享如何在 Kfold 中进行 PCA 吗?也许通过循环或管道?
2-我个人对 SMOTE/PCA 的事情有两极的看法: a-我认为 PCA 应该在 SMOTE 之前执行,以便在我们采样之前对主要(真实)训练数据进行降维(在我的情况下是上采样)。b-我对此的另一个想法是,如果您上采样然后执行 SMOTE,那么您的降维是基于“无偏”组样本(现在两个组具有相同的数字)。我的问题是,如果我是 CV(交叉验证)PCA,我可以在组合中加入 SMOTE 吗?
3-最后一个问题,我看到了一个教授的视频。谁说如果你测试/分割你的数据,然后在训练集上进行 CV PCA,这是错误的。由于交叉验证,例如 Kfold 已经为您进行了训练/测试拆分。是这样吗?如果是这样,那么我最终将如何选择我的 X_test X_train y_test y_train 进行进一步分析?