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