python中的成本函数

时间:2017-08-21 01:00:06

标签: python machine-learning

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)

1 个答案:

答案 0 :(得分:0)

由于我无法评论,我试着回答我的假设。我不确定您输入变量theta和X以及输出的数据结构。

Numpy dot产品文档声明:

  

对于2-D阵列,它相当于矩阵乘法,对于1-D阵列相当于向量的内积(没有复共轭)。对于N维,它是a的最后一个轴上的和积,而b

的倒数第二个

矩阵乘法由R(1×m)×R(m×n) - >定义。 R(LXN)
请注意,一个矩阵的列数必须等于另一个矩阵的行数。

这意味着如果你有两个行向量x,那么可能的结果是:

  • dot(x.T,y)=>标量
  • dot(x,y.T)=>基质

选项dot(x,y)不存在,因为没有为这种情况定义矩阵乘积,因为x的行数不能等于y的列数。 对于行向量x和矩阵Y的情况,您可以得到:

  • dot(Y,x)=>列向量
  • dot(x,Y)=>行矢量