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

1 简介

1.1 鲸鱼算法

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

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

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

1.2 卷积神经网络

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

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

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

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

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

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

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 仿真结果

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

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

4 参考文献

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

 

 

你可能感兴趣的:(预测模型,matlab,神经网络,算法)