-
大小: 19KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-06-01
- 語言: 其他
- 標(biāo)簽: SVM??短期負荷??電力系統(tǒng)??預(yù)測??
資源簡介
基于SVM電力系統(tǒng)短期負荷預(yù)測的一個例程。包含數(shù)據(jù)和程序,與傳統(tǒng)的算法相比,本代碼在導(dǎo)入SVM訓(xùn)練之前對影響短期負荷的各種因素作了一個加權(quán)。

代碼片段和文件信息
clc;
clear?
C?=?30;
theta?=?2;%C為最小二乘支持向量機的正則化參數(shù),theta為高斯徑向基的核函數(shù)參數(shù),兩個需要進行優(yōu)化選擇調(diào)試
NumOfPre?=?1;%預(yù)測天數(shù),在此預(yù)測本季度最后七天
%以負荷的加權(quán)為參考1
al?=?2;%溫度的加權(quán)
be?=?1;%濕度的加權(quán)
th?=?1;%星期的加權(quán)
Time?=?48;
Data?=?xlsread(‘input.xls‘);%此為從excel表格讀數(shù)據(jù)的命令,表示將表格的數(shù)據(jù)讀到Data數(shù)組中,省略表格中的第一行第一列文字部分?可輸入你要預(yù)測的表格名稱
Data?=?Data(2:end:);
[MN]?=?size(Data);%計算讀入數(shù)據(jù)的行和列?M行N列
Data1?=?Data;
for?i?=?1:2
????maxData?=?max(Data(:i));
????minData?=?min(Data(:i));
????Data1(:i)?=?(Data(:i)?-?minData)/(maxData-minData);%對溫度進行歸一化處理
end
for?i?=?4:N
????Data1(:i)?=?log10(Data(:i))?;%對負荷進行對數(shù)處理?溫度和負荷的預(yù)處理?可采用不同的方法?可不必拘泥
end
Dim?=??M?-?2?-?NumOfPre;%訓(xùn)練樣本數(shù)%擁有完整特征描述的數(shù)據(jù)共有M-2組!!
Input?=?zeros(M8Time);%預(yù)先分配處理后的輸入向量空間%8是特征空間的維度!也是x的元素數(shù)!!
y?=?zeros(DimTime);
for?i?=?3:M?
????for?j?=?1:Time
????????%%選取前一天溫度、同一時刻的負荷,前兩天的負荷,當(dāng)天的溫度作為輸入特征
????????x?=?[Data1(i-11:3)?Data1(i-1j+3)?Data1(i-2j+3)Data1(i1:3)];%x就是每一個負荷對應(yīng)的特征向量!!!
????????x(1)=al*x(1);
????????x(6)=al*x(6);
????????x(2)=be*x(2);
????????x(7)=be*x(7);
????????x(3)=th*x(3);
????????x(8)=th*x(8);
????????Input(i-2:j)?=?x;%Input(i:k)的含義為:第i天第j個時刻的負荷所對應(yīng)的特征向量
????????y(i-2j)?=?Data1(ij+3);
????end
end
Dist?=?zeros(DimDimTime);%預(yù)先分配距離空間
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
%Dist(ijk)含義為:第i天第k個時刻的負荷與第j天同一時刻的負荷之間的特征距離
Dist1?=?exp(-Dist/(2*theta));%RBF
K?=?zeros(1Dim);
%?Pre?=?zeros(M-2Time);
for?i=1:Time
????H?=?Dist1(::i)?+?eye(Dim)/C;%最小二乘支持向量的H矩陣
????f?=?-y(1:Dimi);?
????Aeq?=?ones(Dim1)‘;
????beq?=?[0];
????option.MaxIter=1000;
????[afval]=quadprog(Hf[][]Aeqbeq);%[][][]option);
????b?=?zeros(1Dim);
????for?j?=?1:Dim
????????b(1j)?=?y(ji)?-?a(j)/C?-?a‘*?Dist1(:ji);%求每個輸入特征對應(yīng)的b
????end
????b?=?sum(b)/Dim;%求平均b,消除誤差
????
????for?j?=?Dim?+?1:M-2
????????for?k?=?1:Dim
????????????K(1k)?=?exp(-(Input(j:i)?-?Input(k:i))*(Input(j:i)?-?Input(k:i))‘/(2*theta));%預(yù)測輸入特征與訓(xùn)練特征的RBF距離
????????end
????????Pre(j-Dimi)?=?sum(a‘*K‘)?+?b;??%求解預(yù)測值???
????end
end
%?Len?=?M??-?(Dim?+?3)?+?1;%預(yù)測的天數(shù)?取本季度最后Len天
Len?=?NumOfPre;
Pre?=?10.^Pre;
for?i?=?1:Len
????figure?
????plot(1:TimeData(i+Dim+24:N)‘r‘1:TimePre(i:)‘k‘);%畫出每一天的預(yù)測值和真實值
????hold?on
????scatter(1:TimeData(i+Dim+24:N)‘o‘)
????scatter(1:TimePre(i:)‘^‘)
???%?axis([0?25?0?100])%坐標(biāo)范圍
????hold?off
end
Acu?=?(Pre?-?Data(Dim+3:M4:N))./Data(Dim+3:M4:N);%相對誤差
save?Acu.mat?Acu
s=0;
for?i=1:Time
????s=abs(Acu(1i))+s;
end
acu=s/Time;
save?acu.mat?acu;
Result=[Cthetaacu];
disp(Result);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????19340??2016-03-28?17:28??input.xls
?????文件????????3058??2016-03-29?23:52??shorttimegai1.m
- 上一篇:ArcGIS Pro 2.6 2020 鏈接
- 下一篇:GL852G器件手冊
評論
共有 條評論