1、%本程序是一个用LSSVM实现简单煤炭数据先拟合,再预测的例子%数据来源可参考吴海山的“煤炭需求量预测的支持向量机模型“一文%仿真结果比对请参考程序后面的注释%工具箱为 LS-SVMlab1.5aw ,可以在http:/www.esat.kuleuven.ac.be/sista/lssvmlab上下载%-%以下问题请研友讨论:%(1)本人目前想用粒子群优化来优化sig2,gam,大家觉得可行性如何,附件中有一篇“Fast Bootstrapapplied toLS-SVM for Long Term Prediction “,大家可共同研究 %(2)以上用的是单步递推预测,大家有没有做过直接多
2、步预测。%(3)LSSVM调整的参数只有两个,从我的实验可以看出,gam的影响是比较小的,是否还有必要进行双参数优化%(4)LSSVM工具箱中有windowizeNARX以及预测函数predict,我用 实验的 , 行两 机, 后 , 用过请讨论。%(5)本人数 较 ,对 LSSVM SVR 一个在函数预测上 可否,请 人从 论上 。文 上LSSVM性及化currency1, %本人实验结果是“后预测fi下fl, “后参数影响大。%(6)RBF函数 比 函数 在 ” 一下% 2005 9 22 QQ:24444345%-% clc;clear all; close all;t=1980:1:
3、2002;%1980 2002的煤炭量,用80-98为数据,99-02为测数据x=61009.5 60583.8 64125.8 68713 74968.3 81603 86006 92799 993541.0343e+005 .1.0552e+005 1.1043e+005 1.1409e+005 1.2092e+005 1.2853e+0051.3768e+005 1.4473e+005 1.3925e+005 1.2949e+005;%.% 1.2637e+005 1.2454e+005 1.2621e+005 1.3661e+005 ;% 99-02为测数据xtest=1.2637e+
4、005 1.2454e+005 1.2621e+005 1.3661e+005 ;% 一化MAX=max(x);MIN=min(x);x=(x-MIN)./(MAX-MIN);%-% 出p=5;%embeded dimension, 用CHAOS 论来求 , 直接用 。x=x;Y_svm=x(p+1:end);for i=p:-1:1X_svm(:,i)=x(p-i+1:end-i);end%-%用LSSVM模型进行gam = 10000;sig2 = 2;%-% gam low minimizing of the complexity of the model is emphasized,%
5、 for gam high, good fitting of the training data points is stressed.% large sig2 indicates a stronger smoothing. %-type = function estimation;% alpha,b = trainlssvm(X,Y,type,gam,sig2,RBF_kernel);% alpha,b = trainlssvm(X,Y,type,gam,sig2,RBF_kernel,original);alpha,b = trainlssvm(X_svm,Y_svm,type,gam,s
6、ig2,RBF_kernel,preprocess);% 上面 个 有 实 , 只调用original 大,调用 两个 可%-% % 用LSSVM模型进行预测%预测向量step_to_predict=4;%预测09-02的 temp_matrix=x(end-p+1:end);%-% 94.95,96,97,98 99% 95,96,97,98,99 00% 96,97,98,99,00 01% 97,98,99,00,01 02for i=1:1:step_to_predictXt=temp_matrix;%先用94.95,96,97,98的数据为 Yt = simlssvm(X_svm,Y
7、_svm,type,gam,sig2,RBF_kernel,preprocess,alpha,b,Xt);% figure; plotlssvm(X,Y,type,gam,sig2,RBF_kernel,preprocess,alpha,b); temp_matrix=temp_matrix(1,2:end) Yt ;endsvm_multi=(temp_matrix.*(MAX-MIN)+MIN;error=svm_multi(2:end)-xtest;err_percent=error./svm_multi(2:end);err=error*error;svm_multi(2:end)%
8、为 后面是98,99,00,01,02后面的 个是预测 err_percenterr%-%仿真结果 % gam = 10000;sig2 = 20; 1.2061 1.2860 1.3192 1.2939%err_percent = -0.0477 0.0315 0.0433 -0.0558 error2 =1.3444e+008% gam = 1000;sig2 = 2; %1.2051 1.2860 1.3187 1.2930%-0.0486 0.0316 0.0429 -0.0566 error2 = =1.3634e+008% gam = 100;sig2 = 2; % 1.2013
9、1.2861 1.3165 1.2897%-0.0519 0.0317 0.0413 -0.0592 error2 = =1.4353e+008% gam = 10;sig2 = 2; % 1.1991 1.2846 1.3124 1.28611 % -0.0539 0.0305 0.0383 -0.0622 error2 = =1.4636e+008% 从以上比对 可以看出,同的sig2,gam 的化对预测果影响小,同的sig2,gam 大, 小。 比的 在一个 上% gam = 10;sig2 =0.2; 1.1497 1.2350 1.2024 1.1764 %err_percent =-0.0992 -0.0084 -0.0496 -0.1612 error2 = = 5.2651e+008% gam = 10;sig2 =0.8; 1.1742 1.2799 1.2721 1.2361 %err_percent = -0.0762 0.0270 0.0079 -0.1052 error2 = = 2.6190e+008% 从以上比对 可以看出,sig2的化对预测 影响 大,同的gam,sig2 大, 大%-