scikits-学习pca降维问题

时间:2013-03-15 00:04:52

标签: python numpy scikit-learn pca

我使用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)

1 个答案:

答案 0 :(得分: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)