感知器算法
2021/9/9 20:37:03
本文主要是介绍感知器算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import numpy as np import random w0=0.2 w1=0.2 w2=0.2 n=0.01 e=float(2.72) #E=float(10*e^(-4)) E=float(0.18) e0=10 e1=10 e2=10 x=np.array([[0,0,0], [0,1,0], [1,0,0], [1,1,1]]) # t=np.array([[0], # [0], # [0], # [1]]) for a in range(0,100): if e0<=E and e1<=E and e2<=E: w0=w0-n*e0 w1=w1-n*e1 w2=w2-n*e2 else: j=random.randint(0,3) i=j z=w1*x[i,0]+w2*x[i,1]+w0 s=1/(1+e**(-z)) e0=2*(s-x[i,2])*(s**2)*(e**z) e1=2*(s-x[i,2])*(s**2)*(e**z)*x[i,0] e2=2*(s-x[i,2])*(s**2)*(e**z)*x[i,1] print(w0,w1,w2) #以下代码为尝试画图,但没有成功实现 # import matplotlib.pyplot as plt # from mpl_toolkits.mplot3d import Axes3D #绘制3D坐标的函数 # fig1=plt.figure()#创建一个绘图对象 # ax=Axes3D(fig1)#用这个绘图对象创建一个Axes对象(有3D坐标) # X1=random.randint(0,2) # X2=random.randint(0,2) # #X1,X2,T=np.random.randint(0,2,(100,2)) # if X1==X2: # T=X1 # else: # T=0 # X1,X2=np.meshgrid(X1,X2) # h=(w0+w1*a[0]+w2*a[1]-T)**2 # plt.title("tu xiang") #图像标题 # ax.plot_surface(X1, X2, h , rstride=1, cstride=1, cmap=plt.cm.coolwarm, alpha=0.5) #用取样点(x,y,z)去构建曲面 # ax.set_xlabel('X1', color='r') # ax.set_ylabel('X2', color='g') # ax.set_zlabel('h', color='b') # plt.show()#显示模块中的所有绘图对象
运行结果:
0.7331438354808711 0.7331438354808711 0.7331438354808711
这篇关于感知器算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)