繁体   English   中英

使用numpy机器学习的Gradiente Descent

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM