def h(theta,X):
return np.dot(X,theta)
def computeCost(mytheta,X,y):
return float((1/2*m) * np.dot((h(mytheta,X)-y).T,(h(mytheta,X)-y)))
这是一个成本函数,我想知道为什么我需要转置第一个h(theta,X)
答案 0 :(得分:0)
由于我无法评论,我试着回答我的假设。我不确定您输入变量theta和X以及输出的数据结构。
Numpy dot产品文档声明:
对于2-D阵列,它相当于矩阵乘法,对于1-D阵列相当于向量的内积(没有复共轭)。对于N维,它是a的最后一个轴上的和积,而b
的倒数第二个
矩阵乘法由R(1×m)×R(m×n) - >定义。 R(LXN)
请注意,一个矩阵的列数必须等于另一个矩阵的行数。
这意味着如果你有两个行向量x,那么可能的结果是:
选项dot(x,y)不存在,因为没有为这种情况定义矩阵乘积,因为x的行数不能等于y的列数。 对于行向量x和矩阵Y的情况,您可以得到: