Простой алгоритм Perceptron в Matlab: невозможно нарисовать линию классификатора - PullRequest
0 голосов
/ 16 сентября 2018

Я новичок в Matlab и пытаюсь проверить свою кривую обучения, написав алгоритм персептрона с нуля. Я видел это в R, но я думаю, что это весело, чтобы попробовать Matlab. Мне кажется, что я не могу нарисовать линию классификатора.

load data1.mat
w_0 = [1;-1];


for iteration = 1 : 100  %<- in practice, use some stopping criterion!
  for ii = 1 : size(X,2)         %cycle through training set
    if sign(w'.*X(:,ii)) <=0 %wrong decision?
      w = w + X(:,ii) * y(ii);   %then add (or subtract) this point to w
    end
  end
end
b = w(1)/w(2);
d = -w(1)/w(2);   
x1 = [-1,b];
x2 = [1,d];

scatter(X(:,1),X(:,2),50,y,'*');
hold on;plot(x1,x2);hold off

Мой набор данных ("data1.mat") имеет X в качестве матрицы признаков 40x2 и y. Я хочу построить граничную линию, то есть линию w^Tx = w_1*x_1 + w_2*x_2 = 0. Я просто выбираю 2 балла p1 = (a,b) and p2 = (c,d). Поскольку мои пределы данных x_1 и x_2 между -1 и 1, я выбираю a = 1 и c = -1 и выясняю b и d.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...