将新样本投影到现有PCA空间



我有一个数据集,并使用scikit-learn进行了PCA分析。我有另一个具有相同功能的数据集,我想将数据投影到第一个数据集创建的相同PCA空间中。

我的理解是,我必须以与原始数据集相同的方式转换和居中数据,然后使用特征向量来旋转数据。

我有点拘泥于根据sklearn.decomposition.PCA library的输出来做这件事。

到目前为止,我有

X1 = np.loadtxt(fname="dataset1.txt")
pca = PCA(n_components=50)
pca.fit_transform(X1)
pca_result = pca.transform(X1)
X2 = np.loadtxt(fname="dataset2.txt")

有人对如何实现这一目标有什么建议吗?

那里有一些冗余。如果执行fit_transform((,它将返回主要组件,同时将参数保存到对象中。如果您有一个新的采样,则只使用变换。见下文:

X1 = np.loadtxt(fname="dataset1.txt")
pca = PCA(n_components=50)
Y1 = pca.fit_transform(X1)
X2 = np.loadtxt(fname="dataset2.txt")
Y2 = pca.transform(X2)

使用第一个数据集对其进行拟合,然后使用拟合模型对第二个数据集进行变换

X1 = np.loadtxt(fname="dataset1.txt")
pca = PCA(n_components=50) # define model
pca.fit(X1) # fit model
pca_result = pca.transform(X1) # project the dataset 1
X2 = np.loadtxt(fname="dataset2.txt")
pca_results_2 = pca.transform(X2) # project the dataset 2 using the fitted model

最新更新