基于BP-Adaboost神经网络的高斯函数模型预测研究-含Matlab代码
目录
- 一、引言
- 二、 预测建模及原理
- 2.1 BP 神经网络模型
- 2.2 BP-Adaboost 模型
- 三、模型预测结果对比
- 3.1 数据模拟
- 3.2 预测结果对比
- 四、参考文献
- 五、Matlab代码获取
一、引言
针对传统 BP 神经网络模型在预测精度方面的不足,将 Adaboost 算法融入传统 BP 神经网络模型,从而构建 BP-Adaboost 预测模型,可对任意模型(如交通流量)进行预测分析。
二、 预测建模及原理
2.1 BP 神经网络模型
BP 神经网络模型是一种常用的神经网络模型,在模型结构上它一般分为三个部分,即输入层、隐含层和输出层,如图 1 所示。 在图 1 中,输入层对应的是数据的输入,也称为自变量,自变量经过隐含层的数据训练,在输出层输出所预测的结果,即输出层输出的是因变量。输入层节点数用 n 表示,隐含层节点数用l表示,同时输出层节点数用 m 表示, 则 BP 神经网络模型通过隐含层的非线性函数关系,建立了从输入层 n 到输出层 m 的函数关系。
图 1 BP 神经网络模型结构
BP 神经网络模型原理的核心在于数据的训练过程,其主要步骤如下:
步骤 1:初始化神经网络
根据 BP 神经网络模型的输入与输出数据矩阵计算n、l 和 m 的值, 同时初始化各层神经元之间的连接权重系数 wij 和 wjk,隐含层与输出层的范围 a 和 b,同时,确定神经元学习激励函数等参数。
步骤 2:确定隐含层输出
应用公式(1)计算隐含层的输出:
其中,f 为激励函数。
步骤 3:确定输出层输出
应用公式(2)计算输出层输出的预测结果 Ok:
步骤 4:分析误差
计算模型的预测误差如下:
其中,e表示预测误差,Y表示期望值,O 表示预测值。
步骤 5:更新权重
依据所计算的预测误差 e 的大小, 动态调节连接权重,计算公式如下:
其中,η表示学习速率。
步骤 6:更新范围
分别应用公式(5)和公式(6)更新,即:
步骤 7:输出最终预测结果
若误差大于设定的误差范围,则返回步骤2,否则输出预测结果。
2.2 BP-Adaboost 模型
将 Adaboost 融入 BP 神经网络模型中,构建 BP-Adaboost 预测模型, 提高原有 BP 神经网络模型的预测精度。 Adaboost 算法本质上是一种迭代算法,它的迭代过程是:首先,应用次分层向量随机训练样本矩阵 ,并且确定训练因子。 然后,为迭代次数,并计算迭代解,同时根据迭代结果调整训练因子,增加其权重值,经过一系列的多次迭代,得到弱预测器函数,并将这些弱预测器函数进行整合,形成具备高精度特性的强预测函数。 这样,将 Adaboost 算法融入至 BP 神经网络模型中,得到的BP-Adaboost 预测模型结构如图 2 所示,在图 2 中,BP 神经网络模型是所构建 BP-Adaboost 预测模型的基础,而Adaboost 算法是其中的关键组成部分。
图2 BP-Adaboost 预测模型结构流程
在图 2 中,Adaboost 迭代算法融入预测模型中的原理具体如下:
步骤 1:选择样本矩阵以及初始化网络模型
将样本矩阵分成 组,则训练因子为 ,同时确定相关参数。
步骤 2:次分层向量的训练
划分次分层向量,记为 ,经过训练计算出相应的误差率,计算公式为:
其中,g(t)表示预测结果,y表示期望结果。
步骤3:调整测试数据权重
通过下式计算误差率 的权重,如下:
步骤 4:调整因子
调整因子的计算公式为:
步骤 5:形成强预测器函数
经过 T 次迭代共产生 T 个次级向量 f(gt,at),将这些次级向量进行组合,以此形成强预测器函数 h(x):
三、模型预测结果对比
3.1 数据模拟
利用BP网络拟合非线性函数如下:
它表示一维高斯分布高斯分布(Gaussian distribution),又称正态分布(Normal distribution)。若随机变量x服从一个数学期望为μ、方差为σ^2 的正态分布,记为N(μ,σ^2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ= 0,σ=1时的正态分布是标准正态分布。
图3 一维高斯函数
根据上述高斯函数得到该函数的2000组输入输出数据,从输入输出数据中随机选取1900组数据作为网络训练数据,用于网络训练。剩下的100组数据作为网络测试数据,用于测试网络的拟合性能。具体数据规划如下图所示:
图4 训练数据与测试数据划分
3.2 预测结果对比
从图5图6中可以看出,强预测器预测误差低于弱预测器预测误差,BP_ Adaboost强预测器预测算法取得了良好的效果。
图5 强预测与弱预测结果对比
图6 预测误差绝对值
四、参考文献
[1]李翔, 朱全银.Adaboost 算法改进 BP 神经网络预测研究[J].计算机工程与科学, 2013, 35(8):96-102
五、Matlab代码获取
上述Matlab代码获取,可私信博主。
博主简介:研究方向涉及智能图像处理、深度学习等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法、程序、科研方面的问题,均可私信交流讨论。
基于BP-Adaboost神经网络的高斯函数模型预测研究-含Matlab代码相关推荐
- 基于径向基函数RBF神经网络的非线性函数拟合研究-含Matlab代码
目录 一.RBF神经网络基本原理 二.模型建立 三.RBF网络拟合结果分析 四.注意事项 五.参考文献 六.Matlab代码获取 一.RBF神经网络基本原理 1988年Broomhead和Lowe将径 ...
- 一种基于卷积神经网络的图像去雾研究-含matlab代码
目录 一.绪论 二.去雾卷积网络 2.1 特征提取 2.2 多尺度映射 2.3 局部均值 2.4 非线性回归 三.实验与分析 四.Matlab代码获取 一.绪论 雾是一种常见的大气现象,空气中悬浮的水 ...
- 【需求响应】基于数据驱动的需求响应优化及预测研究(Matlab代码实现)
- 【数字信号处理】基于DFT的滤波系列3之插值滤波(含MATLAB代码)
四.基于DFT的(理想)滤波 例2:一个"警告" "理想DFT滤波器"虽然简单.有效,但可能会导致意想不到的问题.在博客 [数字信号处理]基于DFT的滤波系列2 ...
- 基于BP神经网络的非线性函数拟合(一维高斯函数)研究-含Matlab代码
目录 一.引言 二.BP神经网络的结构与原理 2.1 信息前向传播 2.2 误差的反向传播过程 三.基于BP神经网络的非线性函数拟合 3.1 数据生成 3.2 神经网络拟合结果 四.参考文献 五.Ma ...
- 文献综述--------山东某地区基于深度学习神经网络的配电网负荷预测研究
摘 要:地区电网负荷预测是供电企业在电网建设.运营过程中一项十分要的基础性的工作.小到一个企业的负荷预测,大到全国性电网的负荷预测研究,它的应用结果都会对适用范围内的企业经营管理.电力设施(电网)的 ...
- 一种基于深度学习(卷积神经网络CNN)的人脸识别算法-含Matlab代码
目录 一.引言 二.算法的基本思想 三.算法数学原理 3.1 权值共享 3.2 CNN结构 四.基于卷积神经网络的人脸识别算法-Matlab代码 五.Matlab源代码获取 一.引言 在工程应用中经常 ...
- 基于AlexNet卷积神经网络的手写体数字识别系统研究-附Matlab代码
⭕⭕ 目 录 ⭕⭕ ✳️ 一.引言 ✳️ 二.手写体数字识别系统 ✳️ 2.1 MNIST 数据集 ✳️ 2.2 CNN ✳️ 2.3 网络训练 ✳️ 三.手写体数字识别结果 ✳️ 四.参考文献 ✳️ ...
- 基于模板匹配的手写字体数字识别-含Matlab代码
目录 一.引言 二.系统知识的表示与组织 2.1 规则前提条件的描述 2.2 规则结论的表示 2.3 知识库的组织 三.手写字体数字识别算法流程 四.识别结果 五.参考文献 六.Matlab代码获取 ...
最新文章
- samtools 检测bam文件的完整度
- docker 搭建私有仓库
- 深入分析Synchronized原理(阿里面试题)
- 在线教育这条取经路,有道词典何时能修成正果?
- 当今世界最受人们重视的十大经典算法
- GPS UTC与北京时间的转换函数
- et操作 python wps_拿起来就用的office二次开发(python,win32com使用经历总结)
- Linux篇 | 多网卡绑定技术 binding 和 网络组nmcli
- 深圳大学计算机课程表2018,深圳大学国际交流学院2017—2018学年第1学期本科生课程表...
- 重温Android中的消息机制
- VSCode使用VIM复制内容到系统剪切板
- android之修改gradle源
- 软件项目管理案例教程(第三版)课后习题及答案
- SSM SpringBoot vue高校实训管理系统
- linux 配置jdk 环境变量 没效果,linux下jdk环境变量配置深度分析----解决环境变量不生效的问题...
- centos 虚拟机glibc升级_CentOS 6 glibc升级到2.15
- 考虑实时安全优化的自学习自适应交通信号控制
- MATLAB编写m函数理解 y=f(g(x))*h(x)
- 古董笔记本GTX1050+CUDA9.2+Pytorch安装
- Git Github学习笔记
热门文章
- 【机房收费个人版】触发器与存储过程
- win10安装c语言不兼容,手把手还原win10系统visual c++不兼容的技巧
- 关于Matplotlib实验中出现NameError: name ‘rgb2gray‘ is not defined的解决
- R语言使用duplicated函数去除重复项
- 计算机培训考试内容,计算机等级考试的科目和内容解析
- 医疗行业大数据应用的三个案例
- 操作系统之移臂调度算法
- mybatis使用truncate清空表
- 反积分饱和 程序_三面大疆惨败,因为不懂PID的积分抗饱和
- 如何利用Parsec+Zerotier+moon实现云电脑云游戏