SVM算法,包括算法原理、算法实现、核函数参数的选取、优化、系数调整,能通俗地说明下吗??谢谢
有低维空间转到高维空间,使得在低维空间里不能线性分类的数据可以在高维空间里线性分类。
能不用自带函数不,给你个最小二乘支持向量机的自编代码
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
SVM 算法实现,主要是解决SVM公式对偶问题,常用的是SMO,
SVM 核参数,隐含的将特征映射到高维空间,有兴趣可学习 learn with kernel.
SVM 参数调整分两部分,1 参数调整,用上述SMO算法,2 模型选择。
太累,不想写太多
http://blog.sina.com.cn/s/blog_5e310be90100yxtd.html
http://blog.csdn.net/techq/article/details/6171688
http://www.blogjava.net/zhenandaci/archive/2009/02/13/254519.html
还看不明白叫我 我给你讲