尝试构建一个简略的感知机模型
不使用sklearn版:
class Model(): def __init__(self): self.w = np.ones(len(data[0])-1,dtype = np.float32) self.b = 0 self.lr = 0.0001 def sign(self,X,w,b): y_pre = np.dot(X,w)+b return y_pre def fit(self,x_train,y_train): wrong_ans = False while not wrong_ans: wrong_counts=0 for i in range(x_train): X = x_train[i] Y = y_train[i] if Y*self.sign(X,self.w,self.b)<=0: wrong_counts+=1 self.w = self.w+self.lr*np.dot(X,Y) self.b = self.b+self.lr*Y if wrong_counts == 0: wrong_ans = True return 'Successful!'
使用sklearn只需要短短几句:
gzj = Perceptron(fit_intercept=True, max_iter=1000, tol=None, shuffle=True) gzj.fit(X, Y)
sklearn真方便啊 XD
代码参考来自:https://github.com/fengdu78/lihang-code
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)