【DELM预测】基于遗传算法改进深度学习极限学习机实现数据预测附matlab代码
【DELM预测】基于遗传算法改进深度学习极限学习机实现数据预测附matlab代码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
人工神经网络的最大缺点是训练时间太长从而限制其实时应用范围,近年来,极限学习机(Extreme Learning Machine, ELM)的提出使得前馈神经网络的训练时间大大缩短,然而当原始数据混杂入大量噪声变量时,或者当输入数据维度非常高时,极限学习机算法的综合性能会受到很大的影响.深度学习算法的核心是特征映射,它能够摒除原始数据中的噪声,并且当向低维度空间进行映射时,能够很好的起到对数据降维的作用,因此我们思考利用深度学习的优势特性来弥补极限学习机的弱势特性从而改善极限学习机的性能.为了进一步提升DELM预测精度,本文采用麻雀搜索算法进一步优化DELM超参数,仿真结果表明,改进算法的预测精度更高。
2 部分代码
%%
GA
clc
% 清屏
clear
all; % 删除workplace变量
close
all; % 关掉显示图形窗口
warning
off
%%
参数初始化
popsize
=
50; %种群规模
lenchrom
=
17; %变量字串长度
pc
=
0.7; %设置交叉概率,本例中交叉概率是定值,若想设置变化的交叉概率可用表达式表示,或从写一个交叉概率函数,例如用神经网络训练得到的值作为交叉概率
pm
=
0.3; %设置变异概率,同理也可设置为变化的
load(’Ereal.mat’)
load(’Freal.mat’)
maxgen
=
500; % 进化次数
%定义弧的权矩阵和几点换乘权矩阵
%种群
popmax
=
9;
popmin
=
1;
popmax2
=
0
popmin2
=
-4
bound
=
[popmin popmax;popmin2 popmax2;popmin popmax;popmin2 popmax2;popmin popmax;popmin2 popmax2;popmin popmax;popmin2 popmax2;popmin popmax;popmin2 popmax2;popmin popmax;popmin2 popmax2;popmin popmax;popmin2 popmax2;popmin popmax;popmin2 popmax2;popmin popmax]; %变量范围
%%
产生初始粒子和速度
for
i=1:popsize
%随机产生一个种群
GApop(i,
:
)=Code(lenchrom,popmax,bound,E); %随机产生个体,GApop是lenchrom和bound的一个函数,是100*7的矩阵,GApop(i,:)是1*7的一行数字,等于是对每个i去执行一次Code函数和test函数
%或者说Code函数指编码过程,以lenchrom和bound为依据进行编码
%Code经过检验后,GApop第i行赋值为每一个Code列向量
%计算适应度
p
=
[]
for
u=1:2:(lenchrom-2)
p
=
[p E(GApop(i,u),GApop(i,u+2),-GApop(i,u+1))]
end
q
=
[]
for
j=3:2:(lenchrom-2)
q
=
[q F(-GApop(i,j-1),-GApop(i,j+1),GApop(i,j))]
end
fitness(i)
=
sum(p)+sum(q); %染色体的适应度
end
%找最好的染色体
[bestfitness
bestindex]=min(fitness); %min函数左侧是适应度矩阵(1*100)中最佳值和对应位置,bestindex为什么不是最优的位置(是生成的第一批的最优和位置)
zbest
=
GApop(bestindex,:); %全局最佳,最佳位置对应的染色体向量
gbest
=
GApop; %个体最佳,100*7矩阵
fitnessgbest
=
fitness; %个体最佳适应度值,指同样的函数式
fitnesszbest
=
bestfitness; %全局最佳适应度值,同上
%%
迭代寻优
for
i=1:maxgen
i
%种群更新
GA选择更新
GApop
=
Select2(GApop,fitness,popsize); %产生了轮盘赌选出的100个染色体
%
交叉操作 GA
GApop
=
Cross(pc,lenchrom,GApop,popsize,bound,E);
%这里删掉了两个操作
%
变异操作 GA变异
GApop
=
Mutation(pm,lenchrom,GApop,popsize,[i maxgen],bound,popmax,E);
%
元素删除 GA变异
GApop
=
Mutation2(pm,lenchrom,GApop,popsize,[i maxgen],bound,E);
pop
=
GApop;
for
j=1:popsize
%适应度值
p
=
[]
for
u=1:2:(lenchrom-2)
p
=
[p E(GApop(j,u),GApop(j,u+2),-GApop(j,u+1))]
end
q
=
[]
for
v=3:2:(lenchrom-2)
q
=
[q F(-pop(j,v-1),-pop(j,v+1),pop(j,v))]
end
fitness(j)
=
sum(p)+sum(q); %染色体的适应度
%对每个满足约束的个体计算适应度(不符合就不更新)
%个体最优更新
if
fitness(j) < fitnessgbest(j)
gbest(j,
:
) = pop(j,:);
fitnessgbest(j)
=
fitness(j); %每一代如果适应度变小就更新,否则不更新;输出的fitness 是最后一代的适应度
end
%群体最优更新
if
fitness(j) < fitnesszbest
zbest
=
pop(j,:);
fitnesszbest
=
fitness(j); %两次更新都循环100次,每一个fitness(j)都和两个数比一遍
end
end
yy(i)
=
fitnesszbest;
end
%%
结果
disp
’*************best particle number****************’
zbest
%%
plot(yy,’linewidth’,2);
title([’适应度曲线
’ ’终止代数=’ num2str(maxgen)]);
xlabel(’进化代数’);ylabel(’适应度’);
grid
on
3 仿真结果
4 参考文献
[1]律方成, 刘怡, 亓彦珣,等. 基于改进遗传算法优化极限学习机的短期电力负荷预测[J]. 华北电力大学学报:自然科学版, 2018, 45(6):7.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
