小波神经网络的时间序列预测——短时交通流量预测

        大家好,我是带我去滑雪!

       小波神经网络(Wavelet Neural Network,WNN)结合了小波变换和神经网络的特性,是一种在信号处理和模式识别领域应用广泛的神经网络模型。它的设计灵感来自于小波变换的多尺度分析特性和神经网络的非线性映射能力,通过将小波变换与神经网络结合,旨在更好地处理复杂的信号和数据。小波变换是一种数学工具,用于将信号分解为不同尺度的成分。小波变换的多尺度分析能力使得小波神经网络能够更好地捕捉信号的局部特征。小波神经网络的基础是神经元和神经网络的结构。神经元的激活函数通常采用小波函数,以利用小波的局部特性。

      本期将利用小波神经网络实现短时交通流量预测。

目录

一、问题背景与模型建立

(1)小波理论

(2)小波神经网络

 (3)数据

二、代码实现与结果分析

(1)小波神经网络初始化

(2)小波神经网络训练

(3)小波函数及小波函数偏导数

(4) 小波神经网络预测

(5) 结果分析


一、问题背景与模型建立

(1)小波理论

       小波分析是针对傅里叶变换的不足发展而来的。傅里叶变换是信号处理领域中应用最广泛的一种分析手段,然而它有一个严重的不足,就是变换时抛弃了时间信息,通过变换结果无法判断某个信号发生的时间,即傅里叶变换在时域中没有分辨能力。小波是一种长度有限、平均值为0的波形,它的特点包括:时域都具有紧支集或近似紧支集;直流分量为0。小波函数是由一个母小波函数经过平移与尺寸伸缩得到,小波分析把信号分解成一系列小波函数的叠加。

(2)小波神经网络

        小波神经网络的基础是神经元和神经网络的结构。神经元的激活函数通常采用小波函数,以利用小波的局部特性。小波神经网络权值参数修正算法类似于BP神经网络权值修正算法,采用梯度修正法修正网络的权值和小波基函数参数,从而使小波神经网络预测输出不断逼近期望输出。小波神经网络算法训练步骤如下:

小波神经网络(Wavelet Neural Network,WNN)的训练步骤通常包括以下几个关键步骤:

  • 数据准备: 收集并准备用于训练和测试的数据集。数据集应包含输入特征和相应的目标输出。确保数据的质量和合理性是训练成功的基础。
  • 小波变换: 对输入信号进行小波变换,以获取多尺度的表示。这有助于网络更好地捕捉信号的局部特征。常用的小波函数有Haar、Daubechies、和Gaussian等。
  • 网络结构设计: 定义小波神经网络的结构,包括网络的层数、每层的神经元数量、激活函数的选择等。这一步涉及到确定网络的拓扑结构,以便有效地学习输入与输出之间的映射。
  • 权重初始化: 对网络的权重进行初始化。合适的权重初始化有助于加速网络的收敛过程。一般来说,可以采用随机初始化的方法。
  • 前向传播: 将输入信号通过网络进行前向传播,得到网络的输出。这涉及到将输入信号通过每一层的神经元,最终得到网络的输出结果。
  • 误差计算: 计算网络输出与实际目标之间的误差。这可以使用各种损失函数来衡量,例如均方误差(Mean Squared Error,MSE)。
  • 反向传播: 使用反向传播算法来调整网络的权重,以减小误差。这涉及计算梯度并使用梯度下降或其他优化算法来更新权重。
  • 迭代训练: 重复进行前向传播、误差计算和反向传播的步骤,直到网络的性能满足预定的标准或训练次数达到预定值。
  • 验证和调优: 使用验证集对网络进行评估,检查模型的泛化性能。根据验证结果,可能需要调整网络结构、学习率等超参数,以优化模型的性能。
  • 测试: 使用测试集对最终训练好的网络进行评估,以评估模型在新数据上的性能。

 (3)数据

       首先采集4天的交通流量数据,每隔15分钟记录一次该段时间内的交通流量,一共记录384个时间点的数据,用3天共288个交通流量的数据训练小波神经网络,最后用训练好的小波神经网络预测第4天的交通流量。

二、代码实现与结果分析

(1)小波神经网络初始化

load traffic_flux input output input_test output_testM=size(input,2); %输入节点个数
N=size(output,2); %输出节点个数n=6; %隐形节点个数
lr1=0.01; %学习概率
lr2=0.001; %学习概率
maxgen=100; %迭代次数%权值初始化
Wjk=randn(n,M);Wjk_1=Wjk;Wjk_2=Wjk_1;
Wij=randn(N,n);Wij_1=Wij;Wij_2=Wij_1;
a=randn(1,n);a_1=a;a_2=a_1;
b=randn(1,n);b_1=b;b_2=b_1;%节点初始化
y=zeros(1,N);
net=zeros(1,n);
net_ab=zeros(1,n);%权值学习增量初始化
d_Wjk=zeros(n,M);
d_Wij=zeros(N,n);
d_a=zeros(1,n);
d_b=zeros(1,n);%% 输入输出数据归一化
[inputn,inputps]=mapminmax(input');
[outputn,outputps]=mapminmax(output'); 
inputn=inputn';
outputn=outputn';

(2)小波神经网络训练

for i=1:maxgen%误差累计error(i)=0;% 循环训练for kk=1:size(input,1)x=inputn(kk,:);yqw=outputn(kk,:);for j=1:nfor k=1:Mnet(j)=net(j)+Wjk(j,k)*x(k);net_ab(j)=(net(j)-b(j))/a(j);endtemp=mymorlet(net_ab(j));for k=1:Ny=y+Wij(k,j)*temp;   %小波函数endend%计算误差和error(i)=error(i)+sum(abs(yqw-y));%权值调整for j=1:n%计算d_Wijtemp=mymorlet(net_ab(j));for k=1:Nd_Wij(k,j)=d_Wij(k,j)-(yqw(k)-y(k))*temp;end%计算d_Wjktemp=d_mymorlet(net_ab(j));for k=1:Mfor l=1:Nd_Wjk(j,k)=d_Wjk(j,k)+(yqw(l)-y(l))*Wij(l,j) ;endd_Wjk(j,k)=-d_Wjk(j,k)*temp*x(k)/a(j);end%计算d_bfor k=1:Nd_b(j)=d_b(j)+(yqw(k)-y(k))*Wij(k,j);endd_b(j)=d_b(j)*temp/a(j);%计算d_afor k=1:Nd_a(j)=d_a(j)+(yqw(k)-y(k))*Wij(k,j);endd_a(j)=d_a(j)*temp*((net(j)-b(j))/b(j))/a(j);end%权值参数更新      Wij=Wij-lr1*d_Wij;Wjk=Wjk-lr1*d_Wjk;b=b-lr2*d_b;a=a-lr2*d_a;d_Wjk=zeros(n,M);d_Wij=zeros(N,n);d_a=zeros(1,n);d_b=zeros(1,n);y=zeros(1,N);net=zeros(1,n);net_ab=zeros(1,n);Wjk_1=Wjk;Wjk_2=Wjk_1;Wij_1=Wij;Wij_2=Wij_1;a_1=a;a_2=a_1;b_1=b;b_2=b_1;end
end

(3)小波函数及小波函数偏导数

function y=mymorlet(t)y = exp(-(t.^2)/2) * cos(1.75*t);function y=d_mymorlet(t)y = -1.75*sin(1.75*t).*exp(-(t.^2)/2)-t* cos(1.75*t).*exp(-(t.^2)/2) ;

(4) 小波神经网络预测

x=mapminmax('apply',input_test',inputps);
x=x';
yuce=zeros(92,1);
%网络预测
for i=1:92x_test=x(i,:);for j=1:1:nfor k=1:1:Mnet(j)=net(j)+Wjk(j,k)*x_test(k);net_ab(j)=(net(j)-b(j))/a(j);endtemp=mymorlet(net_ab(j));for k=1:Ny(k)=y(k)+Wij(k,j)*temp ; endendyuce(i)=y(k);y=zeros(1,N);net=zeros(1,n);net_ab=zeros(1,n);
end
%预测输出反归一化
ynn=mapminmax('reverse',yuce,outputps);%% 结果分析
figure(1)
plot(ynn,'r*:')
hold on
plot(output_test,'bo--')
title('预测交通流量','fontsize',12)
legend('预测交通流量','实际交通流量','fontsize',12)
xlabel('时间点')
ylabel('交通流量')

(5) 结果分析

        小波神经网络预测与实际情况比较图:

通过图像可以发现,小波神经网络能够比较精确地预测短时交通流量,网络预测值接近期望值。 

需要数据集的家人们可以去百度网盘(永久有效)获取:

链接:
提取码:2138 


更多优质内容持续发布中,请移步主页查看。

   点赞+关注,下次不迷路!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/192576.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决k8s通过traefik暴露域名失败并报错:Connection Refused的问题

我敢说本篇文章是网上为数不多的解决traefik暴露域名失败问题的正确文章。 我看了网上太多讲述traefik夸夸其谈的文章了,包含一大堆复制粘贴的水文和还有什么所谓“阿里技术专家”的文章,讲的全都是错的!基本没有一个能说到点子上去&#xf…

Istio学习笔记-部署模型

参考:Istioldie 1.18 / 部署模型 当您将 Istio 用于生产环境部署时,需要确定一系列的问题。 网格将被限制在单个集群中还是分布在多个集群中? 是将所有服务都放置在单个完全连接的网络中,还是需要网关来跨多个网络连接服务&#…

优秀智慧园区案例 - 新华三未来工厂制造园,园区业务创新及零碳升级

目录 一、新华三未来工厂制造园建设背景 二、未来工厂制造园总体设计思路 三、未来工厂制造园建设内容 四、关键技术及创新点 五、应用效益与推广 关键词:智慧园区解决方案,智慧园区建设总体方案,智慧园区建设规划方案,智慧园…

uniapp的实战总结大全

🙂博主:冰海恋雨 🙂文章核心:uniapp部分总结 目录 ​编辑 目录 前言: 解决方案 1. 跨平台开发 2. Vue.js生态 3. 组件库 4. 自定义组件 5. Native能力 6. 插件生态 7. 性能优化 写法 1. 模板&#xf…

PyCharm鼠标控制字体缩放

File->Settings->Keymap 右边搜索栏输入increase(放大),可以看到下面出现increase Font Size(放大字体尺寸),双击。 双击后出现几个选项,选择Add Mouse Shortcut,会出现一个页面给录入动作。 按住Ctrl同时鼠标向上滚动,该动…

【NLP】大型语言模型,ALBERT — 用于自监督学习的 Lite BERT

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

什么是OpenCL?

什么是OpenCL? 1.概述 OpenCL(Open Computing Language 开放计算语言)是一种开放的、免版税的标准,用于超级计算机、云服务器、个人计算机、移动设备和嵌入式平台中各种加速器的跨平台并行编程。OpenCL是由Khronos Group创建和管理的。OpenCL使应用程序…

为什么打开idea时,没有启动页面,如何解决?

更新idea2021.2后,当双击idea打开时,发现没有启动界面,直接进入IDEA界面,中间等待时间,让人误以为没有打开idea成功,使得多次点击idea图标。 解决方案就是 在idea界面菜单栏中找到帮助(Help)&a…

(论文阅读32/100)Flowing convnets for human pose estimation in videos

32.文献阅读笔记 简介 题目 Flowing convnets for human pose estimation in videos 作者 Tomas Pfister, James Charles, and Andrew Zisserman, ICCV, 2015. 原文链接 https://arxiv.org/pdf/1506.02897.pdf 关键词 Human Pose Estimation in Videos 研究问题 视频…

挂耳式运动耳机哪个品牌好?5款公认好用的运动耳机推荐

​在现代社会,耳机已经成为了人们生活中必不可少的数码设备。在运动的时候,佩戴耳机更是成为了很多人的标配。但是,市面上的运动耳机种类繁多,如何选择一款适合自己的呢?今天我为大家挑选了5款公认好用的运动耳机&…

PyTorch技术和深度学习——四、神经网络训练与优化

文章目录 1.神经网络迭代概念1)训练误差与泛化误差2)训练集、验证集和测试集划分3)偏差与方差 2.正则化方法1)提前终止2)L2正则化3)Dropout 3.优化算法1)梯度下降2)Momentum算法3)RM…

​软考-高级-系统架构设计师教程(清华第2版)【第4章 信息安全技术基础知识(P160~189)-思维导图】​

软考-高级-系统架构设计师教程(清华第2版)【第4章 信息安全技术基础知识(P160~189)-思维导图】 课本里章节里所有蓝色字体的思维导图

LeetCode(10)跳跃游戏 II【数组/字符串】【中等】

目录 1.题目2.答案3.提交结果截图 链接: 45. 跳跃游戏 II 1.题目 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nu…

机器学习-搜索技术:从技术发展到应用实战的全面指南

在本文中,我们全面探讨了人工智能中搜索技术的发展,从基础算法如DFS和BFS,到高级搜索技术如CSP和优化问题的解决方案,进而探索了机器学习与搜索的融合,最后展望了未来的趋势和挑战,提供了对AI搜索技术深刻的…

表单提交是

首先&#xff0c;确保你已经安装了Vue 3、Element UI和axios&#xff08;用于发送HTTP请求&#xff09;。你可以使用以下命令进行安装&#xff1a; bash复制代码 npm install vuenext element-ui axios --save <template> <el-form :model"form" :rules&q…

Java Stream 的常用API

Java Stream 的常用API 遍历&#xff08;forEach&#xff09; package com.liudashuai;import java.util.ArrayList; import java.util.List;public class Test {public static void main(String[] args) {List<Person> userList new ArrayList<>();userList.ad…

可视化技术专栏100例教程导航帖—学习可视化技术的指南宝典

&#x1f389;&#x1f38a;&#x1f389; 你的技术旅程将在这里启航&#xff01; &#x1f680;&#x1f680; 本文专栏&#xff1a;可视化技术专栏100例 可视化技术专栏100例领略各种先进的可视化技术&#xff0c;包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章…

Stable Diffusion 是否使用 GPU?

在线工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 3D数字孪生场景编辑器 Stable Diffusion 已迅速成为最流行的生成式 AI 工具之一&#xff0c;用于通过文本到图像扩散模型创建图像。但是&#xff0c;它需…

解决:element ui表格表头自定义输入框单元格el-input不能输入问题

表格表头如图所示&#xff0c;有 40-45&#xff0c;45-50 数据&#xff0c;且以输入框形式呈现&#xff0c;现想修改其数据或点击右侧加号增加新数据编辑。结果不能输入&#xff0c;部分代码如下 <template v-if"columnData.length > 0"><el-table-colu…

一则DNS被重定向导致无法获取MySQL连接处理

同事反馈xwik应用端报java exception 获取MySQL连接超时无法连接到数据库实例 经过告警日志发现访问进来的IP地址数据库端无法被解析&#xff0c;这里可以知道问题出现在Dns配置上了 通过以上报错检查/etc/resolve.conf 发现namesever 被重定向设置成了114.114.114.114 域名 …