【DBN回归预测】基于麻雀算法优化深度置信网络SSA-DBN实现数据回归多输出预测附matlab代码

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

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

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

为了提高短期光伏发电预测的准确性,文中采用深度置信网络(DBN)建立了各模型函数的预测模型.通过分析各模型函数的特征,建立了光伏发电模型的功率预测.传统的基于神经网络的功率预测难以训练多层网络,影响其预测精度.DBN采用无监督贪婪逐层训练算法构建了一个在回归预测分析中具有优异性能的多隐层网络结构,已成为深度学习领域的研究热点.DBN参数采用麻雀优化算法(SSA)优化,避免出现由随机初始化导致的局部最优解现象,从而提高了DBN网络预测性能.最后,案例测试显示了所提出模型的有效性.

⛄ 部分代码

% GetOnInd: get indexes which are used (not dropped) nodes%GetOnInd获取使用(未删除)节点的标准。

%

% OnInd = GetOnInd( dbn, DropOutRate, strbm )%OnInd的调用格式

%

%

%Output parameters:%输出参数

% OnInd: indexes which are used (not dropped) nodes%OnInd:使用(未删除)节点的标准。

%

%

%Input parameters:%输入参数

% dbn: the Original Deep Belief Nets (DBN) model%最初的深度信念网络(DBN)模型。

% DropOutRate: 0 < DropOutRate < 1%DropOutRate的取值范围为0到1

% strbm (optional): started rbm layer to dropout (Default: 1)%strbm(optional):起始rbm层的辍学(默认值:1)

%

%

%Reference:%参考

%for details of the dropout%关于辍学的细节

% Hinton et al, Improving neural networks by preventing co-adaptation of feature detectors, 2012.%Hinton等人,通过阻止功能探测器的协同适应,改善神经网络,2012年。

%

%

%Version: 20130821%版本:20130821

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Deep Neural Network:%深度神经网络                         %

%                                                          %

% Copyright (C) 2013 Masayuki Tanaka. All rights reserved. %

%                    mtanaka@ctrl.titech.ac.jp             %

%      %版权(C) 2013年Masayuki Tanaka。保留所有权利。        %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function OnInd = GetOnInd( dbn, DropOutRate, strbm )%建立OnInd功能函数

if( ~exist('strbm', 'var') || isempty(strbm) )%如果不存在类型strbm,变量var或者类型strbm为空

strbm = 1;%strbm为1

end

OnInd = cell(numel(dbn.rbm),1);%OnInd为行为dbn.rbm中元素的个数,列为1列的空的单元数组

for n=1:numel(dbn.rbm)%n的取值范围是1到dbn.rbm中元素的个数

    dimV = size(dbn.rbm{n}.W,1);%dimV为dbn.rbm{n}行元素的大小

    if( n >= strbm )%如果n大等于strbm

        OnNum = round(dimV*DropOutRate(n));%OnNum为随机的dimV*DropOutRate维矩阵

        OnInd{n} = sort(randperm(dimV, OnNum));%sort函数功能把数组元素按升序或降序排列 如果A是矩阵,sort(A) 对A按每一列元素按照升序排列。P=randperm(N)返回一个包含N个在0到N之间产生的随机元素的向量P=randperm(N,K)返回一个包含K个在0到N之间的随机元素向量例如:randperm(6,3)可能为[4 2 5]

    else

        OnInd{n} = 1:dimV;%OnInd{n}的范围是1到dimV

    end

end

⛄ 运行结果

⛄ 参考文献

[1]常东峰, 南新元. 基于改进麻雀算法的深度信念网络短期光伏功率预测[J]. 现代电子技术, 2022(017):045.

⛄ Matlab代码关注

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

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值