使用python的渐变下降:操作数无法一起广播

时间:2018-06-04 14:53:45

标签: python machine-learning linear-algebra gradient-descent

我正在尝试按照课程中的Andrew Ngs ML课程在python中实现梯度下降。这是我的版本到目前为止,但在运行代码时,我收到以下错误消息。我认为问题出在这一部分:

(h-y)*x

但我目前无法弄清楚到底出了什么问题以及原因。

代码:

def gradientDescent(x, y, theta, alpha, iters): 
for x in range(iters):
    h = x * theta.T
    theta_zero = theta[:,0]- alpha* 1/len(y)*np.sum((h-y))
    theta_one  = theta[:,1]- alpha* 1/len(y)*np.sum((h-y)*x)
    theta = np.matrix(np.array([theta_zero,theta_one]))
return theta

错误讯息:

ValueError: operands could not be broadcast together with shapes (2,1) (97,1) 

编辑:这是github上的完整代码: https://github.com/alpenmilch411/linear_regression3/blob/master/Univariate%20Linear%20Regression.ipynb

0 个答案:

没有答案