目录

  • 一、引言
  • 二、 预测建模及原理
    • 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代码相关推荐

  1. 基于径向基函数RBF神经网络的非线性函数拟合研究-含Matlab代码

    目录 一.RBF神经网络基本原理 二.模型建立 三.RBF网络拟合结果分析 四.注意事项 五.参考文献 六.Matlab代码获取 一.RBF神经网络基本原理 1988年Broomhead和Lowe将径 ...

  2. 一种基于卷积神经网络的图像去雾研究-含matlab代码

    目录 一.绪论 二.去雾卷积网络 2.1 特征提取 2.2 多尺度映射 2.3 局部均值 2.4 非线性回归 三.实验与分析 四.Matlab代码获取 一.绪论 雾是一种常见的大气现象,空气中悬浮的水 ...

  3. 【需求响应】基于数据驱动的需求响应优化及预测研究(Matlab代码实现)

  4. 【数字信号处理】基于DFT的滤波系列3之插值滤波(含MATLAB代码)

    四.基于DFT的(理想)滤波 例2:一个"警告" "理想DFT滤波器"虽然简单.有效,但可能会导致意想不到的问题.在博客 [数字信号处理]基于DFT的滤波系列2 ...

  5. 基于BP神经网络的非线性函数拟合(一维高斯函数)研究-含Matlab代码

    目录 一.引言 二.BP神经网络的结构与原理 2.1 信息前向传播 2.2 误差的反向传播过程 三.基于BP神经网络的非线性函数拟合 3.1 数据生成 3.2 神经网络拟合结果 四.参考文献 五.Ma ...

  6. 文献综述--------山东某地区基于深度学习神经网络的配电网负荷预测研究

    摘  要:地区电网负荷预测是供电企业在电网建设.运营过程中一项十分要的基础性的工作.小到一个企业的负荷预测,大到全国性电网的负荷预测研究,它的应用结果都会对适用范围内的企业经营管理.电力设施(电网)的 ...

  7. 一种基于深度学习(卷积神经网络CNN)的人脸识别算法-含Matlab代码

    目录 一.引言 二.算法的基本思想 三.算法数学原理 3.1 权值共享 3.2 CNN结构 四.基于卷积神经网络的人脸识别算法-Matlab代码 五.Matlab源代码获取 一.引言 在工程应用中经常 ...

  8. 基于AlexNet卷积神经网络的手写体数字识别系统研究-附Matlab代码

    ⭕⭕ 目 录 ⭕⭕ ✳️ 一.引言 ✳️ 二.手写体数字识别系统 ✳️ 2.1 MNIST 数据集 ✳️ 2.2 CNN ✳️ 2.3 网络训练 ✳️ 三.手写体数字识别结果 ✳️ 四.参考文献 ✳️ ...

  9. 基于模板匹配的手写字体数字识别-含Matlab代码

    目录 一.引言 二.系统知识的表示与组织 2.1 规则前提条件的描述 2.2 规则结论的表示 2.3 知识库的组织 三.手写字体数字识别算法流程 四.识别结果 五.参考文献 六.Matlab代码获取 ...

最新文章

  1. samtools 检测bam文件的完整度
  2. docker 搭建私有仓库
  3. 深入分析Synchronized原理(阿里面试题)
  4. 在线教育这条取经路,有道词典何时能修成正果?
  5. 当今世界最受人们重视的十大经典算法
  6. GPS UTC与北京时间的转换函数
  7. et操作 python wps_拿起来就用的office二次开发(python,win32com使用经历总结)
  8. Linux篇 | 多网卡绑定技术 binding 和 网络组nmcli
  9. 深圳大学计算机课程表2018,深圳大学国际交流学院2017—2018学年第1学期本科生课程表...
  10. 重温Android中的消息机制
  11. VSCode使用VIM复制内容到系统剪切板
  12. android之修改gradle源
  13. 软件项目管理案例教程(第三版)课后习题及答案
  14. SSM SpringBoot vue高校实训管理系统
  15. linux 配置jdk 环境变量 没效果,linux下jdk环境变量配置深度分析----解决环境变量不生效的问题...
  16. centos 虚拟机glibc升级_CentOS 6 glibc升级到2.15
  17. 考虑实时安全优化的自学习自适应交通信号控制
  18. MATLAB编写m函数理解 y=f(g(x))*h(x)
  19. 古董笔记本GTX1050+CUDA9.2+Pytorch安装
  20. Git Github学习笔记

热门文章

  1. 【机房收费个人版】触发器与存储过程
  2. win10安装c语言不兼容,手把手还原win10系统visual c++不兼容的技巧
  3. 关于Matplotlib实验中出现NameError: name ‘rgb2gray‘ is not defined的解决
  4. R语言使用duplicated函数去除重复项
  5. 计算机培训考试内容,计算机等级考试的科目和内容解析
  6. 医疗行业大数据应用的三个案例
  7. 操作系统之移臂调度算法
  8. mybatis使用truncate清空表
  9. 反积分饱和 程序_三面大疆惨败,因为不懂PID的积分抗饱和
  10. 如何利用Parsec+Zerotier+moon实现云电脑云游戏