代碼細(xì)節(jié)討論
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)
這段代碼中,在進(jìn)行10次迭代的過程中,每次迭代的時(shí)候都把權(quán)重重新置為 0 。
我覺得有點(diǎn)問題。(下劃線部分)
如果每次迭代都 從新 將權(quán)重置為0,那么每次迭代都是一樣的,是沒有意義的。
如果每次迭代后 權(quán)重 被帶到下一次循環(huán)中,那么在經(jīng)過10次迭代后得到的權(quán)重會(huì)更加的準(zhǔn)確。