[英]Broadcasting issues in numpy
我正在嘗試使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的行上。 看起來您正在對形狀錯誤的數組進行某些操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.