matlab线性分类器的设计.doc

matlab线性分类器的设计.doc

ID:58676563

大小:438.50 KB

页数:13页

时间:2020-10-15

matlab线性分类器的设计.doc_第1页
matlab线性分类器的设计.doc_第2页
matlab线性分类器的设计.doc_第3页
matlab线性分类器的设计.doc_第4页
matlab线性分类器的设计.doc_第5页
资源描述:

《matlab线性分类器的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、线性分类器设计1问题描述对“data1.m”数据,分别采用感知机算法、最小平方误差算法、线性SVM算法设计分类器,分别画出决策面,并比较性能。(注意讨论算法中参数设置的影响。)2方法描述2.1感知机算法线性分类器的第一个迭代算法是1956年由FrankRosenblatt提出的,即具有自学习能力的感知器(Perceptron)神经网络模型,用来模拟动物或者人脑的感知和学习能力。这个算法被提出后,受到了很大的关注。感知器在神经网络发展的历史上占据着特殊的位置:它是第一个从算法上完整描述的神经网络,是一种具有分层神经网络结构、神经元之间有

2、自适应权相连接的神经网络的一个基本网络。感知器的学习过程是不断改变权向量的输入,更新结构中的可变参数,最后实现在有限次迭代之后的收敛。感知器的基本模型结构如图1所示:图1感知器基本模型其中,X输入,Xi表示的是第i个输入;Y表示输出;W表示权向量;w0是阈值,f是一个阶跃函数。感知器实现样本的线性分类主要过程是:特征向量的元素x1,x2,……,xk是网络的输入元素,每一个元素与相应的权wi相乘。,乘积相加后再与阈值w0相加,结果通过f函数执行激活功能,f为系统的激活函数。因为f是一个阶跃函数,故当自变量小于0时,f=-1;当自变量大于

3、0时,f=1。这样,根据输出信号Y,把相应的特征向量分到为两类。然而,权向量w并不是一个已知的参数,故感知器算法很重要的一个步骤即是寻找一个合理的决策超平面。故设这个超平面为w,满足:(1)引入一个代价函数,定义为:(2)其中,Y是权向量w定义的超平面错误分类的训练向量的子集。变量定义为:当时,=-1;当时,=+1。显然,J(w)≥0。当代价函数J(w)达到最小值0时,所有的训练向量分类都全部正确。为了计算代价函数的最小迭代值,可以采用梯度下降法设计迭代算法,即:(3)其中,w(n)是第n次迭代的权向量,有多种取值方法,在本设计中采用

4、固定非负值。由J(w)的定义,可以进一步简化(3)得到:(4)通过(4)来不断更新w,这种算法就称为感知器算法(perceptronalgorithm)。可以证明,这种算法在经过有限次迭代之后是收敛的,也就是说,根据(4)规则修正权向量w,可以让所有的特征向量都正确分类。采用感知器算法实现data1.m的数据分类流程如图2所示:图2单层感知器算法程序流程MATLAB程序源代码如下:functionPer1()clearall;closeall;%样本初始化x1(1,1)=0.1;x1(1,2)=1.1;x1(2,1)=6.8;x1(2

5、,2)=7.1;x1(3,1)=-3.5;x1(3,2)=-4.1;x1(4,1)=2.0;x1(4,2)=2.7;x1(5,1)=4.1;x1(5,2)=2.8;x1(6,1)=3.1;x1(6,2)=5.0;x1(7,1)=-0.8;x1(7,2)=-1.3;x1(8,1)=0.9;x1(8,2)=1.2;[8.44.1;4.2-4.30.01.61.9-3.2-4.0-6.13.7-2.2]x2(1,1)=7.1;x2(1,2)=;x2(2,1)=-1.4;x2(2,2)=;x2(3,1)=4.5;x2(3,2)=;x2(4,1

6、)=6.3;x2(4,2)=;x2(5,1)=4.2;x2(5,2)=;x2(6,1)=1.4;x2(6,2)=;x2(7,1)=2.4;x2(7,2)=;x2(8,1)=2.5;x2(8,2)=;fori=1:8r1(i)=x1(i,1);end;fori=1:8r2(i)=x1(i,2);end;fori=1:8r3(i)=x2(i,1);end;fori=1:8r4(i)=x2(i,2);end;figure(1);plot(r1,r2,'*',r3,r4,'o');holdon;%保持当前的轴和图像不被刷新,在该图上接着绘制下

7、一图x1(:,3)=1;%考虑到不经过原点的超平面,对x进行扩维x2(:,3)=1;%使x'=[x1],x为2维的,故加1扩为3维%进行初始化w=rand(3,1);%随机给选择向量,生成一个3维列向量p=1;%p0非负正实数ox1=-1;%代价函数中的变量ox2=1;%当x属于w1时为-1,当x属于w2时为1s=1;%标识符,当s=0时,表示迭代终止n=0;%表示迭代的次数w1=[0;0;0];whiles%开始迭代J=0;%假设初始的分类全部正确j=[0;0;0];%j=ox*xfori=1:45if(x1(i,:)*w)>0%查

8、看x1分类是否错误,在x属于w1却被错误分类的情况下,w'x<0w1=w;%分类正确,权向量估计不变else%分类错误j=j+ox1*x1(i,:)';%j=ox*x。进行累积运算J=J+ox1*x1(i,:)*w;%感

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。