最近在看李航老师的统计学习,故学习使用matlab语言实现了一下感知机的算法,下面简单总结一下一些注意事项。
1.注意判断误分类点,没有误分类点后要及时退出迭代循坏,不然会一直迭代。
2.感知机绘制出来的分类超平面不止一个,采用不同的初始值和迭代时选取误分类点的顺序不同,得出的解也不同。
3.话不多说,上代码。
(1) Perceptron.m函数
function [W,b] = Perceptron(X,y,Maxstep)
%感知机学习算法
%W为待求的权重向量,b为偏差
%X为输入空间,本次取二维的,y为输出空间,取值为[-1,1]
[n,m] = size(X);%求解矩阵X的大小
%给权值和偏差赋初始值,指定学习步长
W = zeros(m,1);%W为m行的列向量
b = 0;%设置偏差的初始值为0