📄 exnlrlpsvm.m
字号:
%
%
% Examples of Non linear Robust linear program SVM
%
%
%
% min C sum nu_j + sum s_j
%
% st y_i ( sum_j w_j y_j K(x_i,x_j) -b ) + nu_i >= 1
% nu >=0
% -s_j <= w_j <= s_j
%
clear all
close all
Napp = 200;
Nunl =10;
tic
sigma=0.4;
C=10;
[xapp,yapp,xtest,ytest, xtest1, xtest2]=dataset('gaussian',Napp,Nunl,sigma);
[xapp,xtest]=normalizemeanstd(xapp,xtest);
h1=plot(xapp(yapp==1,1),xapp(yapp==1,2),'+g'); hold on
set(h1,'LineWidth',2);
h2=plot(xapp(yapp==-1,1),xapp(yapp==-1,2),'xr');
set(h2,'LineWidth',2);
Napp=size(xapp,1);
Nbvar=size(xapp,2);
lambda=1e-6;
kernel='gaussian';
kerneloption=1;
[xsup,w,b,pos]=LPsvmclass(xapp,yapp,C,lambda,kernel,kerneloption);
toc
[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)];
ypred = svmval(Xtest,xsup,w,b,kernel,kerneloption,[ones(length(Xtest),1)]);
ypred = reshape(ypred,nn,nn);
verbose=0;
lambda=1e-7;
tic
[xsupsvm,w1,w0,possvm,tps,alpha1] = svmclass(xapp,yapp,C,lambda,kernel,kerneloption,verbose);
ypred1 = svmval(Xtest,xsupsvm,w1,w0,kernel,kerneloption,[ones(length(Xtest),1)]);
ypred1 = reshape(ypred1,nn,nn);
toc
hold on
[cc,hh]=contour(xtest1,xtest2,ypred,[-1 0 1],'k');
h2=plot(xsup(:,1),xsup(:,2),'xb');
set(h2,'LineWidth',2);
clabel(cc,hh);
[cc,hh]=contour(xtest1,xtest2,ypred1,[-1 0 1],'r:');
h2=plot(xsupsvm(:,1),xsupsvm(:,2),'om');
clabel(cc,hh);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -