小波神经网络的时间序列预测模型

news2024/9/23 9:35:17

一、小波变换

波变换主要通过伸缩和平移实现多尺度细化,突出所要处理的问题细节,有效提取局部信息。

将傅里叶变换中无限长的三角函数基换成了有限长的会衰减的小波基。
在这里插入图片描述
小波变换不仅可以知道信号的频率成分,还能知道各频率成分出现的时刻。

二、小波神经网络

小波神经网络是改进的BP网络,将原先的隐含层的Sigmiod激活函数替换为小波函数,其表达式为:
ψ ( x ) = c o s ( 1.75 x ) e − x 2 / 2 ψ(x)=cos(1.75x)e^{-x^{2}/2} ψ(x)=cos(1.75x)ex2/2

三、与BP神经网络相比

  • 相同:信号向前传播,误差反向椽笔
  • 不同:将原先的隐含层的Sigmiod激活函数替换为小波函数----Morlet小波

四、例子

1、wavenn.m文件

%% 该代码为基于小波神经网络的交通流预测代码
%
% <html>
% <table border="0" width="600px" id="table1">	<tr>		<td><b><font size="2">该案例作者申明:</font></b></td>	</tr>	<tr><td><span class="comment"><font size="2">1:本人长期驻扎在此<a target="_blank" href="http://www.ilovematlab.cn/forum-158-1.html"><font color="#0000FF">板块</font></a>里,对该案例提问,做到有问必答。本套书籍官方网站为:<a href="http://video.ourmatlab.com">video.ourmatlab.com</a></font></span></td></tr><tr>		<td><font size="2">2:点此<a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-284318&backurl=http://www.dangdang.com/">从当当预定本书</a>:<a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-284318&backurl=http://www.dangdang.com/">《Matlab神经网络30个案例分析》</a>。</td></tr><tr>	<td><p class="comment"></font><font size="2">3</font><font size="2">:此案例有配套的教学视频,视频下载方式<a href="http://video.ourmatlab.com/vbuy.html">video.ourmatlab.com/vbuy.html</a></font><font size="2">。 </font></p></td>	</tr>			<tr>		<td><span class="comment"><font size="2">		4:此案例为原创案例,转载请注明出处(《Matlab神经网络30个案例分析》)。</font></span></td>	</tr>		<tr>		<td><span class="comment"><font size="2">		5:若此案例碰巧与您的研究有关联,我们欢迎您提意见,要求等,我们考虑后可以加在案例里。</font></span></td>	</tr>		</table>
% </html>
%% 清空环境变量
clc
clear

%% 网络参数配置
load traffic_flux input output input_test output_test

M=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';

error=zeros(1,maxgen);
%% 网络训练
for i=1:maxgen
    
    %误差累计
    error(i)=0;
    
    % 循环训练
    for kk=1:size(input,1)
        x=inputn(kk,:);
        yqw=outputn(kk,:);
   
        for j=1:n
            for k=1:M
                net(j)=net(j)+Wjk(j,k)*x(k);
                net_ab(j)=(net(j)-b(j))/a(j);
            end
            temp=mymorlet(net_ab(j));
            for k=1:N
                y=y+Wij(k,j)*temp;   %小波函数
            end
        end
        
        %计算误差和
        error(i)=error(i)+sum(abs(yqw-y));
        
        %权值调整
        for j=1:n
            %计算d_Wij
            temp=mymorlet(net_ab(j));
            for k=1:N
                d_Wij(k,j)=d_Wij(k,j)-(yqw(k)-y(k))*temp;
            end
            %计算d_Wjk
            temp=d_mymorlet(net_ab(j));
            for k=1:M
                for l=1:N
                    d_Wjk(j,k)=d_Wjk(j,k)+(yqw(l)-y(l))*Wij(l,j) ;
                end
                d_Wjk(j,k)=-d_Wjk(j,k)*temp*x(k)/a(j);
            end
            %计算d_b
            for k=1:N
                d_b(j)=d_b(j)+(yqw(k)-y(k))*Wij(k,j);
            end
            d_b(j)=d_b(j)*temp/a(j);
            %计算d_a
            for k=1:N
                d_a(j)=d_a(j)+(yqw(k)-y(k))*Wij(k,j);
            end
            d_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

%% 网络预测
%预测输入归一化
x=mapminmax('apply',input_test',inputps);
x=x';
yuce=zeros(92,1);
%网络预测
for i=1:92
    x_test=x(i,:);

    for j=1:1:n
        for k=1:1:M
            net(j)=net(j)+Wjk(j,k)*x_test(k);
            net_ab(j)=(net(j)-b(j))/a(j);
        end
        temp=mymorlet(net_ab(j));
        for k=1:N
            y(k)=y(k)+Wij(k,j)*temp ; 
        end
    end

    yuce(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('交通流量')

web browser www.matlabsky.com
%%
% <html>
% <table width="656" align="left" >	<tr><td align="center"><p><font size="2"><a href="http://video.ourmatlab.com/">Matlab神经网络30个案例分析</a></font></p><p align="left"><font size="2">相关论坛:</font></p><p align="left"><font size="2">《Matlab神经网络30个案例分析》官方网站:<a href="http://video.ourmatlab.com">video.ourmatlab.com</a></font></p><p align="left"><font size="2">Matlab技术论坛:<a href="http://www.matlabsky.com">www.matlabsky.com</a></font></p><p align="left"><font size="2">M</font><font size="2">atlab函数百科:<a href="http://www.mfun.la">www.mfun.la</a></font></p><p align="left"><font size="2">Matlab中文论坛:<a href="http://www.ilovematlab.com">www.ilovematlab.com</a></font></p></td>	</tr></table>
% </html>

2、mymorlet.m文件

function y=mymorlet(t)

y = exp(-(t.^2)/2) * cos(1.75*t);

3、d_mymorlet.m文件

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、运行结果

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win10蓝屏问题:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED

最近一段时间&#xff0c;我一直出现蓝屏的情况&#xff0c; 以为是CPU散热不行导致的重启&#xff0c; 因为比较频繁所以在此记录解决这个问题&#xff0c; 还是一贯的风格&#xff1a;图文并茂。终止代码&#xff1a;SYSTEM_THREAD_EXCEPTION_NOT_HANDLED失败的操作&#xff…

关于灰度发布基本问题的解答及轻量化落地方案

由于工作需要&#xff0c;近期又恶补了一下“灰度发布”的相关知识&#xff0c;也和身边小伙伴探讨了轻量化实现灰度发布的落地方案。借此机会&#xff0c;正好将相关内容跟大家整理分享一下。 什么是灰度&#xff1f; 要想了解这个问题就要先明白什么是灰度。灰度从字面意思…

BGP综合实验(华为)

题目&#xff1a; 思路&#xff1a; 把路由划分在AS1,AS2,AS3之中&#xff0c;并使各网段之间的网络互通。明确交接端的路由的路由宣告在哪个区域&#xff0c;例如R1宣告在1.1.1.0 24 网段中&#xff08;易于识别的网段&#xff09;R1对应1.1.1.0网段。其他的路由器以此推类。利…

gma 地理空间绘图:(1)绘制简单的世界地图-1.地图绘制与细节调整

了解 gma gma 是什么&#xff1f; gma 是一个基于 Python 的地理、气象数据快速处理和数据分析函数包&#xff08;Geographic and Meteorological Analysis&#xff0c;gma&#xff09;。gma 网站&#xff1a;地理与气象分析库。 gma 的主要功能有哪些&#xff1f; 气候气象&a…

基于大数据的公共建筑能耗监测系统的应用探究

摘要&#xff1a;为了解决当前公共建筑能耗居高不下的突出问题&#xff0c;借助当前信息化技术手段&#xff0c;围绕公共建筑能耗监测系统中的大数据应用&#xff0c;从监测系统的总设计框架入手&#xff0c;分别就物联网中数据采集器设计方式、数据传输技术、数据库部署方式分…

【浪漫情人节】送你Python表白神器,祝天下有情人终成眷属

哈哈哈再过十几天就到了一年一度的情人节啦&#xff01;如此浪漫的日子&#xff0c;小王决定用Python写一个简单的表白神器送给大家&#xff0c;祝天下有情人终成眷属&#xff01; 目录 前言 一、Turtle小海龟 1. 基本函数 2. 漂浮爱心 二、Tkinter界面设计 1. 基本…

微信小程序015中医知识库百科科普系统

本系统为网上用户提供了一个在线浏览知识的平台。主要实现了用户登陆注册、在线浏览知识的功能&#xff0c;用户可以将自己的拥有的知识信息上传到中医药知识库系统中以供其他用户在线浏览并评论。同时实现了中医药知识库系统的后台管理功能&#xff0c;提供了管理员和操作员权…

06 Alibaba微服务组件Sentinel (1)

1、分布式系统遇到的问题 服务的可用性问题 服务的可用性场景 在一个高度服务化的系统中,我们实现的一个业务逻辑通常会依赖多个服务, 如图所示: 如果其中的下单服务不可用, 就会出现线程池里所有线程都因等待响应而被阻塞, 从而造成整个服务链路不可用&#xff0c; 进而导致…

深度解锁 CRUD 应用开发平台

全文 2400 字 阅读时间约 8 分钟 本文首发于码匠技术博客 目录 使用 CRUD 应用开发平台的好处 CRUD 应用开发平台的主要功能 如何使用 CRUD 应用开发平台&#xff1f; 如何自定义 CRUD 应用开发平台&#xff1f; 使用码匠开发的 CRUD 应用程序类型 关于码匠 CRUD 应用是具…

tomcat多实例优化及zabbix监控群集

tomcat简介Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目&#xff0c;由Apache,Sun和其他一些公司及个人共同开发而成。Tomcat服务器是一个免费的开放源代码的Web应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和…

LeetCode——2315. 统计星号

一、题目 给你一个字符串 s &#xff0c;每两个连续竖线 ‘|’ 为 一对 。换言之&#xff0c;第一个和第二个 ‘|’ 为一对&#xff0c;第三个和第四个 ‘|’ 为一对&#xff0c;以此类推。 请你返回不在 竖线对之间&#xff0c;s 中 ‘*’ 的数目。 注意&#xff0c;每个竖…

python flask 操作 Redis,包含详细代码

使用 Flask 操作 Redis 可以通过安装 Redis 的 Python 库并在 Flask 中使用它来实现。 正式学习前&#xff0c;需要先确定 Redis 已安装并可正常运行 运行 redis-server.exe redis.windows.conf 启动 Redis 服务器 运行 redis-cli.exe ping 检查 Redis 服务器是否运行正常 运行…

IP地址扫描程序/扫描工具

随着许多组织采用自带设备 &#xff08;BYOD&#xff09; 等策略&#xff0c;IT 网络变得越来越复杂。随着越来越多的设备连接到网络&#xff0c;IP 地址扫描势在必行&#xff0c;以确保设备在连接到网络时不会遇到问题。IP 地址扫描器是 OpUtils 中的一个模块&#xff0c;是一…

Windows包管理工具winget

文章目录简介实操简介 在Win10或者Win11中默认安装了winget工具&#xff0c;可以直接在命令行中输入命令&#xff0c;如果有反应&#xff0c;说明已经安装。 >winget -v v1.4.10173输入winget可以查看命令列表 命令说明show显示包的相关信息install安装给定的程序包unins…

几何对象基本元素与表现

点与向量 点 (point) 表示空间中的位置&#xff0c;它有空间中的坐标&#xff0c;例如在三维空间中&#xff0c;点有 (x, y, z) 坐标。 向量 (vector) 是有方向的量&#xff0c;它可以表示在空间中的移动。向量可以通过两个点的差计算&#xff0c;它连接起始点和终止点。 结…

第3章:基于媒体查询生成PDF

图:pdfHTML C3F01 检查示例HTML文件 图3.1显示了一个HTML页面,介绍 South by South West,这是德克萨斯州奥斯汀的一项年度活动。该页面分布在三个浏览器窗口中;请参阅 sxsw.html 和 sxsw.css 以获取用于创建此页面的html和css代码。这个HTML页面的布局灵感来自 w3schools…

vite 运行项目报错 ‘axios/index.js‘ does not provide anexport named ‘default‘

报错信息 报错信息&#xff1a;The requested module ‘/node_modules/axios/index.js?v2866e624’ does not provide an export named ‘default’ 现象 使用 vite 打包工具开发时出现&#xff0c;生产环境正常 原因 原因在于 Vite 是完全依靠 ESM 原生能力的&#xff0c…

jspssm学生宿舍预订报修管理系统

目录 摘 要 1 Abstract 2 1 绪论 3 1.1 课题背景 4 1.2 课题研究现状 5 1.3 初步设计方法与实施方案 6 1.4 本文研究内容 7 2 系统开发环境 8 2.1 Java语言 9 2.2 JSP技术 9 2.3 B/S架构 9 2.4 Eclipse环境配置 9 2.5 MySQL数据库 9 3 …

springBean的作用域

前言&#xff1a;最近在进行springBean的作用域学习&#xff0c;并且学习了对应的例子。这里进行一下总结 一&#xff1a;Bean的作用域基础概念 如果想学习SpringBean的生命周期&#xff0c;那么就必须要学习Bean的作用域。因为不同的作用域的bean的生命周期不同 1:singleto…

基于VS2019的ceres solver配置

一、ceres solver介绍Ceres Solver 是一个开源的C库&#xff0c;用于建模和解决大型、复杂的优化问题。它可以用来解决有边界约束的非线性最小二乘法问题和一般无约束的优化问题。官网&#xff1a;http://www.ceres-solver.org/案例网址&#xff1a;http://www.ceres-solver.or…