您的位置:首页 > 编程语言 > MATLAB

关于matlab的SVM工具箱的几个函数

2012-06-24 09:02 232 查看
最小二乘支持向量机的自编代码

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=A\B;

%******

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: