即時通訊嘗試實現使用Numpy的漸變下降算法。後面的內容是避免算法中的任何循環,所以我使用矩陣和numpy.dot來進行計算。我敢肯定,數學的,但每當我試圖通過這個功能我得到一個錯誤信息:使用numpy的漸變下降機器學習
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
它似乎是與函數結構的東西。 這可能是顯而易見的,我很想念,但我一直在尋找這個功能三天,看着其他的例子,我只是找不到錯誤。
請幫忙!
提示:如果您刪除線和錯誤仍然存在這不是刪除線這是錯誤的。在 – miraculixx