如何解决使用 sklearn 评估内核 PCA 中的重建错误/质量
我有一个包含 24,000 个点和 200 个特征变量的数据集。我想用标准 PCA 和带有 RBF 内核的内核 PCA 来评估数据重建的质量。这是我用于标准 PCA 重建的代码。 X 是数据的矩阵(使用 StandardScaler 实用程序预处理到每个特征的均值和单位方差为零)。
pca = PCA(n_components=40,svd_solver="full")
pc_X = pca.fit_transform(X)
X_recon = pca.inverse_transform(pc_X)
正如预期的那样,重建是不完美的,因为我丢弃了 160 个不太重要的分数。 现在,我一直在尝试使用内核 PCA 进行类似的过程。这是我的代码:
kpca = KernelPCA(n_components=1,kernel='rbf',gamma=10,fit_inverse_transform=True,eigen_solver='arpack',random_state=123)
pc_X = kpca.fit_transform(X)
X_recon = kpca.inverse_transform(pc_X)
有趣的是,这给了我几乎精确的重建,即使我只保留了 2 个组件(我大幅减少了组件的数量以检查我的使用是否错误)。但是,我几乎可以肯定这个结果是可疑的,因为无论组件数量如何,我都会得到相同的结果(虽然我希望 PC 数量减少会降低质量)。我怀疑我为 kPCA 重建原始数据点的代码不正确。谁能提供有关如何从内核 PCA 重建原始数据的见解?任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。