現(xiàn)在建一個(gè)網(wǎng)站一年費(fèi)用只要幾百元網(wǎng)絡(luò)推廣平臺(tái)哪家公司最好
時(shí)序預(yù)測(cè) | MATLAB實(shí)現(xiàn)PSO-LSSVM粒子群算法優(yōu)化最小二乘支持向量機(jī)時(shí)間序列預(yù)測(cè)未來
目錄
- 時(shí)序預(yù)測(cè) | MATLAB實(shí)現(xiàn)PSO-LSSVM粒子群算法優(yōu)化最小二乘支持向量機(jī)時(shí)間序列預(yù)測(cè)未來
- 預(yù)測(cè)效果
- 基本介紹
- 模型描述
- 程序設(shè)計(jì)
- 參考資料
預(yù)測(cè)效果
基本介紹
1.Matlab實(shí)現(xiàn)PSO-LSSVM時(shí)間序列預(yù)測(cè)未來(粒子群優(yōu)化最小二乘支持向量機(jī),優(yōu)化RBF核函數(shù)的gam和sig);
2.運(yùn)行環(huán)境Matlab2018及以上,data為數(shù)據(jù)集,單變量時(shí)間序列預(yù)測(cè),運(yùn)行主程序PSO_LSSVMTSF即可,其余為函數(shù)文件,無需運(yùn)行;
3.遞歸預(yù)測(cè)未來數(shù)據(jù),可以控制預(yù)測(cè)未來大小的數(shù)目,適合循環(huán)性、周期性數(shù)據(jù)預(yù)測(cè);
4.命令窗口輸出R2、MAE、MAPE、MBE、MSE等評(píng)價(jià)指標(biāo)。
模型描述
LSSVM參數(shù)優(yōu)化問題沒有確定或通用的共識(shí)方法。由于智能算法在預(yù)測(cè)模型參數(shù)的選取確定方面具有穩(wěn)健性和通用性,預(yù)測(cè)模型參數(shù)最優(yōu)化過程中主要采用了遺傳算法、果蠅優(yōu)化算法、螢火蟲算法、粒子群算法(PSO)、網(wǎng)格搜索算法、神經(jīng)網(wǎng)絡(luò)等智能算法。粒子群算法不斷調(diào)整自身和種群最優(yōu)位置關(guān)系,具有更強(qiáng)尋優(yōu)能力。因此,為進(jìn)一步得到可靠的模型參數(shù),可沿用粒子群算法進(jìn)行嘗試驗(yàn)證。
程序設(shè)計(jì)
- 完整程序和數(shù)據(jù)下載方式私信博主回復(fù):MATLAB實(shí)現(xiàn)PSO-LSSVM粒子群算法優(yōu)化最小二乘支持向量機(jī)時(shí)間序列預(yù)測(cè)未來。
%% 參數(shù)設(shè)置
pop = 5; % 種群數(shù)目
Max_iter = 50; % 迭代次數(shù)
dim = 2; % 優(yōu)化參數(shù)個(gè)數(shù)
lb = [10, 10]; % 下限
ub = [1000, 1000]; % 上限%% 優(yōu)化函數(shù)
fobj = @(x)fitnessfunclssvm(x, p_train, t_train);%% 優(yōu)化
[Best_pos, Best_score, curve] = PSO(pop, Max_iter, lb, ub, dim, fobj);%% LSSVM參數(shù)設(shè)置
type = 'f'; % 模型類型 回歸
kernel = 'RBF_kernel'; % RBF 核函數(shù)
proprecess = 'preprocess'; % 是否歸一化%% 建立模型
gam = Best_score(1);
sig = Best_score(2);
model = initlssvm(p_train, t_train, type, gam, sig, kernel, proprecess);%% 訓(xùn)練模型
model = trainlssvm(model);%% 模型預(yù)測(cè)
t_sim1 = simlssvm(model, p_train);
t_sim2 = simlssvm(model, p_test);%% 數(shù)據(jù)反歸一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);
%% 定義粒子群算法參數(shù)
% N 種群 T 迭代次數(shù)
%% 隨機(jī)初始化種群
D=dim; %粒子維數(shù)
c1=1.5; %學(xué)習(xí)因子1
c2=1.5; %學(xué)習(xí)因子2
w=0.8; %慣性權(quán)重Xmax=ub; %位置最大值
Xmin=lb; %位置最小值
Vmax=ub; %速度最大值
Vmin=lb; %速度最小值
%%
%%%%%%%%%%%%%%%%初始化種群個(gè)體(限定位置和速度)%%%%%%%%%%%%%%%%x=rand(N,D).*(Xmax-Xmin)+Xmin;
v=rand(N,D).*(Vmax-Vmin)+Vmin;
%%%%%%%%%%%%%%%%%%初始化個(gè)體最優(yōu)位置和最優(yōu)值%%%%%%%%%%%%%%%%%%%
p=x;
pbest=ones(N,1);
for i=1:Npbest(i)=fobj(x(i,:));
end
%%%%%%%%%%%%%%%%%%%初始化全局最優(yōu)位置和最優(yōu)值%%%%%%%%%%%%%%%%%%
g=ones(1,D);
gbest=inf;
for i=1:Nif(pbest(i)<gbest)g=p(i,:);gbest=pbest(i);end
end
%%%%%%%%%%%按照公式依次迭代直到滿足精度或者迭代次數(shù)%%%%%%%%%%%%%
for i=1:Tifor j=1:N%%%%%%%%%%%%%%更新個(gè)體最優(yōu)位置和最優(yōu)值%%%%%%%%%%%%%%%%%if (fobj(x(j,:))) <pbest(j)p(j,:)=x(j,:);pbest(j)=fobj(x(j,:)); end%%%%%%%%%%%%%%%%更新全局最優(yōu)位置和最優(yōu)值%%%%%%%%%%%%%%%if(pbest(j)<gbest)g=p(j,:);gbest=pbest(j);end%%%%%%%%%%%%%%%%%跟新位置和速度值%%%%%%%%%%%%%%%%%%%%%v(j,:)=w*v(j,:)+c1*rand*(p(j,:)-x(j,:))...+c2*rand*(g-x(j,:));x(j,:)=x(j,:)+v(j,:);%%%%%%%%%%%%%%%%%%%%邊界條件處理%%%%%%%%%%%%%%%%%%%%%%if length(Vmax)==1for ii=1:Dif (v(j,ii)>Vmax) | (v(j,ii)< Vmin)v(j,ii)=rand * (Vmax-Vmin)+Vmin;endif (x(j,ii)>Xmax) | (x(j,ii)< Xmin)x(j,ii)=rand * (Xmax-Xmin)+Xmin;endend elsefor ii=1:Dif (v(j,ii)>Vmax(ii)) | (v(j,ii)< Vmin(ii))v(j,ii)=rand * (Vmax(ii)-Vmin(ii))+Vmin(ii);endif (x(j,ii)>Xmax(ii)) | (x(j,ii)< Xmin(ii))x(j,ii)=rand * (Xmax(ii)-Xmin(ii))+Xmin(ii);endendendend%%%%%%%%%%%%%%%%%%%%記錄歷代全局最優(yōu)值%%%%%%%%%%%%%%%%%%%%%Convergence_curve(i)=gbest;%記錄訓(xùn)練集的適應(yīng)度值
參考資料
[1] https://blog.csdn.net/article/details/126072792?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/article/details/126044265?spm=1001.2014.3001.5502