import numpy as np
import matplotlib.pyplot as plt
#避免中文乱码
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False#定义激活函数
def sigmoid(x):return 1/(1 + np.exp(-x))#BP神经网络
def bpnet(x = None,y = None,hidsize = 5,maxiter = None,yita = 0.05):n,m = x.shapenet_in = -np.ones([m+1])out_in = -np.ones([hidsize + 1])w_mid = np.random.rand(m+1,hidsize)    #初始隐层神经元的权值w_out = np.random.rand(hidsize+1)      #初始输出神经元的权值delta_w_mid = np.zeros([m+1,hidsize])  #初始中间层权值的修正量Error = np.zeros([maxiter])for it in range(maxiter):error = np.zeros([n])for j in range(n):net_in[:m] = x[j,:m]           #更新网络输入值real = y[j]                    #对应实际值for i in range(hidsize):out_in[i] = sigmoid(sum(net_in*w_mid[:,i]))res = sigmoid(sum(out_in*w_out))#隐藏层到网络输出#输出层权值修正delta_w_out = yita*res*(1-res)*(real-res)*out_indelta_w_out[hidsize] = -yita*res*(1-res)*(real-res)w_out = w_out + delta_w_out#中间层权值修正量for i in range(hidsize):delta_w_mid[:,i] = yita*out_in[i]*(1-out_in[i])*w_out[i]*res*(1-res)*(real-res)*net_indelta_w_mid[m,i] = -yita*out_in[i]*(1-out_in[i])*w_out[i]*res*(1-res)*(real-res)w_mid = w_mid + delta_w_miderror[j] = abs(real-res)Error[it] = error.mean()print('第%s次迭代,误差是%s' % (it,Error[it]))plt.plot(Error)plt.xlabel('迭代次数')plt.ylabel('误差')plt.title('模型训练误差')plt.show()return w_mid,w_out#####################测试from sklearn.datasets import load_iris
dataset = load_iris()
data = dataset['data']
target = dataset['target']w_mid,w_out = bpnet(x = data,y = target,maxiter = 100)

python自编BP神经网络相关推荐

  1. 基于sympy的python实现三层BP神经网络算法

    #!/usr/bin/python # -*- coding: utf-8 -*- """ 写一个三层的BP神经网络(3,2,1),3是输入数据的维度,隐层设置节点数为2 ...

  2. bp神经网络预测模型python,r语言bp神经网络预测

    如何建立bp神经网络预测 模型 . 建立BP神经网络预测模型,可按下列步骤进行:1.提供原始数据2.训练数据预测数据提取及归一化3.BP网络训练4.BP网络预测5.结果分析现用一个实际的例子,来预测2 ...

  3. Python实现三层BP神经网络

    题外话 看论文,仿真实现,最基本的能力!研一的时候定要多看看论文,提升自己的代码能力! 引言 本篇博客默认读者有一定的BP神经网络的基础,BP神经网络的基本知识就不阐述了! BP神经网络结构 本文内容 ...

  4. python 遗传算法优化bp神经网络_遗传算法优化BP神经网络

    CODE: %清空环境变量 clc clear %%样本输入 input_train=xlsread('50组输入样本_训练.xlsx'); output_train=xlsread('50组期望输出 ...

  5. 深度学习(神经网络) —— BP神经网络原理推导及python实现

    深度学习(神经网络) -- BP神经网络原理推导及python实现 摘要 (一)BP神经网络简介 1.神经网络权值调整的一般形式为: 2.BP神经网络中关于学习信号的求取方法: (二)BP神经网络原理 ...

  6. Python 基于BP神经网络的鸢尾花分类

    本文用Python实现了BP神经网络分类算法,根据鸢尾花的4个特征,实现3种鸢尾花的分类. 算法参考文章:纯Python实现鸢尾属植物数据集神经网络模型 2020.07.21更新: 增加了分类结果可视 ...

  7. SVM支持向量机、BP神经网络

    SVM支持向量机 [[五分钟机器学习]向量支持机SVM--学霸中的战斗机-哔哩哔哩] [机器学习-白板推导系列(六)-支持向量机SVM(Support Vector Machine)-哔哩哔哩] BP ...

  8. 遗传+BP神经网络 求解故障诊断问题(python)

    遗传+BP神经网络 求解拖拉机齿轮箱故障诊断问题(python3) 通过学习书籍<matlab智能优化算法30个案例分析(第2版)>中有关神经网络算法的编程知识,初步了解神经网络的编码思想 ...

  9. python bp神经网络 异或_两层神经网络输出异或

    简单形象又有趣地讲解神经网络是什么 神经元 先来认识下真正的神经元. 图 1: 典型神经元的结构(来自维基百科 "树突" 词条) 神经元大致可以分为树突.突触.细胞体和轴突.树突为 ...

最新文章

  1. 为什么神经网络的激活函数必须使用线性函数?
  2. 泛化,关联,聚合,合成,依赖的关系
  3. Linux下无法进入windows的NTFS分区并挂载错误的问题的解决方法
  4. Django 无法添加新字段,django.db.utils.OperationalError: (1050, Table app already exists)
  5. debian 升级glibc
  6. java mvc 获取session_Spring MVC----获取session/request
  7. 5 useMemouseCallback
  8. jhope代码分析以及网站结构
  9. c语言如何关闭线程,如何用C语言实现多线程
  10. visjs使用小记-2.option参数注释说明
  11. k8s-controller manager原理分析
  12. Phoenix Framework 1.4.7,自动化测试平台
  13. auto_ptr 源码 极其解析
  14. java reader类子类_java io --- Reader类
  15. 数据库中间件sharding-jdbc实现数据脱敏
  16. 上海是怎么错失这些年的互联网机遇的?
  17. 微信又更新啦,再也不怕错过女朋友的消息
  18. 神经网络调参-warmup and decay
  19. 微信小程序入门七登录注册
  20. 每日新闻:未来,电脑像手机一样?

热门文章

  1. 广东省第四届“强网杯”网络安全大赛(“泄露的秘密WP”)
  2. Dick and Jane
  3. C语言编译时产生的警告:initializing ‘char *‘ with an expression of type ‘const char *‘ discards qualifiers
  4. STM32单片机报错error: #20: identifier “TIM2_IRQn“ is undefined
  5. 信息学奥赛之数学一本通 C++版 用编程的方式学数学
  6. 享学课堂python_享学课堂盘点python字符串是什么及简单操作方法
  7. 小米多看|变身番茄todo计时,时钟
  8. Office2Pdf工具开发
  9. 熔断器 java_防雪崩利器:熔断器 Hystrix 的原理与使用
  10. 基于SSM实现水果商城批发平台