?? mysvm1.m
字號:
function [RMSE,Yt,Yd]=mysvm1(parameter)
%---------------------------------------------------
load data
Yt=data(101:150,5);
%數據歸一化處理
[g_data,mx,stdx]=autosc(data);
%標準化處理
Xmax=max(g_data);
Xmin=min(g_data);
el=ones(150,1);e2=ones(150,5);
%標準化后的數據集g_data[]
g_data=e2-(el*Xmax-g_data)./(el*(Xmax-Xmin));
xi=g_data(1:100,1:4);yi=g_data(1:100,5);
%測試樣本
Xt=g_data(101:150,1:4);
YT=g_data(101:150,5);
%---------------------------------------------------
% 參數設置
type = 'f';
kernel = 'RBF_kernel';
gam =98.0934; % 10Regularization parameter
sig2 =49.9999; %0.9628 Kernel parameter (bandwidth in the case of the 'RBF_kernel'
model = initlssvm(xi,yi,type,gam,sig2,kernel); % 模型初始化
model = robustlssvm(model); % 訓練
Yd = simlssvm(model,Xt); % 回歸
Error=(Yd-YT)./Yd;%相對誤差
Mean_Error=mean(abs(Error));%相對誤差絕對值的平均值
RMSE=sqrt(mean((Yt-Yd).^2));%均方根誤差
%反歸一化
Yd=Yd.*(ones(50,1)*(Xmax(1,5)-Xmin(1,5)))+ones(50,1)*Xmin(1,5);
Yd=rescal(Yd,mx(1,5),stdx(1,5));
Et=Yd-Yt;
Error=Et./Yd;
Mean_Error=mean(abs(Error));
RMSE=sqrt(mean((Yt-Yd).^2));%均方根誤差
%---------------------------------------------------
% 結果作圖
figure(1)
plot(1:length(YT),YT,'r+:',1:length(Yd),Yd,'b.:')
axis([0,50,0.3,1]);
title('')
legend('樣本值','模型輸出值');
%figure(2)
%plot(1:length(Yt),Error,'r.:')
%title('相對誤差曲線')
%figure(3)
%plot(1:length(Yt),Et,'r.:')
%title('絕對誤差曲線')
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -