基于感知器准则的线性分类器设计

基于感知器准则的线性分类器设计

一、实验目的
理解感知准则函数的原理,理解参数设置对算法的影响; 掌握线性分类器的基本原理和设计步骤。
二、实验环境
PC 机下 MATLAB 编程环境

三、实验原理
感知器基本原理:
感知器学习的过程是不断改变权向量的输入,更新结构中的可变参数,最后实现在有限次迭代之后的收敛。感知器的基本模型结构如下图所示:

其中,X 输入,Xi 表示的是第 i 个输入;Y 表示输出;W 表示权向量;w0 是阈值,f 是一个阶跃函数。
感知器实现样本的线性分类主要过程是:将特征向量的元素 x1,x2,……,xk(网络的输入元素)与每一个元素与相应的权 wi 相乘,乘积相加后再与阈值 w0 相加,结果通过 f 函数执行激活功能,f 为系统的激活函数。因为 f 是一个阶跃函数,故当自变量小于 0 时,f= - 1;当自变量大于 0 时,f= 1。这样,根据输出信号Y,把相应的特征向量分到为两类。
四、实验内容
用所给二维样本数据(如下表),编程设计线性分类器实现ω1 和 ω2 类、ω2 和 ω3 类和 ω1 和 ω3 类的分类。
实验样本数据
类别 ω1 ω2 ω3
样本 x1 x2 x1 x2 x1 x2
1 0.1 1.1 7.1 4.2 3.0 -2.9
2 6.8 7.1 -1.4 -4.3 0.5 8.7
3 -3.5 -4.1 4.5 0.0 2.9 2.1
4 2.0 2.7 6.3 1.6 -0.1 5.2
5 4.1 2.8 4.2 1.9 -4.0 2.2
6 3.1 5.0 1.4 -3.2 -1.3 3.7
7 -0.8 -1.3 2.4 -4.0 -3.4 6.2

8 0.9 1.2 2.5 -6.1 -4.1 3.4
9 5.0 6.4 8.4 3.7 -5.1 1.6
10 3.9 4.0 4.1 -2.2 1.9 5.1

程序:
(1)w1 w2分类:
w1=[0.1 6.8 -3.5 2.0 4.1 3.1 -0.8 0.9 5.0 3.9;1.1 7.1 -4.1 2.7 2.8 5.0 -1.3 1.2 6.4 4.0];
w2=[7.1 -1.4 4.5 6.3 4.2 1.4 2.4 2.5 8.4 4.1;4.2 -4.3 0.0 1.6 1.9 -3.2 -4.0 -6.1 3.7 -2.2];
w3=[3.0 0.5 2.9 -0.1 -4.0 -1.3 -3.4 -4.1 -5.1 1.9;-2.9 8.7 2.1 5.2 2.2 3.7 6.2 3.4 1.6 5.1];
ww1=[ones(1,size(w1,2));w1];
ww2=[ones(1,size(w2,2));w3];
w12=[ww1,-ww2];
y=zeros(1,size(w12,2));
v=[1;1;1];
k=0;
while any(y<=0)
for i=1:size(y,2)
y(i)=v’*w12(:,i);
end
v=v+(sum((w12(:,find(y<=0)))’))’;
k=k+1;
end

figure(1)
plot(w1(1,:),w1(2,:),‘bo’)
hold on
plot(w2(1,:),w2(2,:),‘b+’)
xmin=min(min(w1(1,:)),min(w2(1,:)));
xmax=max(max(w1(1,:)),max(w2(1,:)));
ymin=min(min(w1(2,:)),min(w2(2,:)));
ymax=max(max(w1(2,:)),max(w2(2,:)));
xindex=xmin-1:(xmax-xmin)/100:xmax+1;
yindex=-v(2)*xindex/v(3)-v(1)/v(3);
plot(xindex, yindex,‘g’)
在这里插入图片描述

(2)w2 w3分类:
w1=[0.1 6.8 -3.5 2.0 4.1 3.1 -0.8 0.9 5.0 3.9;1.1 7.1 -4.1 2.7 2.8 5.0 -1.3 1.2 6.4 4.0];
w2=[7.1 -1.4 4.5 6.3 4.2 1.4 2.4 2.5 8.4 4.1;4.2 -4.3 0.0 1.6 1.9 -3.2 -4.0 -6.1 3.7 -2.2];
w3=[3.0 0.5 2.9 -0.1 -4.0 -1.3 -3.4 -4.1 -5.1 1.9;-2.9 8.7 2.1 5.2 2.2 3.7 6.2 3.4 1.6 5.1];
ww1=[ones(1,size(w2,2));w1];
ww2=[ones(1,size(w3,2));w3];
w23=[ww1,-ww2];
y=zeros(1,size(w23,2));
v=[1;1;1];
k=0;
while any(y<=0)
for i=1:size(y,2)
y(i)=v’*w23(:,i);
end
v=v+(sum((w23(:,find(y<=0)))’))’;
k=k+1;
end

figure(1)
plot(w2(1,:),w2(2,:),‘bo’)
hold on
plot(w3(1,:),w3(2,:),‘b+’)
xmin=min(min(w2(1,:)),min(w3(1,:)));
xmax=max(max(w2(1,:)),max(w3(1,:)));
ymin=min(min(w2(2,:)),min(w3(2,:)));
ymax=max(max(w2(2,:)),max(w3(2,:)));
xindex=xmin-1:(xmax-xmin)/100:xmax+1;
yindex=-v(2)*xindex/v(3)-v(1)/v(3);
plot(xindex, yindex,‘g’)
在这里插入图片描述

(3)w1 w3分类:
w1=[0.1 6.8 -3.5 2.0 4.1 3.1 -0.8 0.9 5.0 3.9;1.1 7.1 -4.1 2.7 2.8 5.0 -1.3 1.2 6.4 4.0];
w2=[7.1 -1.4 4.5 6.3 4.2 1.4 2.4 2.5 8.4 4.1;4.2 -4.3 0.0 1.6 1.9 -3.2 -4.0 -6.1 3.7 -2.2];
w3=[3.0 0.5 2.9 -0.1 -4.0 -1.3 -3.4 -4.1 -5.1 1.9;-2.9 8.7 2.1 5.2 2.2 3.7 6.2 3.4 1.6 5.1];
ww1=[ones(1,size(w1,2));w1];
ww2=[ones(1,size(w3,2));w3];
w13=[ww1,-ww2];
y=zeros(1,size(w13,2));
v=[1;1;1];
k=0;
while any(y<=0)
for i=1:size(y,2)
y(i)=v’*w13(:,i);
end
v=v+(sum((w13(:,find(y<=0)))’))’;
k=k+1;
end

figure(1)
plot(w1(1,:),w1(2,:),‘bo’)
hold on
plot(w3(1,:),w3(2,:),‘b+’)
xmin=min(min(w1(1,:)),min(w3(1,:)));
xmax=max(max(w1(1,:)),max(w3(1,:)));
ymin=min(min(w1(2,:)),min(w3(2,:)));
ymax=max(max(w1(2,:)),max(w3(2,:)));
xindex=xmin-1:(xmax-xmin)/100:xmax+1;
yindex=-v(2)*xindex/v(3)-v(1)/v(3);
plot(xindex, yindex,‘g’)

在这里插入图片描述

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸡联盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值