支持向量机的分类
%
% SVM Classification 2D examplesclear all
close all
clcn = 100;
sigma=0.3;[Xapp,yapp,xtest,ytest]=datasets('gaussian',n,0,sigma);%產生n個高斯分布的隨機樣本數據
Xapp=single(Xapp);
[Xapp]=normalizemeanstd(Xapp);%對數據進行歸一化
plot(Xapp(:,1),Xapp(:,2),'.');
axis([-3.5 3.5 -3.5 3.5])
%%lambda = 1e-7;
C = 10;kernel='gaussian'; %支持向量機的核函數kerneloption=1;[xsup,w,w0,pos,tps,alpha] = svmclass(Xapp,yapp,C,lambda,kernel,kerneloption,1);
%[xsup,w,w0,pos,tps,alpha] = svmclassLS(Xapp,yapp,C,lambda,kernel,kerneloption,1,1,100); ypredapp = svmval(Xapp,xsup,w,w0,kernel,kerneloption,1);%------- Building a 2D Grid for function evaluation -------------------------
[xtest1 xtest2] = meshgrid([-1:.05:1]*3.5,[-1:0.05:1]*3);
nn = length(xtest1);
Xtest = [reshape(xtest1 ,nn*nn,1) reshape(xtest2 ,nn*nn,1)]; %-------------- Evaluating the decision function
ypred = svmval(Xtest,xsup,w,w0,kernel,kerneloption,[ones(length(Xtest),1)]);
ypred = reshape(ypred,nn,nn); %--------------- plotting
figure(1);
clf;
%contourf(xtest1,xtest2,ypred,50);shading flat;
hold on
[cc,hh]=contour(xtest1,xtest2,ypred,[-1 0 1],'k');
clabel(cc,hh);
set(hh,'LineWidth',1);
h1=plot(Xapp(yapp==1,1),Xapp(yapp==1,2),'+r');
set(h1,'LineWidth',1);h2=plot(Xapp(yapp==-1,1),Xapp(yapp==-1,2),'db');
set(h2,'LineWidth',1);
h3=plot(xsup(:,1),xsup(:,2),'ok');
set(h3,'LineWidth',1);axis([-3.5 3.5 -3 3]);
總結
- 上一篇: 随机快速排序
- 下一篇: BP神经网络预测实例