最小二乘支持向量机的自编代码
clear all;
clc;
N=80;
NN1=20;
%********************随机选择初始训练样本及确定预测样本
*******************************
x = linspace(0,100,80);
%样本个数
%预测样本数
%正则化参数
%核参数值
%核参数值
y = sinc(x) +normrnd(0,.1,size(x,1),1);
index=randperm(N); %随机排序 N 个序列
index=sort(index);
gama=23.411;
deita=0.0698;
%thita=;
%*********构造感知机核函数*************************************
%for i=1:N
%
%
%
%
%
%end
%*********构造径向基核函数**************************************
for i=1:N
x2=x(:,index(j));
K(i,j)=tanh(deita*(x1'*x2)+thita);
x1=x(:,index(i));
for j=1:N
end
x1=x(:,index(i));
for j=1:N
x2=x(:,index(j));
x12=x1-x2;
K(i,j)=exp(-(x12'*x12)/2/(deita*deita));
end
%这个是随便给的数据
这两个参数也是随便弄的
x1=x(:,index(i));
for j=1:N
end
%*********构造多项式核函数****************************************
%for i=1:N
%
%
%
%
%
%end
%*********构造核矩阵************************************
x2=x(:,index(j));
K(i,j)=(1+x1'*x2)^(deita);
end
for i=1:N-NN1
for j=1:N-NN1
omeiga1(i,j)=K(i,j);
end
end
omeiga2=omeiga1';
omeiga=omeiga2+(1/gama)*eye(N-NN1);
A12=ones(1,N-NN1);
A21=A12';
A=[0 A12;A21 omeiga];
%**************************************
for i=1:N-NN1
B21(i,:)=y(index(i));
%********LS-SVM 模型的解******************************
%******
end
B=[0;B21];
C=A\B;
b=C(1);
for i=1:N-NN1
end
%模型参数
aipha(i)=C(i+1); %模型参数,行向量
%*******************************************
for i=1:N
%预测模型
aifx(i)=b+(aipha)*K(1:N-NN1,i);
end
%*******************************************
aifx
index