尝试构建一个简略的感知机模型
不使用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