python +=和=+,,import num
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 +=和=+
评论关闭