如何解决将新样品投影到现有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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。