想象我有9个维度和6000个样本的培训数据,并且我使用Sklearn PCA应用了PCA算法。
我将其尺寸降低到4,并且知道我想将一个带有9个功能的新样本转换为我的训练数据空间,并尽可能快地将4个组件转换为4个组件。
这是我的第一个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-reduction-using-pca