• 大小: 18KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: 其他
  • 标签: 负荷预测  粒子群  

资源简介

这是一个基于PSO-LSSVM的负荷预测程序。用粒子群算法优化支持向量机的参数。

资源截图

代码片段和文件信息

function [Acu]=AdaptFunc(XXYY)
%C为最小二乘支持向量机的正则化参数,theta为高斯径向基的核函数参数,两个需要进行优化选择调试
% C = XX; %% 30
% theta = YY;%%  2 %C为最小二乘支持向量机的正则化参数,theta为高斯径向基的核函数参数,两个需要进行优化选择调试
NumOfPre =1;%预测天数,在此预测本季度最后七天
Time = 12;
Data1=[0.2452 0.1446 0.1314 0.2246 0.5532 0.6642 0.7015 0.6981 0.6821 0.6945 0.7549 0.8215 0.2286 0.2801 1;
   0.2217 0.1581 0.1408 0.2304 0.5134 0.5312 0.6819 0.7125 0.7265 0.6847 0.7826 0.8325 0.2415 0.3027 0;
   0.2525 0.1627 0.1507 0.2406 0.5502 0.5636 0.7501 0.7352 0.7459 0.7015 0.8064 0.8516 0.2385 0.3125 0;
   0.2016 0.1105 0.1243 0.1978 0.5021 0.5232 0.6819 0.6952 0.7015 0.6825 0.7825 0.7895 0.2216 0.2701 1;
   0.2115 0.1201 0.1312 0.2019 0.5532 0.5736 0.7029 0.7032 0.7189 0.7019 0.7965 0.8025 0.2352 0.2502 0.5;
   0.2335 0.1322 0.1534 0.2214 0.5623 0.5827 0.7198 0.7276 0.7359 0.7506 0.8092 0.8221 0.2542 0.3125 0;
   0.2368 0.1432 0.1653 0.2205 0.5823 0.5971 0.7136 0.7129 0.7263 0.7513 0.8091 0.8217 0.2601 0.3198 0;
   0.2342 0.1368 0.1602 0.2131 0.5726 0.5822 0.7101 0.7098 0.7127 0.7121 0.7995 0.8216 0.2579 0.3099 0;
   0.2113 0.1212 0.1305 0.1819 0.4952 0.5312 0.6886 0.6998 0.6999 0.7323 0.7721 0.7956 0.2301 0.2867 0.5;
   0.2005 0.1121 0.1207 0.1605 0.4556 0.5022 0.6553 0.6673 0.6798 0.7023 0.7521 0.7756 0.2234 0.2277 1;
   0.2123 0.1257 0.1343 0.2079 0.5579 0.5716 0.7059 0.7145 0.7205 0.7401 0.8019 0.8136 0.2314 0.2977 0;
   0.2119 0.1215 0.1621 0.2161 0.6171 0.6159 0.7155 0.7201 0.7243 0.7298 0.8179 0.8229 0.2317 0.2936 0];
[M N] = size(Data1);%计算读入数据的行和列 M行N列

Dim =  M - 2 - NumOfPre;%训练样本数
Input = zeros(M-28Time);%预先分配处理后的输入向量空间
y = zeros(DimTime);
for i = 3:M 
    for j = 1:Time
        %%选取前一天温度、同一时刻的负荷,前两天的负荷,当天的温度作为输入特征
        x = [Data1(i-113:15) Data1(i-1j) Data1(i-2j)Data1(i13:15)];
        Input(i-2:j) = x;
        y(i-2j) = Data1(ij);
    end
end
Dist = zeros(DimDimTime);%预先分配距离空间
for i=1:Time
    for j=1:Dim
        for k=1:Dim
            Dist(jki) = (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矩阵
    f = -y(1:Dimi); 
    Aeq = ones(Dim1)‘;
    beq = [0];
    option.MaxIter=1000;
    [afval]=quadprog(Hf[][]Aeqbeq);%[][][]option);求二次规划问题
    b = 0;
    for j = 1:Dim
        b(j) = y(ji) - a(j)/XX - a‘* Dist1(:ji);%求每个输入特征对应的b
    end
    b = sum(b)/Dim;%求平均b,消除误差
    for j = Dim + 1:M-2
        for k = 1:Dim
            K(k) = exp(-(Input(j:i) - Input(k:i))*(Input(j:i) - Input(k:i))‘/(2*YY));%预测输入特征与训练特征的RBF距离
        end
        Pre(j-Dimi) = sum(a‘*K‘) + b;  %求解预测值   
    end
end
Len = M  - (Dim + 3) +1;%预测的天数 取本季度最后Len天
%  Pre = 10.^Pre;
for i = 1:Len 
    acu(i:) = (Pre(i:) - Data1(i+Dim+21:12))./Data1(i+Dim+21:12);%相对误差
    Acu(i1)= sum(abs( acu(i:) ))/Time;%平均相对误差
end
%    acu = (Pre- Data1(Dim+31:12))./Data1(Dim+31:12);%相对误差
%    Acu= sum(abs( acu ))/Time;%平均相对误差
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-10-19 22:36  SVM\
     文件        3610  2014-06-13 21:41  SVM\AdaptFunc.m
     文件        4154  2014-06-13 21:30  SVM\AdaptFunc1.m
     文件        3813  2014-03-08 15:36  SVM\baseStepPso.m
     文件        2174  2014-03-08 15:36  SVM\InitSwarm.m
     文件       21504  2014-06-14 23:15  SVM\a23.xls
     文件         378  2014-06-13 19:53  SVM\acu.mat
     文件         378  2014-06-13 19:53  SVM\acu1.mat
     文件        2379  2014-06-13 21:46  SVM\pso.m
     文件        3622  2014-06-13 18:50  SVM\shorttime3.m

评论

共有 条评论