# 统计学习方法第二章感知机例题
import numpy as np;
import matplotlib.pyplot as plt
#样本数据
sample_x = np.array([[3,3],[4,3],[1,1]])
sample_y = np.array([1,1,-1])
#为分类器设置初始参数
w = np.array([0,0])
b = 0
Eta = 1 #学习率
#进行迭代
for i in range(0,100):
flag = -1
num = -1
for j in range(len(sample_x)):
if sample_y[j]!=np.sign(np.dot(w,sample_x[0])+b):
num = j
break
if num == -1: #一开始设置的初始参数既可以完成对样本的分类
break
w = w + Eta*sample_x[num]*sample_y[num]
b = b +Eta*sample_y[num]
#绘制分类结果
x_label = [0,8]
y_label = [0,8]
for i in range(len(x_label)):
y_label[i] = (-w[0]*x_label[i]-b)/w[1]
#print(y_label[i])
plt.plot(x_label, y_label)
print("w = ",w,"and b = ",b)
for i in range (len(sample_x)):
if sample_y[i] == -1:
plt.plot(sample_x[i][0],sample_x[i][1],'ro')
if sample_y[i] == 1:
plt.plot(sample_x[i][0],sample_x[i][1],'bo')
统计学习方法 感知机模型
最新推荐文章于 2021-12-28 20:20:27 发布