【发布时间】:2017-05-07 09:37:24
【问题描述】:
我希望这是一个简单的问题,而我是愚蠢的。我刚刚在我的数据集上运行了 PCA,它是 18093 行和 13626 列,当我运行下面的代码时,我得到了下面的错误。我很确定我没有正确索引 - 有人可以看到我缺少什么吗?这是我第一次运行代码。
我的目标是拉出前两个特征对。在 Python 2.7 中
# Choosing optimal number of eigen pairs
num_eigen_pairs = np.hstack((eigen_pairs[0][1][:, np.newaxis], eigen_pairs[1][1][:, np.newaxis]))
len(num_eigen_pairs)
Out[161]: 18093
X_train1[0]
Out[162]: array([ 0., 0., 0., ..., 0., 0., 0.])
len(X_train1)
Out[163]: 18093
X_train1.dot(num_eigen_pairs) #This is the line erroring out
Traceback(最近一次调用最后一次):
文件“”,第 1 行,在 X_train1.dot(num_eigen_pairs)
ValueError:形状 (18093,13626) 和 (18093,2) 未对齐:13626 (dim 1) != 18093 (暗淡 0)
【问题讨论】:
-
我认为您必须转置其中一个。在矩阵乘法中,维度必须是 * 。试试
X_train1.T.dot(num_eigen_pairs) -
A.dot(B)要求A的最后一个维度与B的第二个到最后一个维度(第一个为 2d)匹配。 -
@Mohammad Athar 谢谢!是的,这行得通!天才:-)
-
@Alvis 太棒了!我将其发布为答案,如果您愿意,请接受并投票
标签: python pandas numpy machine-learning