📄 gfclass.m
字号:
%
%
clear all
close all
s=1;
N=100; % Learning set will be 4*N
N=round(N/4);
% Generate a set of learning sample
% Class one
X00=1.5*[randn(N,1),randn(N,1)]+2*[ones(N,1),ones(N,1)];
X01=1.5*[randn(N,1),randn(N,1)]+2*[-ones(N,1),-ones(N,1)];
X0=[X00;X01];
% Class two
X10=[randn(N,1),randn(N,1)]+3*[-ones(N,1),ones(N,1)];
X11=[randn(N,1),randn(N,1)]+3*[ones(N,1),-ones(N,1)];
X1=[X10;X11];
% Plot double class by distinct colors
figure(1)
whitebg(1,'k');
hold on
plot(X0(:,1),X0(:,2),'ro','linewidth',5)
plot(X1(:,1),X1(:,2),'gs','linewidth',5)
figure(2) % For another lamda
whitebg(2,'k');
hold on
plot(X0(:,1),X0(:,2),'ro','linewidth',5)
plot(X1(:,1),X1(:,2),'gs','linewidth',5)
figure(3) % Dull one for depict
whitebg(3,'k');
hold on
plot(X0(:,1),X0(:,2),'ro','linewidth',5)
plot(X1(:,1),X1(:,2),'gs','linewidth',5)
input('anykey to continue')
% Concatenating two class
X=[X0;X1];
D=[ones(2*N,1);-ones(2*N,1)];
% Evaluating G matrix
for n=1:4*N
for m=1:4*N
u=norm(X(n,:)-X(m,:))*2/(2*s^2);
G(m,n)=exp(-u);
end
end
figure(1)
L=0.1;
W1=(inv(G-L.*diag(ones(1,4*N))))*D;
n=0;
for x=min(X(:,1))-1:0.25:max(X(:,1))+1
for y=min(X(:,2))-1:0.25:max(X(:,2))+1
Xin=[x,y];
F=0;
for k=1:4*N
u=-(norm(Xin-X(k,:))^2/(2*s^2));
F=F+W1(k)*exp(u);
end
if F>0.0,
plot(x,y,'c.')
end
end
end
axis([min(X(:,1))-1,max(X(:,1))+1,min(X(:,2))-1,max(X(:,2))+1]);
figure(2)
L=0.5;
W2=(inv(G-L.*diag(ones(1,4*N))))*D;
n=0;
for x=min(X(:,1))-1:0.25:max(X(:,1))+1
for y=min(X(:,2))-1:0.25:max(X(:,2))+1
Xin=[x,y];
F=0;
for k=1:4*N
u=-(norm(Xin-X(k,:))^2/(2*s^2));
F=F+W2(k)*exp(u);
end
if F>0.0,
plot(x,y,'c.')
end
end
end
axis([min(X(:,1))-1,max(X(:,1))+1,min(X(:,2))-1,max(X(:,2))+1]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -