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