clear;
clc;
nAmostras = 500
%Formação da matriz de entrada
x = (((rand(nAmostras,2) * 2)-1) / 10) + round(rand(nAmostras,2));
plot(x(:,1),x(:,2),'.')
title('X0 vs X1');
%Calculo da matriz desejada
d = round(x(:,1)) | round(x(:,2));
%Treinamento
n = 0.1;
maxEpocas = 100;
W = ones(1,3) * 0.5;
histErros = 0;
%Iterando pelas amostras
for j=1:maxEpocas
cont=0;
for i=1:nAmostras
a = [1, x(i,:) ];
u = a * W';
if u>=0
y = 1;
else
y = 0;
end
E = d(i) - y;
W = W + n * E * a;
if(E~= 0)
cont = cont + 1;
end
end
histErros = [histErros cont];
end
hold
plotpc(W(2:3),W(1))
Nenhum comentário:
Postar um comentário