我想,以适应PCA在火车上和测试数据。
X_train.shape
(2735, 219)
PCA:
pca = PCA(n_components=30)
X_train = pca.fit_transform(X_train)
测试数据:
test_values.shape
(395, 219)
转型:
test_values = pca.transform(test_values)
错误:
ValueError: operands could not be broadcast together with shapes (395,219) (30,)
我不知道为什么有广播的错误,无论是numpy的阵列具有相同的列219的任何建议,请
这是不是一个真正的答案。但是,以帮助您了解的情况,我张贴这个!
import numpy as np
from sklearn.decomposition import PCA
X = np.random.randn(2735, 219)
pca = PCA(n_components=30)
pca.fit(X)
test_values = np.random.randn(395 , 219)
pca.transform(test_values)
上面的代码工作得很好!
我试图模仿你的榜样,和一切工作正常:
x_train = np.random.randint(10, size=50).reshape(10, 5)
pca = PCA(n_components=3)
print(x_train.shape)
x_train = pca.fit_transform(x_train)
test_values = np.random.randint(10, size=100).reshape(20, 5)
print(test_values.shape)
test_values = pca.transform(test_values)
print(test_values.shape)
该代码输出:
(10, 5)
(20, 5)
(20, 3)
检查与PCA行出现错误。看起来你正在做一些操作与错误的形状的阵列。