目录
主要内容
该程序主要是对电力短期负荷进行预测,采用三种方法,分别是最小二乘支持向量机(LSSVM)、标准粒子群算法支持向量机和改进粒子群算法支持向量机三种方法对负荷进行预测,有详实的文档资料,程序注释清楚,方便学习!
部分代码
%C为最小二乘支持向量机的正则化参数,theta为高斯径向基的核函数参数,两个需要进行优化选择调试
NumOfPre =1;%预测天数,在此预测本季度最后七天
Time = 24;
Data = xlsread('a23.xls');%此为从excel表格读数据的命令,表示将表格的数据读到Data数组中,省略表格中的第一行第一列文字部分 可输入你要预测的表格名称
[M N] = size(Data);%计算读入数据的行和列 M行N列
for i = 1:3
maxData = max(Data(:,i));
minData = min(Data(:,i));
Data1(:,i) = (Data(:,i) - minData)/(maxData-minData);%对温度进行归一化处理
end
for i = 4:5
Data1(:,i) = Data(:,i);
end
for i = 6:N
Data1(:,i) = log10(Data(:,i)) ;%对负荷进行对数处理 温度和负荷的预处理 可采用不同的方法 可不必拘泥
end
Dim = M - 2 - NumOfPre;%训练样本数%训练样本数
Input = zeros(M-2,12,Time);%预先分配处理后的输入向量空间
y = zeros(Dim,Time);
for i = 3:M
for j = 1:Time
%%选取前一天温度、同一时刻的负荷,前两天的负荷,当天的温度作为输入特征
x = [Data1(i-1,1:5), Data1(i-1,j+5), Data1(i-2,j+5),Data1(i,1:5)];
Input(i-2,:,j) = x;
y(i-2,j) = Data1(i,j+5);
end
end
Dist = zeros(Dim,Dim,Time);%预先分配距离空间
for i=1:Time
for j=1:Dim
for k=1:Dim
Dist(j,k,i) = (Input(j,:,i) - Input(k,:,i))*(Input(j,:,i) - Input(k,:,i))';
end
end
end
Dist1=exp(-Dist/(2*YY));%RBF
for i=1:Time
H = Dist1(:,:,i) + eye(Dim)/XX;%最小二乘支持向量的H矩阵
结果一览
1.最小二乘支持向量机(LSSVM)
2.标准粒子群算法支持向量机
3.改进粒子群算法支持向量机