我正在尝试在火车上安装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。 有什么建议吗
答案 0 :(得分:0)
这不是真正的答案。但是为了帮助您理解这种情况,我正在发布此信息!
MemoryMarshal.TryGetMemoryManager
上面的代码很好用!
答案 1 :(得分:0)
我试图重现您的示例,并且一切正常:
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的行上。看起来您正在对形状错误的数组进行某些操作。
答案 2 :(得分:0)