1.感知机
![](https://i-blog.csdnimg.cn/blog_migrate/ebd3e67b00e5a41b66d29457ea4a5bdc.png)
题目:
![](https://i-blog.csdnimg.cn/blog_migrate/6da14bb065e0beb60f3b77d052276835.png)
1. 使用python 实现其详细代码过程
import numpy as np
import time
X = np.array([[3,3],[4,3],[1,1]])
Y = np.array([1,1,-1])
w = np.array([0,0], dtype = np.float32)
i,b,eta = 0,0.0,1
while True:
neg_id = -1
for cur_id,(x,y) in enumerate(zip(X,Y)):
if (np.dot(w,x) + b)*y <= 0:
neg_id = cur_id
w += eta*x*y
b += y
break
if neg_id == -1:
break
i +=1
print('Step{}: neg_id = {}, w = {}, b = {}'.format(i,neg_id,w,b))
![](https://i-blog.csdnimg.cn/blog_migrate/30196096ce8fcf5f0f9f8b76c82aaf30.png)
2. 调库实现
import numpy as np
import time
from sklearn.linear_model import Perceptron
X =np.array([[3,3],[3,4],[1,1]],dtype= np.float32)
Y = np.array([1,1,-1])
module = Perceptron(penalty=None,
alpha=0.0001,
fit_intercept=True,
max_iter=5,
tol=None,
shuffle=False,
eta0=.01)
start_time = time.time()
module.fit(X,Y)
print(time.time() - start_time)
print(module.score(X,Y))
print(module.coef_,module.intercept_,module.n_iter_)
![](https://i-blog.csdnimg.cn/blog_migrate/e21a2102277c08af2ffd3f6f3f24d942.png)
![](https://i-blog.csdnimg.cn/blog_migrate/637e88e08419eba5af2716d9245a5537.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a1934e14e21a23e97bcdd0a18522938c.png)