• 【预测模型-DELM分类】基于风驱动算法改进深度学习极限学习机实现数据分类附matlab代码


    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

    🍎个人主页:Matlab科研工作室

    🍊个人信条:格物致知。

    更多Matlab仿真内容点击👇

    智能优化算法  神经网络预测 雷达通信  无线传感器

    信号处理 图像处理 路径规划 元胞自动机 无人机

    ⛄ 内容介绍

    人工时间的最大缺点是训练太长,因为它在应用神经网络的时间范围内,持续不断地限制神经网络,最大限度地限制学习机(Extreme Learning Machine)大量的噪声噪声,或者当输入数据时的维度算法非常高时,极限学习时的综合性能会受到极大的影响。进行空间映射时的有效对数据维的维度的预测,因此我们认为利用深度学习的预测精度来最大学习机的特性,可以很好地改善极限学习机的特性。本文采用风驱动算法的进一步优化DELM超参数,仿真结果改进,预测精度更高。

    ⛄ 部分代码

    %-------------------------------------------------------------------------

    tic;  

    clear;  

    close all;  

    clc;  

    format long g;

    delete('WDOoutput.txt');  

    delete('WDOpressure.txt');  

    delete('WDOposition.txt');

    fid=fopen('WDOoutput.txt','a');

    %--------------------------------------------------------------

    % User defined WDO parameters:

    param.popsize = 20; % population size.

    param.npar = 5; % Dimension of the problem.

    param.maxit = 500; % Maximum number of iterations.

    param.RT = 3; % RT coefficient.

    param.g = 0.2; % gravitational constant.

    param.alp = 0.4; % constants in the update eq.

    param.c = 0.4; % coriolis effect.

    maxV = 0.3; % maximum allowed speed.

    dimMin =  -5; % Lower dimension boundary.

    dimMax= 5; % Upper dimension boundary.

    %---------------------------------------------------------------

    % Initialize WDO population, position and velocity:

    % Randomize population in the range of [-1, 1]:

    pos = 2*(rand(param.popsize,param.npar)-0.5);

    % Randomize velocity:

    vel = maxV * 2 * (rand(param.popsize,param.npar)-0.5);  

    %---------------------------------------------------------------

    % Evaluate initial population: (Sphere Function)

    for K=1:param.popsize,

    x = (dimMax - dimMin) * ((pos(K,:)+1)./2) + dimMin;

         pres(K,:) = sum (x.^2);

    end

    %----------------------------------------------------------------

    % Finding best air parcel in the initial population :

    [globalpres,indx] = min(pres);

    globalpos = pos(indx,:);

    minpres(1) = min(pres); % minimum pressure

    %-----------------------------------------------------------------

    % Rank the air parcels:

    [sorted_pres rank_ind] = sort(pres);

    % Sort the air parcels:

    pos = pos(rank_ind,:);

    keepglob(1) = globalpres;

    %-----------------------------------------------------------------

    % Start iterations :

    iter = 1;   % iteration counter

    for ij = 2:param.maxit,

         % Update the velocity:

         for i=1:param.popsize

    % choose random dimensions:

    a = randperm(param.npar);        

    % choose velocity based on random dimension:

         velot(i,:) = vel(i,a);

             vel(i,:) = (1-param.alp)*vel(i,:)-(param.g*pos(i,:))+ ...

        abs(1-1/i)*((globalpos-pos(i,:)).*param.RT)+ ...

        (param.c*velot(i,:)/i);

         end

        

             % Check velocity:

             vel = min(vel, maxV);

             vel = max(vel, -maxV);

    % Update air parcel positions:

         pos = pos + vel;

             pos = min(pos, 1.0);

             pos = max(pos, -1.0); 

    % Evaluate population: (Pressure)

    for K=1:param.popsize,

    x = (dimMax - dimMin) * ((pos(K,:)+1)./2) + dimMin;

         pres(K,:) = sum (x.^2);

    end

         %----------------------------------------------------

         % Finding best particle in population

         [minpres,indx] = min(pres);

         minpos = pos(indx,:);            % min location for this iteration

         %----------------------------------------------------

         % Rank the air parcels:

         [sorted_pres rank_ind] = sort(pres);

         % Sort the air parcels position, velocity and pressure:

         pos = pos(rank_ind,:);

         vel = vel(rank_ind,:);

         pres = sorted_pres;  

        

         % Updating the global best:

         better = minpres < globalpres;

         if better

             globalpres = minpres             % initialize global minimum

             globalpos = minpos;

        end

    % Keep a record of the progress:

         keepglob(ij) = globalpres;

         save WDOposition.txt pos -ascii -tabs;

    end

    %Save values to the final file.

         pressure = transpose(keepglob);

         save WDOpressure.txt pressure -ascii -tabs;

            

            % Plot the pressure function progress over iterations:

            semilogy(keepglob, 'k' ,'LineWidth',2)

            title(['Global Best Pressure is " ',num2str(keepglob(1,param.maxit)),' ".'])

            xlabel('Number of Iterations')

            ylabel('Global Pressure (i.e. fitness) in log scale')

            grid on

            xlim([0, param.maxit])

            

            

         %END

    %-----------------------------------------------------

    ⛄ 运行结果

    ⛄ 参考文献

    [1]吴丁杰, 温立书. 一种基于哈里斯鹰算法优化的核极限学习机[J]. 信息通信, 2021(034-011).

    [2]马萌萌. 基于深度学习的极限学习机算法研究[D]. 中国海洋大学, 2016.​

    ❤️ 关注我领取海量matlab电子书和数学建模资料

    ❤️部分理论引用网络文献,若有侵权联系博主删除

  • 相关阅读:
    Python语法
    软考 系统架构设计师系列知识点之数字孪生体(4)
    Windows10环境gradle安装与配置
    CH34X系列与CH91XX系列等USB转串口方案选型对比
    PHP 反序列化漏洞:手写序列化文本
    equals与==判断相等
    Python 机器学习 | 超参数优化 黑盒(Black-Box)非凸优化技术实践
    【重识云原生】第六章容器6.1.2节——容器安装部署
    Scss--@mixin--使用/实例
    高颜值markdown解析器:粘贴复制代码即可用(不用编译打包)
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/127460008