【LSSVM预测】基于误差的LS-SVM与PLS相结合的非线性建模附Matlab代码

📅 2026/7/22 17:24:16
【LSSVM预测】基于误差的LS-SVM与PLS相结合的非线性建模附Matlab代码
1 简介提出使用非线性的偏最小二乘法(PLS)的方法来解决工业处理领域输入值是非线性的问题。这个处理方法是由PLS做外部框架和最小二乘支持向量机做内部处理相结合的方法。首先利用PLS对输入输出变量进行提取以降低维数和消除相关性并把得到的特征矩阵作为LS-SVM的输入来建立模型。而且利用了一个权值更新的过程来提高预测的准确率。其中基于误差的非线性迭代最小二乘法(NIPALS)的详细步骤在论文中给出。最后这种新方法的性能通过了基准数据集的验证。相比于原始的线性PLS方法和各种非线性的PLS方法论文中的方法大约降低了30.4%~37.3%的预测误差。2 部分代码clc;clear all;close all%% -----------加载数据--------load servodata.mat%% -----------处理数据--------Xsvnum(:,1:4);X_trainX(1:135,:);X_testX(136:165,:);Ysvnum(:,5);Y_train1Y(1:135,:);Y_test1Y(136:165,:);%% -------数据做归一化处理----[Yn,PS2] mapstd(Y_train1,0,1);Y_trainYn;[Yn,PS1] mapstd(Y_test1,0,1);Y_testYn;[X,PS] mapstd(X_train,0,1);X_trainX;[Xt,PS] mapstd(X_test,0,1);X_testXt;%% 偏最小二乘法处理[p,q,w,t,u,b,ssqdif,Y] pls(X_train,Y_train,3);[pt,qt,wt,tt,ut,bt,ssqdift,Yt] pls(X_test,Y_test,3);%% 计算误差矩阵E/FEX_train-t*p;EtX_test-tt*pt;FY_train-u*q;%% 绘图u1u(:,1);t1t(:,1);Apolyfit(t1,u1,1) ;t_2t(:,2);t_3t(:,3);plot(t1,u1,o);set(gca, XLim,[-3 3]);set(gca, yLim,[-2 4]);hold ont2t1;e1E(:,1);e2E(:,2);e3E(:,3);u2t2.*0.4163-0.0153*e1;F2u2-u1;u2_2t_2.*0.4163-0.63*e2;u2_3t_3.*0.4163-0.63*e3;u_new[u2 u2_2 u2_3];Y_newu_new*q;plot(t1,u2,r)xlabel(t1);ylabel(u1);legend(Acture,Predict);hold off%% 计算训练集误差%Y_new mapstd(reverse,Y_new,PS2);nsize(u1,1);%n1等于x1矩阵的行数括号里1代表取行数2代表取列数%s0;F1Y_new;%-Y_train;for i1:nss(Y_new(i)-Y_train(i))*(Y_new(i)-Y_train(i));endRMSExsqrt(s/n)%% 计算R2X / R2Y[ne,me]size(X_train);X_reshapereshape(X_train,1,ne*me);E_reshapereshape(E,1,ne*me);Y_reshapeY_train;F_reshapeF1;[nf,mf]size(F_reshape);xx0;ee0;for i1:ne*mexxxxX_reshape(i)*X_reshape(i);eeeeE_reshape(i)*E_reshape(i);endyy0;ff0;for j1:nf*mfyyyyY_reshape(j)*Y_reshape(j);ffffF_reshape(j)*F_reshape(j);endR2X(1-ee/xx)*100R2Y(1-ff/yy)*100%% 计算测试集误差%Y_needX_test(:,1).*0.4136;tt1tt(:,1);tt2tt(:,2);tt3tt(:,3);utt1tt1.*0.41630.65*Et(:,1);utt2tt2.*0.41630.65*Et(:,2);utt3tt3.*0.41630.65*Et(:,3);utt[utt1 utt2 utt3];Y_needutt*qt;st0;Y_need mapstd(reverse,Y_need,PS1);for i1:30stst(Y_need(i)-Y_test1(i))*(Y_need(i)-Y_test1(i));endRMSEcsqrt(st/30)%%3 仿真结果4 参考文献[1]熊富强, 桂卫华, 阳春华,等. 基于PLS-LSSVM方法的湿法炼锌过程预测建模[J]. 仪器仪表学报, 2011, 32(4):8.博主简介擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真相关matlab代码问题可私信交流。部分理论引用网络文献若有侵权联系博主删除。