代碼細節討論
for _ in range(self.n_iter):
? ? ? ? ? ? error=0
? ? ? ? ? ??dw=np.zeros(1+X.shape[1])
? ? ? ? ? ? for xi,target in zip(X,y): ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? update=self.eta*(target-self.predict(xi))
? ? ? ? ? ? ? ? dw[1:]+=update*xi
? ? ? ? ? ? ? ? dw[0]+=update
? ? ? ? ? ? ? ? error+=int(update!=0)
? ? ? ? ? ? ? ? pass
? ? ? ? ? ? self.W+=dw
? ? ? ? ? ? self.errors.append(error)
這段代碼中,在進行10次迭代的過程中,每次迭代的時候都把權重重新置為 0 。
我覺得有點問題。(下劃線部分)
如果每次迭代都 從新 將權重置為0,那么每次迭代都是一樣的,是沒有意義的。
如果每次迭代后 權重 被帶到下一次循環中,那么在經過10次迭代后得到的權重會更加的準確。