回归预测 | MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测

目录

    • 回归预测 | MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测
      • 写在前面
      • 效果一览
      • 基本描述
      • 模型描述
      • 程序设计
      • 参考资料

写在前面

程序获取 | 机器学习/深度学习程序获取方式,本篇文章程序和数据通过订阅组合优化专栏可以获取,程序和数据订阅后私信我,同时订阅后获取组合优化专栏收录的全部完整程序;也可以直接在机器学习之心资源处下载:MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测完整程序和数据。

效果一览

回归预测 | MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测_第1张图片
回归预测 | MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测_第2张图片
回归预测 | MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测_第3张图片

基本描述

MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测。鲸鱼优化算法(Whale Optimization Algorithm,WOA)本文将介绍一种新的受自然启发的元启发式优化算法——鲸鱼优化算法(WOA),该算法模拟了座头鲸的社会行为,并引入了气泡网狩猎策略。

模型描述

鲸鱼在大脑的某些区域有与人类相似的细胞,这些细胞被称为纺锤形细胞(spindle cells)。这些细胞负责人类的判断、情感和社会行为。换句话说,纺锤形细胞使我们人类有别于其他生物。鲸鱼的这些细胞数量是成年人的两倍,这是它们具有高度智慧和更富情感的主要原因。已经证明,鲸鱼可以像人类一样思考、学习、判断、交流,甚至变得情绪化,但显然,这都只是在一个很低的智能水平上。据观察,鲸鱼(主要是虎鲸)也能发展自己的方言。长短期记忆模型(long-short term memory)是一种特殊的RNN模型,是为了解决反向传播过程中存在梯度消失和梯度爆炸现象,通过引入门(gate)机制,解决了RNN模型不具备的长记忆性问题。公共LSTM单元由单元,输入门,输出门和忘记门组成。该单元记住任意时间间隔内的值,并且三个门控制进出单元的信息流。LSTM网络非常适合基于时间序列数据进行分类,处理和预测,因为在时间序列中的重要事件之间可能存在未知持续时间的滞后。开发LSTM是为了处理在训练传统RNN时可能遇到的爆炸和消失的梯度问题。对于间隙长度的相对不敏感性是LSTM相对于RNN,隐马尔可夫模型和其他序列学习方法在许多应用中的优势。

回归预测 | MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测_第4张图片

程序设计

  • 完整程序和数据

程序获取 | 机器学习/深度学习程序获取方式,本篇文章程序和数据通过订阅组合优化专栏可以获取,程序和数据订阅后私信我,同时订阅后获取组合优化专栏收录的全部完整程序;也可以直接在机器学习之心资源处下载:MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测完整程序和数据。

% 预设鲸鱼优化算法的参数 
popsize = 5; %种群数量
maxgen = 20;  % WOA最大的迭代次数
dim = 3; % 优化的自变量个数 ,依次为LSTM的第一和第二隐含层节点数,最大训练代数,初始学习率

   %输入输出数据
    L = size(output, 1); %样本总数
    %     testNumber = round(L*0.2); %设置四个样本测试
    testNumber =20; %设置四个样本测试
    trainNumber = L - testNumber; %训练样本数量
 
    % 划分训练集和测试集
    p_train = input(1:trainNumber, :)';
    t_train = output(1:trainNumber, :)';
    % 测试集 
    p_test = input(trainNumber+1:trainNumber+testNumber,:)';
    t_test = output(trainNumber+1:trainNumber+testNumber,:)';
        %% 归一化和元胞数组处理
    [pn_train ,ps]= mapminmax(p_train);
    [tn_train, ts] = mapminmax(t_train);
    %测试集的归一化
    pn_test = mapminmax('apply', p_test, ps);
    tn_test = mapminmax('apply', t_test, ts);

     for i = 1:length(t_train)
        P_train{i,1} =  pn_train(:,i);
    end
    for i = 1:length(t_test)
        P_test{i,1} =  pn_test(:,i);
    end

    %% 归一化和元胞数组处理p 4; % 优化的自变量个数 ,依次为LSTM的第一和第二隐含层节点数,最大训练代数,初始学习率
    lb = [1, 1, 0.001]; % 下限
    ub = [10,20, 0.01]; % 上限

    % initialize position vector and score for the leader,初始化位置向量和领导者得分
    Leader_pos=zeros(1,dim);
    Leader_score=inf; %change this to -inf for maximization problems,将此更改为-inf以获得最大化问题,Inf无穷大


    %Initialize the positions of search agents
    Positions=initialization(popsize,dim,ub,lb);%Positions,存放数个个体的多维位置。

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/127993418
[2] https://blog.csdn.net/kjm13182345320/article/details/127545080

你可能感兴趣的:(回归预测,WOA-LSTM,鲸鱼算法优化,长短期记忆神经网络,多输入单输出,回归预测)