实现代码
import numpy as np
import matplotlib.pyplot as plt
#输入数据
X = np.array ([ [1, 3, 3], [1, 4, 3], [1, 1, 1]])
#标签
Y = np.array ([1, 1, -1])
#权值初始化,1行3列,取值范围[-1,1]
W = (np.random.random (3) -0.5) *2
print (W)
#设置学习率、迭代次数、神经网络基础
lr = 0.11
n = 0
O = 0
def update():
global X,Y,W,lr,n
for _ in range(100):
update() #更新权值
#正样本
x1=[3,4]
y1=[3,3]
#负样本
x2=[1]
y2=[1]
#计算分界线的斜率以及截距
k=-W[1]/W[2]
d=-W[0]/W[2]
print('k=',k)
print('d=',d)
xdata=np.linspace(0,5)
plt.figure()
plt.plot(xdata,xdata*k+d,"r")
plt.plot(x1,y1,'bo') #正样本蓝色散点表示
plt.plot(x2,y2,'yo') #负样本蓝色散点表示
plt.show()
案例应用
1、DL之perceptron:利用perceptron感知机对股票实现预测
2、利用Perceptron进行分类