将新样本投影到现有 PCA space?
Projecting new samples into existing PCA space?
我有一个数据集,我使用 scikit-learn
进行了 PCA 分析。我有另一个具有相同特征的数据集,我想将数据投影到与第一个数据集创建的相同的 PCA space。
我的理解是我必须以与原始数据集相同的方式转换和居中数据,然后使用特征向量旋转数据。
根据 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(),它会 returns 主成分,同时还会将参数保存到对象中。如果你有一个新样本,那么你只使用转换。见下文:
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
我有一个数据集,我使用 scikit-learn
进行了 PCA 分析。我有另一个具有相同特征的数据集,我想将数据投影到与第一个数据集创建的相同的 PCA space。
我的理解是我必须以与原始数据集相同的方式转换和居中数据,然后使用特征向量旋转数据。
根据 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(),它会 returns 主成分,同时还会将参数保存到对象中。如果你有一个新样本,那么你只使用转换。见下文:
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