将新向量添加到 PCA new space data python

Add new vector to PCA new space data python

假设我有 9 维和 6000 个样本的训练数据,并且我使用 sklearn PCA 应用了 PCA 算法。
我将它的尺寸减小到 4,并且知道我想尽快将一个具有 9 个特征的新样本转换为具有 4 个组件的训练数据 space。
这是我的第一个 pca 代码:

X_std = StandardScaler().fit_transform(df1)
pca = PCA(n_components = 4)
result = pca.fit_transform(X_std)

有什么方法可以用 sklearn pca 函数做到这一点吗?

如果您想将原始矩阵转换为 PCA 提供的降维投影,您可以使用 transform 函数,它将 运行 特征向量和输入矩阵的有效内积:

pca = PCA(n_components=4)
pca.fit(X_train)
X_std_reducted = pca.transform(X_std)

来自 scikit 来源:

X_transformed = fast_dot(X, self.components_.T)

所以应用 PCA 变换只是一个线性组合——非常快。现在您可以将投影应用于训练集和我们将来要测试的任何新数据。

这篇文章更详细地描述了这个过程:http://www.eggie5.com/69-dimensionality-reduction-using-pca