向PCA新的空间数据python添加新的向量

时间:2016-11-29 20:46:09

标签: python scikit-learn pca

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

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

有没有办法用sklearn pca函数做到这一点?

1 个答案:

答案 0 :(得分:2)

如果您想将原始矩阵转换为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