回归预测 | MATLAB实现PSO-CNN粒子群算法优化卷积神经网络的数据多输入单输出回归预测

回归预测 | MATLAB实现PSO-CNN粒子群算法优化卷积神经网络的数据多输入单输出回归预测

目录

    • 回归预测 | MATLAB实现PSO-CNN粒子群算法优化卷积神经网络的数据多输入单输出回归预测
      • 效果一览
      • 基本介绍
      • 程序设计
      • 参考资料

效果一览

1
2
3
4
5

基本介绍

回归预测 | MATLAB实现PSO-CNN粒子群算法优化卷积神经网络的数据多输入单输出回归预测
MATLAB实现PSO-CNN粒子群算法优化卷积神经网络的数据多输入单输出回归预测(Matlab完整程序和数据)
输入7个特征,输出1个,即多输入单输出;
运行环境Matlab2018及以上,运行主程序main即可,其余为函数文件无需运行,所有程序放在一个文件夹,data为数据集;
命令窗口输出RMSEP、MAE、R2、MAPE。

程序设计

  • 完整程序和数据下载方式1(资源处直接下载):MATLAB实现PSO-CNN粒子群算法优化卷积神经网络的数据多输入单输出回归预测
  • 完整程序和数据下载方式2(订阅《CNN卷积神经网络》专栏,同时可阅读《CNN卷积神经网络》专栏收录的所有内容,数据订阅后私信我获取):MATLAB实现PSO-CNN粒子群算法优化卷积神经网络的数据多输入单输出回归预测
  • 完整程序和数据下载方式3(订阅《智能学习》专栏,同时获取《智能学习》专栏收录程序4份,数据订阅后私信我获取):MATLAB实现PSO-CNN粒子群算法优化卷积神经网络的数据多输入单输出回归预测
%%  记录最佳参数
Best_pos(1, 2) = round(Best_pos(1, 2));
best_lr = Best_pos(1, 1);
best_hd = Best_pos(1, 2);
best_l2 = Best_pos(1, 3);%%  建立模型
% ----------------------  修改模型结构时需对应修改fical.m中的模型结构  --------------------------
layers = [sequenceInputLayer(f_)            % 输入层lstmLayer(best_hd)                % LSTM层reluLayer                         % Relu激活层fullyConnectedLayer(outdim)       % 输出回归层regressionLayer];%%  参数设置
% ----------------------  修改模型参数时需对应修改fical.m中的模型参数  --------------------------
options = trainingOptions('adam', ...           % Adam 梯度下降算法'MaxEpochs', 500, ...                  % 最大训练次数 500'InitialLearnRate', best_lr, ...       % 初始学习率 best_lr'LearnRateSchedule', 'piecewise', ...  % 学习率下降'LearnRateDropFactor', 0.5, ...        % 学习率下降因子 0.1'LearnRateDropPeriod', 400, ...        % 经过 400 次训练后 学习率为 best_lr * 0.5'Shuffle', 'every-epoch', ...          % 每次训练打乱数据集'ValidationPatience', Inf, ...         % 关闭验证'L2Regularization', best_l2, ...       % 正则化参数'Plots', 'training-progress', ...      % 画出曲线'Verbose', false);%%  训练模型
net = trainNetwork(p_train, t_train, layers, options);%%  仿真验证
t_sim1 = predict(net, p_train);
t_sim2 = predict(net, p_test );%%  数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);
T_sim1=double(T_sim1);
T_sim2=double(T_sim2);
%%  均方根误差
error1 = sqrt(sum((T_sim1 - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2 - T_test ).^2) ./ N);
%% 参数初始化
popsize=pop;              %种群规模
lenchrom=dim;              %变量字串长度
fun = fobj;  %适应度函数
pc=0.7;                  %设置交叉概率
pm=0.3;                  %设置变异概率
if(max(size(ub)) == 1)ub = ub.*ones(dim,1);lb = lb.*ones(dim,1);  
end
maxgen=Max_iter;   % 进化次数  %种群%% 产生初始粒子和速度%随机产生一个种群GApop=initialization(pop, dim, ub, lb);       %随机产生个体
for i=1:popsize%计算适应度fitness(i)=fun(GApop(i,:));            %染色体的适应度
end%找最好的染色体
[bestfitness bestindex]=min(fitness);
zbest=GApop(bestindex,:);   %全局最佳
gbest=GApop;                %个体最佳
fitnessgbest=fitness;       %个体最佳适应度值
fitnesszbest=bestfitness;   %全局最佳适应度值%% 迭代寻优
for i=1:maxgendisp(['第',num2str(i),'次迭代'])%种群更新 GA选择更新GApop=Select2(GApop,fitness,popsize);% 交叉操作 GAGApop=Cross(pc,lenchrom,GApop,popsize,lb,ub);% 变异操作 GA变异GApop=Mutation(pm,lenchrom,GApop,popsize,[i maxgen],lb,ub);pop=GApop;for j=1:popsize%适应度值fitness(j)=fun(pop(j,:));%个体最优更新if fitness(j) < fitnessgbest(j)gbest(j,:) = pop(j,:);fitnessgbest(j) = fitness(j);end%群体最优更新if fitness(j) < fitnesszbestzbest = pop(j,:);fitnesszbest = fitness(j);endendcurve(i)=fitnesszbest;     
end
%%  边界数目
Boundary_no= size(ub, 2);%%  变量数目等于1
if Boundary_no == 1Positions = rand(SearchAgents_no, dim) .* (ub - lb) + lb;
end%% 如果每个变量有不同的上下界
if Boundary_no > 1for i = 1 : dimub_i = ub(i);lb_i = lb(i);Positions(:, i) = rand(SearchAgents_no, 1) .* (ub_i - lb_i) + lb_i;end
end

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/129215161
[2] https://blog.csdn.net/kjm13182345320/article/details/128105718

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过Jenkins实现Unity多平台自动打包以及相关问题解决

简介 通过本文可以了解到如何在windows和mac上部署Jenkins。并且通过Jenkins实现Unity在IOS,安卓和PC等多平台自动打包的功能&#xff0c;并且可以将打包结果通过飞书机器人同步到飞书群内。优化工作流&#xff0c;提高团队的开发效率。文末记录了实际使用Jenkins时遇到的各种问…

探索数字化前沿:数字化产品引领科技创新风潮

随着数字化时代的到来&#xff0c;国内数字化产品市场蓬勃发展&#xff0c;涌现出许多引领行业变革的产品。本文将介绍几个在数字孪生和人工智能领域取得突破的国内产品&#xff0c;带大家了解数字化产品的创新应用和影响力。 山海鲸可视化&#xff1a;山海鲸可视化是一款强大…

如何使用 Terraform 和 Git 分支有效管理多环境?

作者&#xff5c;Sumeet Ninawe 翻译&#xff5c;Seal软件 链接&#xff5c;https://spacelift.io/blog/terraform-environments 通常我们使用 Terraform 将我们的基础设施定义为代码&#xff0c;然后用 Terraform CLI 在我们选择的云平台中创建制定的基础设施组件。从表面上看…

Redis 6.2.4集群搭建

1. 说明 这里使用的是redis的cluster集权模式&#xff0c;没有用哨兵模式&#xff08;哨兵模式依赖哨兵节点&#xff0c;哨兵节点一旦挂掉就不再高可用了&#xff0c;因此没有采用&#xff09;。 由于Redis Cluster至少需要6个节点&#xff0c;因此&#xff0c;这里咱们采用的…

lesson7-1 Zigbee协议栈的使用

目录 协议栈的使用 协议栈的安装和协议栈工程创建 协议栈工程配置 选项卡选择 用户代码编写注意 信道选择及PANID分配 协议栈的使用 协议栈的安装和协议栈工程创建 首先进行协议栈的安装 如何创建自己的协议栈工程&#xff1a; &#xff08;1&#xff09;先把整个协议…

Qt 事件过滤器使用QPainter绘制温度

文章目录 【1】eventFilter使用简介【2】QPainter使用简介【3】QPainter绘制温度案例头文件源文件 【4】 UI界面设计【5】温度绘制图 【1】eventFilter使用简介 Qt的eventFilter是一个事件过滤器&#xff0c;可以用来捕获和处理Qt对象的事件。事件过滤器可以被安装到一个对象上…

基于SpringBoot和Vue的医疗设备管理系统的设计与实现(源码+文档+报告)

伴随着网络技术的发展&#xff0c;网络巨头们也在各自的行业中展开了激烈的竞争。网络技术已经渗透到了社会的各个角落&#xff0c;移动支付、远程医疗和健康管理等多种网络技术的普及也日益广泛。同时&#xff0c;网络产业的崛起也极大地影响了传统产业。对医疗设备管理系统的…

Ubuntu 20.04 LTS x86_64 SPEC CPU 2006 cpu2006-1.2.iso 测试笔记

环境 安装依赖项 sudo apt install gfortran 挂载iso sudo mkdir /mnt/cpu2006 sudo mount cpu2006-1.2.iso /mnt/cpu2006 安装 cd /mnt/cpu2006 sh install.sh -d /home/speccpu/cpu2006 SPEC CPU2006 InstallationTop of the CPU2006 tree is /mnt/cpu2006Installing F…

分析Spring Boot项目启动慢原因之 《一》打印bean耗时

分析Spring Boot项目启动原因之 一 打印bean耗时 由于项目比较久远&#xff0c;积累的代码犹如屎山&#xff0c;然后项目启动也特别慢&#xff0c;然后产生想要优化一下启动速度&#xff0c;故写了一个Bean启动时的耗时分析&#xff1a;package com.tekrally.assetManagement.u…

Mysql数据库管理

Mysql数据库管理 一、Mysql数据库管理1.常用的数据类型&#xff1a;2.查看数据库结构1.查看当前服务器中的数据库2.查看数据库中包含的表3.查看表的结构&#xff08;字段&#xff09; 二、SQL语句1.创建和删除数据库和表1.创建新的数据库2.创建新的表 2.管理表中的数据记录1.向…

LabVIEW开发呼吸分析系统

LabVIEW开发呼吸分析系统 在日常生活中&#xff0c;许多人都在练习调息法&#xff0c;但大多数人都不知道如何以完美的方式做。不当的做法不会带来适当的结果。一种使用LabVIEW分析呼吸信号的方法&#xff0c;以使人们以完美的方式练习调息。这有助于从业者按照系统指定的说明…

规划电子类专业生涯:打造单片机/嵌入式技术专家之路

如果我是一个电子类专业的学生&#xff0c;打算将来从事单片机/嵌入式方向的职业&#xff0c;我可能会采取以下步骤来规划我的职业生涯&#xff1a; 学术准备&#xff1a;我将全面学习电子工程的基础知识&#xff0c;包括模拟电子、数字电子、信号处理等方面的知识。我会确保自…