【预测模型】基于鲸鱼算法优化卷积神经网络CNN预测matlab源码

1 简介

1.1 鲸鱼算法

1.2 卷积神经网络

2 部分代码

%%基于鲸鱼算法改进cnn预测

clc;clear;close all

load Y1_all.mat rxSymb
load SINR1_all.mat sinr
%%
%序列的前 90% 用于训练,后 10% 用于测试
shuru=size(rxSymb,2);%输入层数
numTimeStepsTrain = floor(0.90*size(rxSymb,1));%训练样本数
numTimeStepsTest=size(rxSymb,1)-numTimeStepsTrain;%测试样本数
train_x = rxSymb(1:numTimeStepsTrain,:)';%训练集输入
train_y = sinr(1:numTimeStepsTrain,:)';%训练集输出
test_x =rxSymb(numTimeStepsTrain+1:end,:)';%测试集输入
test_y = sinr(numTimeStepsTrain+1:end,:)';%测试集输出
%输入数据是m*n形式的,m代表有多少个输入特征(数据是19个),n是有多少个样本,输出数据是1*n,输出是单输出
%数据归一化(或者标准化,看哪个效果好)
[train_x,minx,maxx, train_yy,miny,maxy] =premnmx(train_x,train_y);%归一化
test_x=tramnmx(test_x,minx,maxx);%归一化
test_y=tramnmx(test_y,miny,maxy);%归一化
%数据的一个转换,转换成MATLAB的CNN的输入数据形式,是4-D形式的,最后一维就是样本数
trainD=reshape(train_x,[shuru,1,1,numTimeStepsTrain]);%训练集输入
testD=reshape(test_x,[shuru,1,1,numTimeStepsTest]);%测试集输入
targetD = train_y;%训练集输出
targetD_test = test_y;%测试集输出

data = sinr(numTimeStepsTrain+1:end,:)';%测试集输出
%% WOA
lb=0.001;%学习率下限
ub=0.01;%学习率上限
dim=1;%维度,即一个优化参数
SearchAgents_no=2; % 鲸鱼数量
Max_iter=50; % 迭代次数
% initialize position vector and score for the leader
Leader_pos=zeros(1,dim);%初始化领头鲸鱼的位置
Leader_score=inf; %%初始化全局最小值
%
Positions=ceil(rand(SearchAgents_no,dim).*(ub-lb)+lb);%初始化种群
Convergence_curve=zeros(1,Max_iter);%记录每代最佳适应度值
t=0;% 计时器

   Convergence_curve(t)=Leader_score;%保存每一代的最小值
   
end
figure(1)
subplot(2,1,1)
plot(data(1,:),'-*','linewidth',3)
hold on
plot(YPred_best(1,:),'-s','linewidth',3)
legend('实际值','预测值')
grid on
xlabel('时间')
ylabel('数据值')
title('鲸鱼算法优化cnn预测图')
subplot(2,1,2)
stem(YPred_best(1,:)-data(1,:))
xlabel('时间')
ylabel('均方差值')
title('鲸鱼算法优化cnn预测均方差图 ' )
figure(2)
plot(Convergence_curve)
xlabel('迭代次数')
ylabel('适应度值')
title(['鲸鱼算法优化cnn适应度曲线,最佳学习率=',num2str( Leader_pos)])

3 仿真结果

4 参考文献

[1]江远强. 一种基于鲸鱼算法优化LVQ神经网络的欺诈行为检测方法:. 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值