【问题标题】:Sklearn PCA: Different number of components for train and testSklearn PCA:用于训练和测试的组件数量不同
【发布时间】:2018-08-18 04:42:03
【问题描述】:

我正在使用 Sklearn 的 PCA 进行降维。我正在拟合和转换我的输入数据X,如下所示:

pca = PCA(n_components=0.9999)
final_X = pca.fit_transform(X)

这产生了 13 个特征。然后我将它应用到我的测试集:

test_X = pca.fit_transform(test_1)

它只产生 9 个特征,这在我进行预测时是有问题的。我将在具有 13 个特征的数据上进行训练,然后对具有 9 个特征的数据进行测试(不保证 9 个是 13 个特征的子集)。

我是否应该跟踪 PCA 选择的哪些功能,然后只保留那些?

如果是这样,我该怎么做?

谢谢!

【问题讨论】:

  • 你不应该打电话给fit_transform()。你应该打电话给transform()。更多关于my answer 的类似问题。

标签: python scikit-learn pca


【解决方案1】:

您应该在测试数据上使用transform 而不是fit_transform,以便trainingtesting 数据以相同的方式转换(通过相同的@987654323 @ 模型)。 test_X = pca.transform(test_1)

【讨论】:

    猜你喜欢
    • 2020-09-01
    • 2023-03-12
    • 2019-08-21
    • 2021-08-29
    • 1970-01-01
    • 2017-11-21
    • 2021-06-28
    • 1970-01-01
    • 2015-01-17
    相关资源
    最近更新 更多