📄 svm_regressive.m
字号:
% 应用LS_SVM回归试验
%%%%%%%%%%%%%%%%%%%%%%%%%% 清理 %%%%%%%%%%%%%%%%%%%%%%%%%
clear
clc
clf
%%%%%%%%%%%%%%%%%%%%%%%%% 样本数据 %%%%%%%%%%%%%%%%%%%%%%%
X=[5.00 0.31
10.00 0.27
5.00 0.53
10.00 0.33
15.00 0.24
5.00 1.01
10.00 0.52
20.00 0.30
10.00 0.96
20.00 0.53
50.00 0.32
41.00 0.50
90.00 0.24
120.00 0.22
92.00 0.50
70.00 0.96
90.00 1.03
]
Y=[0.70
0.78
0.73
0.85
0.83
0.84
0.85
0.85
0.85
0.91
0.94
0.94
0.92
0.94
0.96
0.95
0.95
]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 基本参数 %%%%%%%%%%%%%%%%%%%%%%%
gam = 50; % 惩罚参数
sig2 = 0.2; % RBF核函数的参数
type = 'function approximation'; % 用于回归运算,查手册
[alpha,b]=trainlssvm({X,Y,type,gam,sig2,'RBF_kernel'}); % 计算模型参数取值
%%%%%%%%%%%%% 预测自变量Xt, 预测因变量计算值Yt %%%%%%%%%%%%%%%%%%
Xt=[ 10 0.29
10 0.46
42 0.26
50 0.96
];
Yt = simlssvm({X,Y,type,gam,sig2,'RBF_kernel','preprocess'},{alpha,b},Xt);
% 如要拟合/模拟结果,将上面的命令的最后的Xt改为X,得出和Y相对应的训练模型的计算值
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 实测 Yt %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ytt=[0.81
0.91
0.89
0.95
]
% 不断调整参数值对比一下看看。这是实验测得的数据,仅用于说明测量精度高。
%%%%%%%%%%%%%%%%%%%%%%%% 绘图比较预测与实测结构 %%%%%%%%%%%%%%%%%%%%%
figure(1) % Xt 轨迹
Xt_x=Xt(:,1); Xt_y=Xt(:,2);
plot(Xt_x,Xt_y,'--b')
figure(2) % 实测与预测对比
plot3(Xt_x,Xt_y,Yt,'--b'); % 预测
box on
hold on
plot3(Xt_x,Xt_y,Ytt,'-r'); % 实测
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -