【lssvm回归预测】基于鸽群算法优化最小二乘支持向量机PIO-lssvm实现数据回归预测附matlab代码

简介: 【lssvm回归预测】基于鸽群算法优化最小二乘支持向量机PIO-lssvm实现数据回归预测附matlab代码

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

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

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

LSSVM 模型中的参数选择对模型的影响较大,采用鸽群优化算法进行模型参数的全局选优,用历史负荷数据和天气气象因素作为输入,建立优化电力负荷预测模型进行仿真.利用 PIO- LSSVM 模型对华东某市电力负荷进行验证分析.实验结果表明:鸽群算法优化的LSSVM 模型相比 LSSVM 具有更高的预测精度.

⛄ 部分代码

function [Best_vulture1_F,Best_vulture1_X,convergence_curve]=PIO(pigeonnum,max_iter,lower_bound,upper_bound,D,fobj);


%%####A new bio-inspired swarm intelligence optimizer ?C pigeon inspired

%%####optimization (PIO) is presented by simulating pigeons homing

%%####behaviors. Homing pigeons can easily find their homes by using

%%####three homing tools: magnetic field, sun and landmarks. In this  

%%#### newly invented algorithm, map and compass operator model is

%%#### presented based on magnetic field and sun, while landmark operator

%%#### model is presented based on landmarks. For some tough functions,  

%%#### it can quickly find the optimum, and it performs powerfully. For the

%%#### most important reason, it combines some advantages of algorithms

%%#### such as particle swarm optimization and artificial fish school algorithm.

%***************initialization*******************

T1=max_iter;     %Global search algebra

T2=max_iter;     %Local search algebra

% pigeonnum=30;    %number  

% D = 30;     % dimensionality

R=0.3;     %parameters of magnetic field  

bound=[lower_bound,upper_bound];    %hunting zone

tol = 1e-7;


%**************initialization of the individual pigeon************

for i=1:pigeonnum                                                           %时间复杂度O(pigeonum*D*2)

   for j=1:D

       x(i,j)=bound(1)+rand*(bound(2)-bound(1));

       v(i,j)=rand;

   end

end

%**************calculate the fitness of pigeon***********

for i=1:pigeonnum                                                           %时间复杂度O(pigeonum*2)

   p(i)=fobj(x(i,:));

   p_best(i,:)=x(i,:);

end

%**************find the optimal pigeons********************

 

g_best=x(1,:);

for i=2:pigeonnum                                                           %时间复杂度O(pigeonum-1)

   if fobj(g_best)>fobj(x(i,:))

       g_best=x(i,:);

   end

end

%************  magnetic compass and solar operator********************

for t=1:T1                                                                  %时间复杂度O(T1*(pigeonum*(2D+5))+1)

   for i=1:pigeonnum                                                       %时间复杂度O(pigeonum*(2D+5))                      

       v(i,:)=v(i,:)+rand*(p_best(i,:)-x(i,:));

       x(i,:)=x(i,:)*(1-exp(-R*t))+v(i,:);   %check whether beyond the searching space

       for j=1:D                                    % magnetic field and solar operator

           if abs(i-1)<=eps

               if x(i,j)<bound(1)||x(i,j)>bound(2)

                   x(i,j)=bound(1)+rand*(bound(2)-bound(1));

                   v(i,j)=rand;

               end

           else

               if x(i,j)<bound(1)||x(i,j)>bound(2)

                   x(i,j)=x(i-1,j);  

                   v(i,j)=v(i-1,j);

               end    

           end

       end

       if fobj(x(i,:))<p(i)                         %renewal individual fitness

           p(i)=fobj(x(i,:));

           p_best(i,:)=x(i,:);

       end

       if p(i)<fobj(g_best)                         %renewal global fitness

           g_best=p_best(i,:);

       end

   end

   result(t)=fobj(g_best);

end

%*************???????**********************

for t=1:T2                                                                  %时间复杂度O(T2*pigeonum*pigeonum)

   for i=1:pigeonnum-1                             %sort the pigeons      

       for j=i+1:pigeonnum

           if fobj(x(i,:))>fobj(x(j,:))

               temp_pigeon=x(i,:);

               x(i,:)=x(j,:);

               x(j,:)=temp_pigeon;

           end

       end

   end

   pigeonnum=ceil(pigeonnum/2);               %remove half of the pigeons according to the landmark

   addpigeonnum=0;                        

   for i=1:pigeonnum

       addpigeonnum=addpigeonnum+x(i,:);      

       p(i)=fobj(x(i,:));                     %calculate fitness and location of the pigeon after sorting

       p_best(i,:)=x(i,:);

   end

   pigeoncenter=ceil(addpigeonnum./pigeonnum);%calculate central position

   for i=1:pigeonnum                                %local searching        

       for j=1:D                                    %check whether beyond the searching space

           x(i,j) = x(i,j) + rand*(pigeoncenter(j)-x(i,j));

           while x(i,j)<bound(1)||x(i,j)>bound(2)

               x(i,j) = x(i,j) + rand*(pigeoncenter(j)-x(i,j));

           end

       end

       if fobj(x(i,:))<p(i)                         %renewal individual fitness

           p(i)=fobj(x(i,:));

           p_best(i,:)=x(i,:);

       end

       if p(i)<fobj(g_best)                         %renewal global fitness

           g_best=p_best(i,:);

       end

   end

   result(t+T1)=fobj(g_best);

end


% figure                                               %graph

% for t=1:T1+T2-1

%     plot([t,t+1],[result(t),result(t+1)]);

%     hold on;

% end

% xlabel('Iterative curve');

% ylabel('Function value');

% title(['The best value is ' num2str()])

[Best_vulture1_F,indx]=min(result);

Best_vulture1_X=g_best;

convergence_curve=result;

end

⛄ 运行结果

⛄ 参考文献

[1]鞠彬王嘉毅. 基于粒子群算法与最小二乘支持向量机的ET0模拟[J]. 水资源保护, 2016, 32(4):74-79.

[2]吴文江, 陈其工, and 高文根. "基于 PSO 优化参数的最小二乘支持向量机短期负荷预测." 重庆理工大学学报(自然科学版) 030.003(2016):112-115.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
2天前
|
机器学习/深度学习 算法
m基于GA-GRU遗传优化门控循环单元网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,一个基于遗传算法优化的GRU网络展示显著优化效果。优化前后的电力负荷预测图表显示了改进的预测准确性和效率。GRU,作为RNN的一种形式,解决了长期依赖问题,而遗传算法用于优化其超参数,如学习率和隐藏层单元数。核心MATLAB程序执行超过30分钟,通过迭代和适应度评估寻找最佳超参数,最终构建优化的GRU模型进行负荷预测,结果显示预测误差和模型性能的提升。
13 4
|
2天前
|
机器学习/深度学习 算法 数据可视化
基于BP神经网络的16QAM解调算法matlab性能仿真
这是一个关于使用MATLAB2022a实现的16QAM解调算法的摘要。该算法基于BP神经网络,利用其非线性映射和学习能力从复数信号中估计16QAM符号,具有良好的抗噪性能。算法包括训练和测试两个阶段,通过反向传播调整网络参数以减小输出误差。核心程序涉及数据加载、可视化以及神经网络训练,评估指标为误码率(BER)和符号错误率(SER)。代码中还包含了星座图的绘制和训练曲线的展示。
|
4天前
|
机器学习/深度学习 算法
基于BP神经网络的QPSK解调算法matlab性能仿真
该文介绍了使用MATLAB2022a实现的QPSK信号BP神经网络解调算法。QPSK调制信号在复杂信道环境下受到干扰,BP网络能适应性地补偿失真,降低误码率。核心程序涉及数据分割、网络训练及性能评估,最终通过星座图和误码率曲线展示结果。
|
4天前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络模型的鱼眼镜头中人员检测算法matlab仿真
该内容是一个关于基于YOLOv2的鱼眼镜头人员检测算法的介绍。展示了算法运行的三张效果图,使用的是matlab2022a软件。YOLOv2模型结合鱼眼镜头畸变校正技术,对鱼眼图像中的人员进行准确检测。算法流程包括图像预处理、网络前向传播、边界框预测与分类及后处理。核心程序段加载预训练的YOLOv2检测器,遍历并处理图像,检测到的目标用矩形标注显示。
|
11天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
11天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
11天前
|
算法 调度
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
|
11天前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
11天前
|
运维 算法
基于改进遗传算法的配电网故障定位(matlab代码)
基于改进遗传算法的配电网故障定位(matlab代码)

热门文章

最新文章