python实现BP神经网络进行预测和误差分析(附源代码)
反向传播算法也称为BP神经网络,是一种带有反馈的神经网络反向学习方法,它可以对神经网络的各层上的各个神经元的各个神经元之间的连接权重进行不断迭代修改,使神经网络将输入数据转换成期望的输出数据
BP神经网络的学习过程由正向传播和反向传播两部分组成,正向传播完成通常的前向计算,由输入数据运算得到输出结果。反向传播的方向则相反,是将计算得到的误差回送,逐层传递误差调整神经网络的各个权值,然后神经网络再次进行前向运算,直到神经网络的输出达到期望的误差要求
问题描述:神经网络的输入为3和6 期待的输出分别为0和1 输入层到隐藏层的初始权重依次为:w11=0.11,w12=0.12,w13=0.13,w14=0.14,w15=0.15,w16=0.16,
截距为0.3,隐藏层到输出层的初始权重为 w21=0.17,w22=0.18,w23=0.19,w24=0.20,w25=0.21,w23=0.22截距为0.6
使用BP神经网络算法 迭代调整得到合适的权重,并查看不同迭代次数下的误差结果,神经网络的学习率设置为0.3
输入结果如下
代码如下 需要根据自己的模型修改参数和输入数据
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
# 设置显示中文字体import matplotlib; matplotlib.use('TkAgg')
mpl.rcParams["font.sans-serif"] = ["SimHei"]
matplotlib.rcParams['font.family'] = 'SimHei'
matplotlib.rcParams['font.size'] = 10
matplotlib.rcParams['axes.unicode_minus']=False
def sigmoid(x):return 1/(1+np.exp(-x))
#前向计算
def forward_NN(x,w,b):h1=sigmoid(w[0]*x[0]+w[1]*x[1]+b[0])h2=sigmoid(w[2]*x[0]+w[3]*x[1]+b[0])h3=sigmoid(w[4]*x[0]+w[5]*x[1]+b[0])print(h1,h2,h3)o1=sigmoid(w[6]*h1+w[8]*h2+w[10]*h3+b[1])o2=sigmoid(w[7]*h1+w[9]*h2+w[11]*h3+b[1])return h1,h2,h3,o1,o2
#反向传递 调整参数
def fit(o1,o2,y,x,w,lrate,epochs):for i in range(epochs):#循环迭代 调整参数p1=lrate*(o1-y[0])*o1*(1-o1)p2 = lrate * (o2 - y[1]) * o2 * (1 - o2)w[0]=w[0]-(p1*w[6]+p2*w[7]*h1*(1-h1)*x[0])w[1] = w[1] - (p1 * w[6] + p2 * w[7] * h1 * (1 - h1) * x[1])w[2] = w[2] - (p1 * w[8] + p2 * w[9] * h2 * (1 - h2) * x[0])w[3] = w[3] - (p1 * w[8] + p2 * w[9] * h2 * (1 - h1) * x[1])w[4] = w[4] - (p1 * w[10] + p2 * w[11] * h3 * (1 - h3) * x[0])w[5] = w[5] - (p1 * w[10] + p2 * w[11] * h3 * (1 - h3) * x[1])w[6]=w[6]-p1*h1w[7] = w[7] - p2 * h1w[8] = w[8] - p1 * h2w[9] = w[9] - p2 * h2w[10] = w[10] - p1 * h3w[11] = w[11] - p2 * h3return w
print("步骤一 初始化参数")x=[3,6]
y=[0,1]
w=[0.6,0.61,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.70,0.71,0.72,0.73]
b=[0.3,0.6]
lrate=0.4print("步骤二 fit")
print("步骤三 预测")
print("真值为",y)
sumDs=[]
for epochs in range(0,101,5):h1,h2,h3,o1,o2=forward_NN(x,w,b)w=fit(o1,o2,y,x,w,lrate,epochs)h1,h2,h3,o1,o2=forward_NN(x,w,b)print("迭代",epochs,"次的输出为\n",o1,o2)sumDs.append(o1-y[0]+(o2-y[1]))print("画图")
plt.plot(range(0,101,5),sumDs)
plt.title("the epoch-error plot for 铅钡")
plt.xlabel("epochs")
plt.ylabel("totol error")
plt.show()
python实现BP神经网络进行预测和误差分析(附源代码)相关推荐
- 基于头脑风暴优化的BP神经网络(预测应用) - 附代码
基于头脑风暴优化的BP神经网络(预测应用) - 附代码 文章目录 基于头脑风暴优化的BP神经网络(预测应用) - 附代码 1.数据介绍 3.BSO优化BP神经网络 3.1 BP神经网络参数设置 3.2 ...
- 基于布谷鸟优化的BP神经网络(预测应用) - 附代码
基于布谷鸟优化的BP神经网络(预测应用) - 附代码 文章目录 基于布谷鸟优化的BP神经网络(预测应用) - 附代码 1.数据介绍 3.CS优化BP神经网络 3.1 BP神经网络参数设置 3.2 布谷 ...
- 基于鸟群优化的BP神经网络(预测应用) - 附代码
基于鸟群优化的BP神经网络(预测应用) - 附代码 文章目录 基于鸟群优化的BP神经网络(预测应用) - 附代码 1.数据介绍 3.BSA优化BP神经网络 3.1 BP神经网络参数设置 3.2 鸟群算 ...
- 基于果蝇优化的BP神经网络(预测应用) - 附代码
基于果蝇优化的BP神经网络(预测应用) 文章目录 基于果蝇优化的BP神经网络(预测应用) 1.数据介绍 3.FOA优化BP神经网络 3.1 BP神经网络参数设置 3.2 果蝇算法应用 4.测试结果: ...
- python实现bp神经网络预测,神经网络算法预测彩票
神经网络预测双色球有多靠谱 你好,这东西没人会预测.如果真会预测,早就成为百万富翁了.预测这东西我早就不信了,上一回在网站上,看别人预测,结果买了,连一个号码都没对上.楼主真要买,就权当是献爱心吧. ...
- gadecod matlab,【预测模型】基于遗传算法优化BP神经网络房价预测matlab源码
一.简介 1 遗传算法概述 遗传算法(Genetic Algorithm,GA)是进化计算的一部分,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法 ...
- Python实现bp神经网络识别MNIST数据集
title: "Python实现bp神经网络识别MNIST数据集" date: 2018-06-18T14:01:49+08:00 tags: [""] cat ...
- 利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)
最近一段时间在研究如何利用预测其销量个数,在网上搜索了一下,发现了很多模型来预测,比如利用回归模型.时间序列模型,GM(1,1)模型,可是自己在结合实际的工作内容,发现这几种模型预测的精度不是很高,于 ...
- 【智能算法】基于双隐含层BP神经网络的预测
目录 基于双隐含层BP神经网络的预测 基于双隐含层BP神经网络的预测 %% 该代码为基于双隐含层BP神经网络的预测 clc clear%% 训练数据预测数据提取及归一化 %下载输入输出数据 load ...
最新文章
- linux查看网络带宽_每天一个Linux命令之~wget命令
- *:学习心得——C语言----S1T62班 王作舟
- Pixhawk---通过串口方式添加一个自定义传感器(超声波为例)
- merge into ORA-30926
- 前端学习(1898)vue之电商管理系统电商系统之渲染用户的对话框
- 【修炼5】《基础篇》别把项目成功当目标
- 数据可视化课程_在这个由10部分组成的免费数据可视化课程中学习D3
- Dockerfile 常用命令
- max open files mysql_MySQL 重启提示超出可打开文件数限制|Buffered warning: Changed limits: max_open_files: 1024...
- 力扣-48 旋转图像
- 2020年数维杯数学建模C题 垃圾转运优化模型设计求解全过程文档及程序
- 计算机教学常规检查小结,总结·反思·提高——邮政路小学全体教师期末教学常规检查反馈...
- FPGA自学之路12(二进制转换8421bcd码)
- [乱七八糟]Google搜索秘籍
- 数据分析实用工具——EXCEL下的power query自动取数
- RIM Hong Kong地址和地图
- 拓嘉辰丰电商:拼多多新上架的新品要不要做
- 点聚WebOffice组件介绍
- 【网页设计】基于HTML在线商城购物项目设计与实现-----电脑商城6页带视频 带报告3000字
- 《Python语言程序设计》王恺 王志 机械工业出版社 第五章 序列、集合和字典 课后习题答案