我試圖從頭開始使用漸變下降方法進行線性迴歸用於學習目的。我的代碼的一部分真的讓我煩惱。出於某種原因,變量x
在我運行一行代碼後被改變,我不知道爲什麼。線性迴歸漸變下降python實現
變量如下。 x
和y
是numpy數組,我給了他們這個例子的隨機數。
x = np.array([1, 2, 3, 4, ...., n])
y = np.array([1, 2, 3, , ...., n])
theta = [0, 0]
alpha = .01
m = len(x)
的代碼是:
theta[0] = theta[0] - alpha*1/m*sum([((theta[0]+theta[1]*x) - y)**2 for (x,y) in zip(x,y)])
當我運行上面的代碼x
不再是一個列表。它只成爲變量n或列表中的最後一個元素。
有道理,謝謝! – user1596466 2013-02-21 03:09:53