SVM 线性分类

clc;

clear;

close all;

%% generate random data

shift = 3;

n = 200;

m=200;

d = 2;

sigma = 1;

x = randn(d,n)-shift;

y = randn(d,m)*sigma+shift;

%%

%show the data

figure;

plot(x(1,:),x(2,:),'rs');

hold on;

plot(y(1,:),y(2,:),'Go');

legend('Positive samples','Negativesamples');

for i=1:n

   A(i,:) = [-x(:,i)',-1];

end

for i=1:m

   A(i+n,:) = [y(:,i)',1];

end

c = ones(n+m,1)*(-1);

w = linprog(zeros(d+1,1),A,c);

hold on;

%% visualize the classification area

x1 = -shift-2:0.1:shift+2*sigma;

y1 = (-w(3)-w(1)*x1)/w(2);

plot(x1,y1,'-','LineWidth',2);

legend('Positive samples','Negativesamples','Linear programming');

H = eye(d+1);

H(d+1,d+1) = 0;

w = quadprog(H,zeros(d+1,1),A,c);

hold on;

x1 = -shift-2:0.1:shift+2*sigma;

y1 = (-w(3)-w(1)*x1)/w(2);

plot(x1,y1,'g-','LineWidth',2);

y1 = (-1-w(3)-w(1)*x1)/w(2);

plot(x1,y1,'g-','LineWidth',2);

y1 = (1-w(3)-w(1)*x1)/w(2);

plot(x1,y1,'g-','LineWidth',2);

legend('Positive samples','Negativesamples','Linear programming','Linear SVM');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值