Orange:如何确保对训练数据集和测试数据集应用相同的 PCA?

Orange: How to make sure the same PCA is applied to both the train and test datasets?

在 Orange 中,我可以将数据集附加到 PCA 以进行降维。

通常,在代码中,我会在将训练数据拟合到训练数据后将训练的 PCA 应用于测试数据。

在 Orange 中,PCA 似乎只能放置在训练集或测试集的下游。

有没有办法运行将在训练数据上训练的PCA变换到测试数据上?

如果您在 PCA 转换后的数据上训练模型,只需将其用于具有原始变量的数据,它们将自动转换。

如果您使用 Data Sampler 拆分数据,您可以执行以下操作。

我使用 Select 列删除了原始变量。

当Logistic回归模型得到要分类的数据(测试数据,"Remaining data"来自数据样本,它会将其投影到PCA坐标。

如果您想使用测试和评分,请执行以下操作:

在测试和评分中,不要忘记检查 "Test on test data"。这有点不同,因为 Test 和 Score 实际上看到测试数据具有与训练数据不同的变量并对其进行转换。

对于交叉验证,您需要以下内容。

在预处理中,添加主成分分析。在测试和评分中,使用交叉验证(或其他)。在此工作流程中,Preprocess 小部件提供了一个预处理器列表,这些预处理器是根据(每个交叉验证迭代的)训练数据计算的(=适合),然后 Test and Score 将此投影(或其他预处理)应用于测试数据,适合模型(s) 并测试它们。