[英]Gradiente Descent using numpy Machine Learning
我正在尝试使用Numpy实现梯度下降算法。 即时通讯之后是避免算法中的任何循环,因此即时通讯使用矩阵和numpy.dot进行计算。 我对数学很确定,但是每当我尝试通过此函数时,我都会收到错误消息:
def grad(feature_matrix, output, initial_weights, step_size, tolerance):
converged = False
w = np.array(initial_weights) # make sure it's a numpy array
X=feature_matrix
y=output
s=step_size
t=0
RSS=0
J=[]
while not converged:
y_h=np.dot(X,w)
e=y-_yh
w=w+s*2*np.dot(np.transpose(X),e)
gradient_magnitude=sqrt(np.dot(np.transpose(X),e)
RSS=np.dot(e,e)
J.append(RSS)
t=t+1
if gradient_magnitude < tolerance:
converged = True
return(weights,J,t)
我总是得到这个错误:
File "<ipython-input-14-db210106141b>", line 15
RSS=np.dot(e,e)
^
SyntaxError: invalid syntax
如果删除RSS = np.dot(e,e)行并尝试通过函数,那么我得到:
File "<ipython-input-15-b0b1a5aebd0c>", line 16
J.append(RSS)
^
SyntaxError: invalid syntax
似乎与功能结构有关。 我可能错过了一些明显的东西,但是我已经看了三天了,看看其他例子,但我找不到错误。
请帮忙!
实际错误通常发生在Python意识到语法错误发生之前。 在这种情况下,此行上缺少结束括号( )
:
gradient_magnitude=sqrt(np.dot(np.transpose(X),e)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.