python +=和=+,,import num


import numpy as npimport pandas as pdimport requestsdef getdata(url):    content=requests.get(url).content    content=content.decode("utf-8")    content=content.split("\n")    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,Ydef init(X):    w = np.array([0]*len(X[1]),dtype=float)    return wdef 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 OKdef 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]就会出错,刚开始数字还对,循环几次之后答案会不对了,有大佬知道为什么吗?

python +=和=+

评论关闭