求gam和gim,这两个是关键参数

clc
clear all%% 导入数据S_Data=xlsread('C:\Users\yxz\Desktop\TrainDatatotal\aloneChangZhou\subtract_big_errors\liuyif\liuyifa_change_train_data\start_datas2.csv');n = 512;   % n 是自变量的个数
m = 1;     % m 是因变量的个数
%% 读取训练数据
train_num = 60;  %训练样本数
train_Data = S_Data(1:train_num,:);% 特征值归一化
[train_Input,minI,maxI] = premnmx(train_Data(:,1:n)');%train_Data(:,1:n)'//premnmx% 构造输出矩阵
[train_Output,minO,maxO] = premnmx(train_Data(:,n+1:end)');%premnmx%% 读取测试数据
test_Data = S_Data(train_num+1:end,:);
% 特征值归一化
test_Input = tramnmx(test_Data(:,1:n)',minI,maxI);
% 构造测试输出矩阵
test_Output = tramnmx(test_Data(:,n+1:end)',minO,maxO);% 选取合适的参数gam
RMSE = [];
Gam = 1:10:200;
sig = 600; for q = 1:20     gam = Gam(1,q); %以10为步长,训练20次tic;   %计时开始% 用trainlssvm()函数对训练数据进行训练[alpha, b] = trainlssvm({train_Input',train_Output','f',gam,sig});%[alpha,b] = trainlssvm(train_Input',train_Output',gam,sig);%alpha是LS-SVM的support values%b是偏置项的1 x m向量% sig是核宽度,gam是正则化参数%gam是正则化参数:对于gam低,强调模型复杂度的最小化;对于gam高,强调训练数据点的良好拟合。%kernel_par是内核的参数;在RBF核的一般情况下,较大的sig2表示较强的平滑。%训练LS-SVM的支持值和偏置项,用于分类或函数逼近% SVMtest_Output = simlssvm(test_Input',train_Input',alpha,b,sig);[SVMtest_Output, Zt] = simlssvm({train_Input',train_Output','f',gam,sig}, test_Input');%simlssvm在给定的点对LS-SVM进行评估toc;   %计时结束test_Output = postmnmx(test_Output,minO,maxO);SVMtest_Output = postmnmx(SVMtest_Output,minO,maxO);% 测试数据误差test_err = test_Output' - SVMtest_Output;n1 = length(SVMtest_Output);test_RMSE = sqrt(sum((test_err).^2)/n1);RMSE(1,q) = test_RMSE;
endx = Gam;  y = RMSE;
plot(x,y,'-o')
xlabel('参数gam')
ylabel('S含量预测误差(RMSE)')

下列代码实现回归预测

clc
clear all%% 导入数据
S_Data=xlsread('C:\Users\yxz\Desktop\TrainDatatotal\aloneChangZhou\subtract_big_errors\liuyif\liuyifa_change_train_data\start_datas2.csv');n = 512;   % n 是自变量的个数
m = 1;     % m 是因变量的个数
%% 读取训练数据
train_num = 60;  %训练样本数
train_Data = S_Data(1:train_num,:);
% 特征值归一化
[train_Input,minI,maxI] = premnmx(train_Data(:,1:n)');
% 构造输出矩阵
[train_Output,minO,maxO] = premnmx(train_Data(:,n+1:end)');
gam = 20;%191
sig = 700;%600
type = 'function estimation';
tic; %计时开始
% 用trainlssvm()函数对训练数据进行训练
[alpha,b] = trainlssvm({train_Input',train_Output',type,gam,sig,'RBF_kernel'});
SVMtrain_Output = simlssvm({train_Input',train_Output',type,gam,sig,'RBF_kernel','preprocess'},{alpha,b},train_Input');
toc; %计时结束
train_Output = postmnmx(train_Output',minO,maxO);
SVMtrain_Output = postmnmx(SVMtrain_Output',minO,maxO);
% 训练数据误差
train_err = train_Output - SVMtrain_Output';
n1 = length(SVMtrain_Output);
train_RMSE = sqrt(sum((train_err).^2)/n1);%% 读取测试数据
test_Data = S_Data(train_num+1:end,:);
% 特征值归一化
test_Input = tramnmx(test_Data(:,1:n)',minI,maxI)';
% 构造测试输出矩阵
test_Output = tramnmx(test_Data(:,n+1:end)',minO,maxO)';SVMtest_Output = simlssvm({train_Input',train_Output,type,gam,sig,'RBF_kernel','preprocess'},{alpha,b},test_Input);
test_Output = postmnmx(test_Output,minO,maxO);
SVMtest_Output = postmnmx(SVMtest_Output',minO,maxO);% 测试数据误差
test_err = test_Output - SVMtest_Output';
n2 = length(SVMtest_Output');
test_RMSE = sqrt(sum((test_err).^2)/n2);%% 预测结果可视化
figure(6);  % 绘制图1
subplot(2,1,1);  % 图1包含2行1列个子图形,首先绘制子图1
plot(SVMtest_Output,':og');  % 用绿色的o绘制测试数据的预测输出值
hold on;
plot(test_Output','-*b');  % 用蓝色的*绘制测试数据的期望输出值
legend('预测输出','期望输出');  % 子图1的注释
title('最小二乘支持向量机预测S含量结果','fontsize',12)  %子图1的标题
% title('BP神经网络Si含量预测输出','fontsize',12)  %子图1的标题
ylabel('S含量','fontsize',12);  % y轴
xlabel('样本','fontsize',12);  % x轴
subplot(2,1,2);  % 绘制子图2
plot(abs(test_Output - SVMtest_Output'),'-*');  % 输出测试数据的预测误差
title('最小二乘支持向量机预测浓度','fontsize',12)  %子图2的标题
% title('BP神经网络Si含量预测误差','fontsize',12)  %子图2的标题
ylabel('误差','fontsize',12);  % y轴
xlabel('样本','fontsize',12);  % x轴
ylim([0,0.01]);

预测结果

本文参考偏最小二乘支持向量机,首先感谢博主的分享。但本人在使用它的过程中出现“***错误使用 trainlssvm 输入参数太多”***,的问题。
解决方法:
这里就需要各位仔细阅读trainlssvm的帮助文件,大家可以看看我们代码之间的区别

用MATLAB实现偏最小二乘支持向量机(LS-SVM)的总结相关推荐

  1. MATLAB实现偏最小二乘回归PLS

    这一定是一篇真正的傻瓜攻略,原理为根,算法为骨,应用为肉,傻瓜为皮. 本文主要介绍偏最小二乘回归的基本实现,主要内容基于司守奎<数学建模算法与应用>第11章,在其基础上进行优化. 偏最小二 ...

  2. matlab做偏最小二乘回归(PLS带精度验证)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lusongno1/article/de ...

  3. 傻瓜攻略(十二)——MATLAB实现偏最小二乘回归PLS

    这一定是一篇真正的傻瓜攻略,原理为根,算法为骨,应用为肉,傻瓜为皮. 本文主要介绍偏最小二乘回归的基本实现,主要内容基于司守奎<数学建模算法与应用>第11章,在其基础上进行优化. 偏最小二 ...

  4. matlab近红外光谱曲线,Matlab关于偏最小二乘法应用于近红外光谱分析的问题

    代码在最下面了,不能运行,是代码有错误嘛? 在录入数据以后,有提示: ??? Error using ==> regress Y must be a vector. 错误位置是在第三步那里.. ...

  5. 通过MATLAB实现偏最小二乘回归预测

    偏最小二乘回归是一种新的多元统计数学分析方法,将多元线性回归.典型相关分析和主成分分析进行有机结合. 建模原理: 假定p有自变量x1,x2,-,xp(这个就是特征值)和q个因变量y1,y2,-,y3( ...

  6. 支持向量机matlab代码程序_支持向量机(SVM)小结

    什么是SVM? SVM(全称:Support Vector Machine)支持向量机,这只是它的名称,向量就是和我们以前学过的向量一样(下文有介绍),它可以有效解决分类问题(我们只讨论分类问题),何 ...

  7. MATLAB进行偏最小二乘回归(PLSR)

    filename = 'D:\桌面\准东\建模数据.xlsx';  [num,txt,raw] = xlsread(filename,'sheet3','A1:E55'); mu=mean(num); ...

  8. 【LSSVM回归预测】基于matlab人工蜂群算法优化最小二乘支持向量机LSSVM数据回归预测【含Matlab源码 2213期】

    ⛄一.人工蜂群算法优化最小二乘支持向量机LSSVM简介 1 最小二乘支持向量机 最小二乘支持向量机是支持向量机的一种改进算法[9,10],它将SVM算法中的不等式约束转化为等式约束,采用最小二乘线性系 ...

  9. 粒子群优化最小二乘支持向量机SVM回归分析,pso-lssvm回归预测

    目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 SVM应用实例,粒子群优化最小二乘支持向量机SVM回归分析 代码 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机(su ...

最新文章

  1. Lampiao靶机渗透测试
  2. GPU指令集技术分析
  3. 【一周入门MySQL—3】多表查询、子查询、常用函数
  4. C++ Opengl 绘制图像字符源码
  5. python矩形打印_【Python】旋转打印各种矩形
  6. linux下解压大于4G文件提示error: Zip file too big错误的解决办法
  7. 【原创】Kakfa utils源代码分析(一)
  8. Json.Net Demo2
  9. python re 使用
  10. C#实现基于ffmpeg加虹软的人脸识别
  11. DbUtil的介绍使用
  12. 在 WindowsXP运行UCDOS (天空之翔)
  13. 巨佬就是巨佬,乔布斯 1973 年求职申请表,拍出22万美元高价!
  14. L Norms 范数
  15. React心得之降龙十八掌:第二式-飞龙在天( React组件化开发及相关概念)
  16. 海淀区第九届单片机竞赛获奖名单_2014年北京市中小学生单片机获奖名单-获奖名单...
  17. windbg调试ACPI ASL Code 实例一则
  18. Python 中的三元运算符,三目表达式
  19. 软件工程教程:第2章软件问题定义及可行性分析 课后习题
  20. 京东数科七层负载 | HTTPS硬件加速 (Freescale加速卡篇)

热门文章

  1. redhat enterprise linux as4下载,RedHat Enterprise Linux AS4下安装小企鹅输入法.doc
  2. php 代码 屏蔽 notice,屏蔽PHP默认设置中的Notice警告的方法
  3. 【考研高数-线性代数-强化】第三章 n维向量(难点,加油)
  4. tftp服务配置的详细过程,简单快速
  5. 微软报告:GPT-4可以算早期AGI/ 百图生科发布AI生成蛋白质平台/ Arm寻求上调芯片设计价格…今日更多新鲜事在此...
  6. Android系统Settings添加语言
  7. 运用 iMazing备份《保卫萝卜》游戏存档
  8. WPF教程(十四)文本框
  9. systemctl 启动nginx
  10. Matlab使用纬度和经度数据创建地图