最小二乘支持向量机的自编代码
clear all;
clc;
N=35; %样本个数
NN1=4; %预测样本数
%********************随机选择初始训练样本及确定预测样本*******************************
x=[];
y=[];
index=randperm(N); %随机排序N个序列
index=sort(index);
gama=23.411; %正则化参数
deita=0.0698; %核参数值
%thita=; %核参数值
%*********构造感知机核函数*************************************
%for i=1:N
% x1=x(:,index(i));
% for j=1:N
% x2=x(:,index(j));
% K(i,j)=tanh(deita*(x1'*x2)+thita);
% end
%end
%*********构造径向基核函数**************************************
for i=1:N
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
end
%*********构造多项式核函数****************************************
%for i=1:N
% x1=x(:,index(i));
% for j=1:N
% x2=x(:,index(j));
% K(i,j)=(1+x1'*x2)^(deita);
% end
%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));
end
B=[0;B21];
%********LS-SVM模型的解******************************
C=AB;
%******
b=C(1); %模型参数
for i=1:N-NN1
aipha(i)=C(i+1); %模型参数,行向量
end
%*******************************************
for i=1:N %预测模型
aifx(i)=b+(aipha)*K(1:N-NN1,i);
end
%*******************************************
aifx
index