python+=および=+

8651 ワード

import numpy as np
import pandas as pd
import requests


def getdata(url):
    content=requests.get(url).content
    content=content.decode("utf-8")
    content=content.split("
"
) X = [] Y = [] for line in content[:-1]: x1,y1 = line.split("\t") x1 = x1.split() for i in range(len(x1)): x1[i] = float(x1[i]) X.append([1]+x1) Y.append(int(y1)) X=np.array(X) Y=np.array(Y) return X,Y def init(X): w = np.array([0]*len(X[1]),dtype=float) return w def inter_iter(X,Y,w): OK = True for i in range(len(X)): mul = np.dot(w,X[i]) if mul<0: res = -1 else : res = 1 if res != Y[i]: OK = False w += Y[i]*X[i] return OK def PLA(url): X,Y = getdata(url) w = init(X) cnt = 1 while (inter_iter(X,Y,w)!=True): cnt += 1 print(cnt) if __name__=='__main__': PLA("https://www.csie.ntu.edu.tw/~htlin/mooc/datasets/mlfound_math/hw1_15_train.dat")

43行目w += Y[i]*X[i] w = w + Y[i]*X[i]に変更するとエラーになります.最初は数字が合っていましたが、何回か循環すると答えが間違っています.なぜか知っている人はいますか.