【模式识别原理】matlab 感知器 准则函数分类器示例

进一步了解分类器的设计概念,理解并掌握感知准则函数分类器的原理及方法,并用于实际的数据分类。

1实验原理

利用梯度下降法求解感知准则函数的解向量。

构造准则函数

式中Yk是错分样本集合。

解向量求解的迭代形式

2实验内容

已知有两类数据w1和w2,

w1中数据点的坐标对应一一如下:

数据:

x1 =

    0.2331    1.5207    0.6499    0.7757    1.0524    1.1974

    0.2908    0.2518    0.6682    0.5622    0.9023    0.1333

   -0.5431    0.9407   -0.2126    0.0507   -0.0810    0.7315

    0.3345    1.0650   -0.0247    0.1043    0.3122    0.6655

    0.5838    1.1653    1.2653    0.8137   -0.3399    0.5152

    0.7226   -0.2015    0.4070   -0.1717   -1.0573   -0.2099

y1=

    2.3385    2.1946    1.6730    1.6365    1.7844    2.0155

    2.0681    2.1213    2.4797    1.5118    1.9692    1.8340

    1.8704    2.2948    1.7714    2.3939    1.5648    1.9329

    2.2027    2.4568    1.7523    1.6991    2.4883    1.7259

    2.0466    2.0226    2.3757    1.7987    2.0828    2.0798

    1.9449    2.3801    2.2373    2.1614    1.9235    2.2604

z1=

    0.5338    0.8514    1.0831    0.4164    1.1176    0.5536

    0.6071    0.4439    0.4928    0.5901    1.0927    1.0756

    1.0072    0.4272    0.4353    0.9869    0.4841    1.0992

    1.0299    0.7127    1.0124    0.4576    0.8544    1.1275

    0.7705    0.4129    1.0085    0.7676    0.8418    0.8784

    0.9751    0.7840    0.4158    1.0315    0.7533    0.9548

w2数据点的对应的三维坐标为

x2 =

    1.4010    1.2301    2.0814    1.1655    1.3740    1.1829

    1.7632    1.9739    2.4152    2.5890    2.8472    1.9539

    1.2500    1.2864    1.2614    2.0071    2.1831    1.7909

    1.3322    1.1466    1.7087    1.5920    2.9353    1.4664

    2.9313    1.8349    1.8340    2.5096    2.7198    2.3148

    2.0353    2.6030    1.2327    2.1465    1.5673    2.9414

y2 =

    1.0298    0.9611    0.9154    1.4901    0.8200    0.9399

    1.1405    1.0678    0.8050    1.2889    1.4601    1.4334

    0.7091    1.2942    1.3744    0.9387    1.2266    1.1833

    0.8798    0.5592    0.5150    0.9983    0.9120    0.7126

    1.2833    1.1029    1.2680    0.7140    1.2446    1.3392

    1.1808    0.5503    1.4708    1.1435    0.7679    1.1288

z2 =

    0.6210    1.3656    0.5498    0.6708    0.8932    1.4342

    0.9508    0.7324    0.5784    1.4943    1.0915    0.7644

    1.2159    1.3049    1.1408    0.9398    0.6197    0.6603

    1.3928    1.4084    0.6909    0.8400    0.5381    1.3729

    0.7731    0.7319    1.3439    0.8142    0.9586    0.7379

    0.7548    0.7393    0.6739    0.8651    1.3699    1.1458

3实验要求

代码:

 clc;clear;close all

x1 =[

    0.2331    1.5207    0.6499    0.7757    1.0524    1.1974

    0.2908    0.2518    0.6682    0.5622    0.9023    0.1333

   -0.5431    0.9407   -0.2126    0.0507   -0.0810    0.7315

    0.3345    1.0650   -0.0247    0.1043    0.3122    0.6655

    0.5838    1.1653    1.2653    0.8137   -0.3399    0.5152

    0.7226   -0.2015    0.4070   -0.1717   -1.0573   -0.2099];

y1=[

    2.3385    2.1946    1.6730    1.6365    1.7844    2.0155

    2.0681    2.1213    2.4797    1.5118    1.9692    1.8340

    1.8704    2.2948    1.7714    2.3939    1.5648    1.9329

    2.2027    2.4568    1.7523    1.6991    2.4883    1.7259

    2.0466    2.0226    2.3757    1.7987    2.0828    2.0798

    1.9449    2.3801    2.2373    2.1614    1.9235    2.2604];

z1=[

    0.5338    0.8514    1.0831    0.4164    1.1176    0.5536

    0.6071    0.4439    0.4928    0.5901    1.0927    1.0756

    1.0072    0.4272    0.4353    0.9869    0.4841    1.0992

    1.0299    0.7127    1.0124    0.4576    0.8544    1.1275

    0.7705    0.4129    1.0085    0.7676    0.8418    0.8784

    0.9751    0.7840    0.4158    1.0315    0.7533    0.9548];

x2 =[

    1.4010    1.2301    2.0814    1.1655    1.3740    1.1829

    1.7632    1.9739    2.4152    2.5890    2.8472    1.9539

    1.2500    1.2864    1.2614    2.0071    2.1831    1.7909

    1.3322    1.1466    1.7087    1.5920    2.9353    1.4664

    2.9313    1.8349    1.8340    2.5096    2.7198    2.3148

    2.0353    2.6030    1.2327    2.1465    1.5673    2.9414];

y2 =[

    1.0298    0.9611    0.9154    1.4901    0.8200    0.9399

    1.1405    1.0678    0.8050    1.2889    1.4601    1.4334

    0.7091    1.2942    1.3744    0.9387    1.2266    1.1833

    0.8798    0.5592    0.5150    0.9983    0.9120    0.7126

    1.2833    1.1029    1.2680    0.7140    1.2446    1.3392

    1.1808    0.5503    1.4708    1.1435    0.7679    1.1288];

z2 =[

    0.6210    1.3656    0.5498    0.6708    0.8932    1.4342

    0.9508    0.7324    0.5784    1.4943    1.0915    0.7644

    1.2159    1.3049    1.1408    0.9398    0.6197    0.6603

    1.3928    1.4084    0.6909    0.8400    0.5381    1.3729

    0.7731    0.7319    1.3439    0.8142    0.9586    0.7379

    0.7548    0.7393    0.6739    0.8651    1.3699    1.1458];

xx1 = [x1(:) y1(:) z1(:)]';

xx2 = [x2(:) y2(:) z2(:)]';

m1=mean(xx1,2);

m2=mean(xx2,2);

s1=zeros(3,3);

for i=1:size(xx1,2)

    s1 = s1 + (xx1(:,i)-m1)*(xx1(:,i)-m1)';

end

s2=zeros(3,3);

for i=1:size(xx2,2)

    s2 = s2 + (xx2(:,i)-m2)*(xx2(:,i)-m2)';

end

sw=s1+s2;

w=inv(sw)*(m1-m2);

w=w/sqrt(w'*w)

g1 = w'*xx1;;

g2 = w'*xx2;;

r1=ones(size(g1));

r2=ones(size(g2));

hold on

plot(g1,r1,'b*')

plot(g2,r2,'r+')

t =[1 1.5 0.6; 1.2 1.0 0.55; 2.0 0.9 0.68; 1.2 1.5 0.89;0.23 2.33 1.43];

yt=w'*t';

rt1=1.1*ones(size(yt));

w0=w'*(m1+m2)/2;

plot(yt(find(yt>w0)),rt1(yt>w0),'b+')

plot(yt(find(yt<w0)),rt1(yt<w0),'r*')

a=axis;

a(3)= 0.99;

  1. 求出解向量,验证用其能否将原始样本进行类别区分。

解向量w =

  [-0.3612

    0.9071

   -0.2163]   

可以对样本进行正确分类.

根据上述的结果并判断(1,1.5,0.6)(1.2,1.0,0.55),(2.0,0.9,0.68),(1.2,1.5,0.89),(0.23,2.33,1.43),属于哪个类别。

第一类: (1,1.5,0.6), (1.2,1.0,0.55), (1.2,1.5,0.89)

第二类: (2.0,0.9,0.68), (2.0,0.9,0.68)

  1. 图示分类结果。

我的其他专栏:

C语言

单片机原理

模式识别原理

数字电子技术实验

自动控制原理

模拟电子技术

数据结构

关注我了解更多

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值