码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 回归预测 | Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测


    回归预测 | Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测

    目录

      • 回归预测 | Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测
        • 预测效果
        • 基本介绍
        • 程序设计
        • 参考资料

    预测效果

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

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

    基本介绍

    1.Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测(完整源码和数据);
    2.数据集为excel,多输入单输出数据集,运行主程序main.m即可,其余为函数文件,无需运行;
    3.优化的参数为:三个参数,储备池规模,学习率,正则化系数。命令窗口输出RMSE、MAPE、MAE、R2等评价指标;
    4.运行环境Matlab2018b及以上;
    5.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。

    程序设计

    • 完整源码和数据获取方式资源处直接下载Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测。
    %%  清空环境变量
    warning off             % 关闭报警信息
    close all               % 关闭开启的图窗
    clear                   % 清空变量
    clc                     % 清空命令行
    
    %%  数据归一化
    [p_train, ps_input] = mapminmax(P_train, 0, 1);
    p_test = mapminmax('apply', P_test, ps_input);
    
    [t_train, ps_output] = mapminmax(T_train, 0, 1);
    t_test = mapminmax('apply', T_test, ps_output);
    
    %%  参数设置
    fun = @getObjValue;                 % 目标函数
    dim = 3;                            % 优化参数个数
    lb  = [100, 0.001, 0.001];          % 优化参数目标下限(储备池规模,学习率,正则化系数)
    ub  = [800, 2.000, 0.100];          % 优化参数目标上限(储备池规模,学习率,正则化系数)
    pop = 10;                           % 数量
    Max_iteration = 20;                 % 最大迭代次数
    Init = 30;                          % 初始化储备池(样本数)
    
    %%  优化算法
    [Best_score,Best_pos, curve] = GWO(pop, Max_iteration, lb, ub, dim, fun);
    
    %%  获取最优参数
    hidden = round(Best_pos(1));             % 储备池规模
    lr     = Best_pos(2);             % 学习率(更新速度)
    reg    = Best_pos(3);             % 正则化系数
    
    %%  训练模型
    net = esn_train(p_train, t_train, hidden, lr, Init, reg);
    
    %%  预测
    t_sim1 = esn_sim(net, p_train);
    t_sim2 = esn_sim(net, p_test );
    
    %%  数据反归一化
    T_sim1 = mapminmax('reverse', t_sim1, ps_output);
    T_sim2 = mapminmax('reverse', t_sim2, ps_output);
    
    %%  均方根误差
    error1 = sqrt(sum((T_sim1 - T_train).^2) ./ M);
    error2 = sqrt(sum((T_sim2 - T_test ).^2) ./ N);
    
    %%  适应度曲线
    figure
    plot(1 : length(curve), curve, 'LineWidth', 1.5);
    title('SSA-ESN', 'FontSize', 10);
    xlabel('迭代次数', 'FontSize', 10);
    ylabel('适应度值', 'FontSize', 10);
    grid on
    
    %%  绘图
    %% 测试集结果
    figure;
    plotregression(T_test,T_sim2,['回归图']);
    figure;
    ploterrhist(T_test-T_sim2,['误差直方图']);
    %%  均方根误差 RMSE
    error1 = sqrt(sum((T_sim1 - T_train).^2)./M);
    error2 = sqrt(sum((T_test - T_sim2).^2)./N);
    
    %%
    %决定系数
    R1 = 1 - norm(T_train - T_sim1)^2 / norm(T_train - mean(T_train))^2;
    R2 = 1 - norm(T_test -  T_sim2)^2 / norm(T_test -  mean(T_test ))^2;
    
    %%
    %均方误差 MSE
    mse1 = sum((T_sim1 - T_train).^2)./M;
    mse2 = sum((T_sim2 - T_test).^2)./N;
    
    
    % CSDN 机器学习之心
    

    参考资料

    [1] https://blog.csdn.net/kjm13182345320/article/details/128577926?spm=1001.2014.3001.5501
    [2] https://blog.csdn.net/kjm13182345320/article/details/128573597?spm=1001.2014.3001.5501

  • 相关阅读:
    VAD监测(一)
    【解决】修改 UI界面渲染层级 的常见误区
    python的迭代器和生成器
    梯度下降法公式推导+实战--以一元、多元线性回归为例-猛男技术控
    ISIS——LSP讲解
    「PAT乙级真题解析」Basic Level 1106 2019数列 (问题分析+完整步骤+伪代码描述+提交通过代码)
    Java类加载器详解
    深入理解Java中的线程安全List:CopyOnWriteArrayList原理和应用
    交换机与路由器技术-08-路由器上配置DHCP
    自动删除大文件日志、过期日志
  • 原文地址:https://blog.csdn.net/kjm13182345320/article/details/139711077
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号