Matlab中的简单Perceptron算法:无法绘制分类线

时间:2018-09-16 19:34:08

标签: matlab perceptron

我是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。

谢谢!

0 个答案:

没有答案