简单版感知机模型的尝试

简单版感知机模型的尝试,第1张

简单版感知模型尝试

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5443601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存