我正在尝试按照课程中的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