简单版感知机模型的尝试

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值