1 模型简介

随着电力负荷的迅猛增长和用电环境的越发复杂,对短期负荷预测的精度与可靠性提出更高要求.为解决最小二乘支持向量机(LSSVM)算法中核参数和惩戒参数依赖经验选取导致的短期负荷预测精度较低,收敛速度较慢的问题,提出一种基于粒子群算法优化最小二乘支持向量机(PSOLSSVM)的负荷预测方法.首先通过引入非线性因子和自适应权重实现鲸鱼算法的改进,进而利用其改进算法对LSSVM参数进行寻优,最后建立短期负荷预测模型.结合某地区的实测数据进行预测分析。

1.1 粒子群算法

【预测模型】基于粒子群算法优化最小二乘支持向量机lssvm实现预测附matlab源码_支持向量机

【预测模型】基于粒子群算法优化最小二乘支持向量机lssvm实现预测附matlab源码_粒子群_02

1.2 最小二乘支持向量机

【预测模型】基于粒子群算法优化最小二乘支持向量机lssvm实现预测附matlab源码_支持向量机_03

【预测模型】基于粒子群算法优化最小二乘支持向量机lssvm实现预测附matlab源码_支持向量机_04

【预测模型】基于粒子群算法优化最小二乘支持向量机lssvm实现预测附matlab源码_粒子群_05

2 部分代码


          
          
%=====================================================================
  • 1.

          
          
%初始化
  • 1.

          
          
clc
  • 1.

          
          
close all
  • 1.

          
          
clear
  • 1.

          
          
format long
  • 1.
  • 1.
  • 1.

          
          
tic
  • 1.

          
          
%==============================================================
  • 1.

          
          
%%导入数据
  • 1.

          
          
data=xlsread('1.xlsx');
  • 1.

          
          
[row,col]=size(data);
  • 1.

          
          
x=data(:,1:col-1);
  • 1.

          
          
y=data(:,col);
  • 1.

          
          
set=1; %设置测量样本数
  • 1.

          
          
row1=row-set;%
  • 1.

          
          
train_x=x(1:row1,:);
  • 1.

          
          
train_y=y(1:row1,:);
  • 1.

          
          
test_x=x(row1+1:row,:);%预测输入
  • 1.

          
          
test_y=y(row1+1:row,:);%预测输出
  • 1.

          
          
train_x=train_x';
  • 1.

          
          
train_y=train_y';
  • 1.

          
          
test_x=test_x';
  • 1.

          
          
test_y=test_y';
  • 1.
  • 1.

          
          
%%数据归一化
  • 1.

          
          
[train_x,minx,maxx, train_yy,miny,maxy] =premnmx(train_x,train_y);
  • 1.

          
          
test_x=tramnmx(test_x,minx,maxx);
  • 1.

          
          
train_x=train_x';
  • 1.

          
          
train_yy=train_yy';
  • 1.

          
          
train_y=train_y';
  • 1.

          
          
test_x=test_x';
  • 1.

          
          
test_y=test_y';
  • 1.

          
          
%% 参数初始化
  • 1.
  • 1.

          
          
%粒子群算法中的两个参数
  • 1.

          
          
c1 = 1.5;%; % c1 belongs to [0,2] c1:初始为1.5,pso参数局部搜索能力,表征个体极值对当前解得影响
  • 1.

          
          
c2 = 1.7;%; % c2 belongs to [0,2] c2:初始为1.7,pso参数全局搜索能力,表征全局极值对当前解得影响
  • 1.
  • 1.

          
          
maxgen=100; % 进化次数 300
  • 1.

          
          
sizepop=30; % 种群规模30
  • 1.
  • 1.
  • 1.

          
          
for i=1:set
  • 1.

          
          
RD(i)=(test_predict(i)-test_y(i))/test_y(i)*100;
  • 1.

          
          
end
  • 1.

          
          
for i=1:set
  • 1.

          
          
D(i)=test_predict(i)-test_y(i);
  • 1.

          
          
end
  • 1.

          
          
RD=RD'
  • 1.

          
          
D=D'
  • 1.
  • 1.

          
          
figure
  • 1.

          
          
plot(test_predict,':og')
  • 1.

          
          
hold on
  • 1.

          
          
plot(test_y,'- *')
  • 1.

          
          
legend('预测输出','期望输出')
  • 1.

          
          
title('网络预测输出','fontsize',12)
  • 1.

          
          
ylabel('函数输出','fontsize',12)
  • 1.

          
          
xlabel('样本','fontsize',12)
  • 1.

          
          
figure
  • 1.

          
          
plot(train_predict,':og')
  • 1.

          
          
hold on
  • 1.

          
          
plot(train_y,'- *')
  • 1.

          
          
legend('预测输出','期望输出')
  • 1.

          
          
title('粒子群网络预测输出','fontsize',12)
  • 1.

          
          
ylabel('函数输出','fontsize',12)
  • 1.

          
          
xlabel('样本','fontsize',12)
  • 1.
  • 1.

          
          
toc %计算时间
  • 1.
  • 1.

3 仿真结果

【预测模型】基于粒子群算法优化最小二乘支持向量机lssvm实现预测附matlab源码_支持向量机_06

4 参考文献

[1]刘家旗. 基于改进的粒子群算法优化LSSVM股价预测研究[J]. 山东农业大学学报(自然科学版), 2015, 000(004):628-631.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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

【预测模型】基于粒子群算法优化最小二乘支持向量机lssvm实现预测附matlab源码_支持向量机_07