Matlab(小波神经网络时间序列预测)

时间序列数据

66 64 60 58 17 49 34 17 8 53 15 15 45 57 33 42 8 52 24 29 -13 37 37 4 32 38 68 77 95 119 161 184 276 247 251 193 226 213 195 182 166 188 149 132 167 181 203 219 226 216 234 197 219 230 247 238 259 270 232 202 243 223 202 235 184 215 217 209 199 197 226 217 254 243 281 285 285 251 288 236 266 214 213 186 209 176 163 199 171 170 134 128 72 113 94 78 42 25 21 32

输入向量与输出向量的确定

输入向量:预测时间点的前4个数据

输出向量:预测时间点的数据

代码调试分析

%设置网络节点数

M = size(input,2);   %输入层节点数(input:N x M)

n = 6;                     %隐含层节点数

N = size(output,2); %输出层节点数(output:N x 1)

%设置网络权值初始化

Wjk = randn(n,M);Wjk_1 = Wjk;Wjk_2 = Wjk_1;     %输入层-隐含层权值

Wij = randn(N,n);Wij_1 = Wjk;Wij_2 = Wjk_1;     %隐含层-输出层权值

a = randn(1,n);a_1 = a;a_2 = a_1;                 %小波函数的平移因子

b = randn(1,n);b_1 = a;b_2 = b_1;                 %小波函数的伸缩因子

%权值学习增量初始化

d_Wjk=zeros(n,M);

d_Wij=zeros(N,n);

d_a=zeros(1,n);

d_b=zeros(1,n);

%设置学习率

lr1 = 0.01;

lr2 = 0.001;

time = 1000; %最大迭代次数

%数据归一化

[inputn,inputps] = mapminmax(input');      %归一化的数据格式:M x N

[outputn,outputps] = mapminmax(output');  %归一化的数据格式:1 x N

inputn = inputn';

outputn = outputn';

%节点初始化

y=zeros(1,N);

net=zeros(1,n);

net_ab=zeros(1,n);

%网络训练

for i=1:time

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

function y=mymorlet(t)

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

end

%网络预测

test = mapminmax('apply',input_test',inputps);

test = test';

for i=1:size(test,1)

vec = test(i,:);

for j=1:n

for k=1:M

net(j) = net(j)+Wjk(j,k)*vec(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,'-or')

hold on

plot(output_test,'b--')

小波神经网络(时间序列预测)相关推荐

  1. 小波神经网络短期负荷分析,小波神经网络的缺点

    什么是信号的多分辨率分析? . 信号的多分辨率分析(MRA,Multi-resolutionAnalysis)又称为多尺度分析,是建立在函数空间概念的理论,创建者S.Mallat是在研究图像处理问题时 ...

  2. 《MATLAB 神经网络43个案例分析》:第32章 小波神经网络的时间序列预测——短时交通流量预测

    <MATLAB 神经网络43个案例分析>:第32章 小波神经网络的时间序列预测--短时交通流量预测 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB ...

  3. bp神经网络预测未来五年数据_基于小波神经网络的数据中心KPI预测

    随着软件和微服务的发展,智能运维越来越受到人们的重视.在大量的运维数据里,最不可忽视的就是各种关键性能指标数据(Key Performance Indicators,KPI),它们在数学上都可以被表达 ...

  4. python神经网络编程 豆瓣,小波神经网络预测python

    什么是"小波神经网络"?能干什么用呀 小波神经网络(Wavelet Neural Network, WNN)是在小波分析研究获得突破的基础上提出的一种人工神经网络. 它是基于小波分 ...

  5. 基于小波神经网络的短期网络流量数据预测

    目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 4.完整MATLAB 1.算法仿真效果 matlab2022a仿真结果如下: 2.MATLAB核心程序 .......... ...

  6. 基于小波神经网络的交通流预测

    %该代码为基于小波神经网络的交通流预测代码 % 清空环境变量 clc clear %网络参数配置 load traffic_flux input output input_test output_te ...

  7. 小波神经网络的基本原理,小波神经网络数据分析

    1.什么是"小波神经网络"?能干什么用呀 小波神经网络(Wavelet Neural Network, WNN)是在小波分析研究获得突破的基础上提出的一种人工神经网络.它是基于小波 ...

  8. 小波神经网络的基本原理,小波神经网络辨识分析

    什么是"小波神经网络"?能干什么用呀 小波神经网络(Wavelet Neural Network, WNN)是在小波分析研究获得突破的基础上提出的一种人工神经网络. 它是基于小波分 ...

  9. 系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN

    1 遗传算法 1.1 遗传算法简介: 遗传算法是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随 机化搜索方法.它是由美国的 J.Holland 教授 1975 年首先提出,其主要特 ...

最新文章

  1. Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务
  2. oracle 按日输出 取整数,Oracle按日周月分組統計,及next_day()函數詳解
  3. IDEA 运行键是灰色
  4. ipython和jupyter哪个好_对Python开发者而言,IPython仍然是Jupyter Notebook的核心
  5. 华科10年计算机考研复试笔试(算法基础)(1)
  6. oracle使一个字段自增,Oracle数据库实现一个字段自增
  7. 阿里巴巴招募鉴黄体验官,日薪1000元,小姐姐优先,要求阅“片”无数
  8. 深入理解JUnit 5的扩展模型
  9. 关于中断是否可以套嵌?
  10. 英文文献翻译软件,你知道哪些呢?
  11. win下hadoop配置环境后cmd中报错
  12. 手机号码编码规则是什么?
  13. ruoyi导入导出Excel
  14. 动态功能连接:前景、问题和解释
  15. 计算机主机模型安装顺序,【新手必备】CAD2021最新电脑配置要求附安装步骤详解...
  16. vue3+elementplus倒计时效果按钮
  17. 用传递函数求电路的频率特性
  18. 微信资料在电脑上怎么打印?
  19. 卧龙、凤雏!两源码学得一,代码质量都不会差!
  20. Python爬虫爬取淘宝、天猫某商品页面相关信息实例

热门文章

  1. Vue中 引入使用 vue-json-views
  2. Charles手机端抓包,抓取小说软件整本小说的示例
  3. 规则引擎Drools示例:个人所得税计算器、信用卡申请、保险产品准入规则
  4. 羊毛出在狗身上让猪来买单 - 智能音箱背后的平台经济...
  5. Linux中如何检测IP地址冲突问题
  6. WebRTC[7]-Failed to set remote offer sdp: Called with SDP without DTLS fingerprint
  7. 抱歉,我也不知道程序员35岁以后该怎么办!
  8. php 微信表情存储,轻松处理PHP开发中微信emoji表情mysql存储的问题
  9. 计算机编程课程顺序_您可以在5月开始学习530项免费的在线编程和计算机科学课程
  10. 签名一个mobileconfig