【问题标题】:Cost function in pythonpython中的成本函数
【发布时间】:2018-01-28 23:58:42
【问题描述】:
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)

【问题讨论】:

  • 看起来他正在使用np.dot 来计算平方和。
  • 您自己定义了h(),因此如果您希望参数为X, theta,那么您可以直接更改它。请记住同时更改对它的所有调用。

标签: python machine-learning


【解决方案1】:

由于我无法发表评论,因此我尝试根据我的假设给出答案。我不确定您输入变量 theta 和 X 的数据结构以及您的输出。

Numpy 点产品文档说明:

对于二维数组,它相当于矩阵乘法,对于一维数组,它相当于向量的内积(没有复共轭)。对于 N 维,它是 a 的最后一个轴和 b 的倒数第二个轴的和积

矩阵乘法定义为 R(lxm) x R(mxn) -> R(lxn)
请注意,一个矩阵的列数必须等于另一个矩阵的行数。

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

  • dot(x.T,y) => 标量
  • dot(x,y.T) => 矩阵

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

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

【讨论】:

    猜你喜欢
    • 2014-11-18
    • 2010-12-04
    • 2016-09-16
    • 1970-01-01
    • 2022-12-04
    • 2021-09-20
    • 2019-11-15
    • 1970-01-01
    • 2010-11-10
    相关资源
    最近更新 更多