【预测模型】小波神经网络的短时交通流量预测【Matlab 327期】

一、简介

在这里插入图片描述
在这里插入图片描述

二、源代码

%% 清空环境变量
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';

%% 网络训练
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

三、运行结果

在这里插入图片描述

四、备注

完整代码或者代写添加QQ 912100926
往期回顾>>>>>>
【预测模型】粒子群之lssvm预测模型【Matlab 005期】
【lssvm预测】鲸鱼优化算法之lssvm预测【Matlab 006期】
【SVM预测】蝙蝠算法之SVM预测模型【Matlab 007期】
【SVM预测】灰狼算法优化之SVM支持向量机预测模型【Matlab 008期】
【预测模型】基于BP神经网络的预测模型【Matlab 009期】
【lssvm预测】蝙蝠算法之改进的最小二乘支持向量机lssvm预测【Matlab 010期】
【ISTM预测】鲸鱼优化算法之改进的lSTM预测【Matlab 045期】
【SVM预测】蝙蝠算法之改进SVM预测模型【Matlab 046期】
【lSSVM预测】鲸鱼优化算法之lSSVM数据预测【Matlab 140期】
【ANN预测模型】差分算法之改进ANN网络预测【Matlab 141期】
【预测模型】RBF神经网络预测模型【Matlab 142期】
【预测模型】SVM回归预测算法之预测股票趋势【Matlab 143期】
【预测模型】BP神经网络之模型优化预测【Matlab 176期】
【预测模型】RLS算法之数据预测【Matlab 177期】
【预测模型】碳排放约束下之煤炭消费量优化预测【Matlab 178期】
【预测模型】神经网络的电力负荷预测模型【Matlab 211期】
【预测模型】SVM电力系统短期负荷预测【Matlab 212期】
【预测模型】BP神经网络的电力负荷预测模型【Matlab 213期】
【预测模型】基于BP神经网络的股票预测【Matlab 264期】
【预测模型】基于GM11一二三线城市房价的预测【Matlab 265期】
【预测模型】粒子群PSO优化BP神经网络风电功率预测【Matlab 266期】
【预测模型】最小二乘法的股票预测【Matlab 267期】
【预测模型】PSO优化CNN预测【Matlab 275期】
【预测模型】rnn循环神经网络预测【Matlab 276期】
【预测模型】bp神经网络风电功率预测【Matlab 326期】

猜你喜欢

转载自blog.csdn.net/m0_54742769/article/details/114291337