3

我在使用 scikit-learn 和 PCA 进行降维时遇到问题。

我有两个 numpy 矩阵,一个大小为 (1050,4096),另一个大小为 (50,4096)。我试图减少两者的尺寸以产生 (1050, 399) 和 (50,399) 但是,在做 pca 之后,我得到了 (1050,399) 和 (50,50) 矩阵。一个矩阵用于 knn 训练,另一个用于 knn 测试。我下面的代码有什么问题?

pca = decomposition.PCA()
pca.fit(train)
pca.n_components = 399
train_reduced = pca.fit_transform(train)
pca.n_components = 399
pca.fit(test)
test_reduced = pca.fit_transform(test)
4

1 回答 1

15

fit_transform()在火车上打电话,transform()在测试中:

from sklearn import decomposition

train = np.random.rand(1050, 4096)
test = np.random.rand(50, 4096)

pca = decomposition.PCA()
pca.n_components = 399
train_reduced = pca.fit_transform(train)
test_reduced = pca.transform(test)
于 2013-03-15T00:22:49.453 回答