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

一、实验目的
理解感知准则函数的原理,理解参数设置对算法的影响; 掌握线性分类器的基本原理和设计步骤。
二、实验环境
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’)

基于感知器准则的线性分类器设计相关推荐

  1. 用java实现基于感知器的数据线性分类

    感知器(perceptron) 是比较简单的二分类器,通过对训练样本集的学习,从而得到判别函数权值的解,产生线性可分的样本判别函数.该算法属于非参数算法,优点是不需要对各类样本的统计性质作任何假设,属 ...

  2. 人工智能学习笔记 感知器算法的设计实现 感知器准则实现多类分类

    学习来源 感知器算法的设计实现 python_监心司的博客-CSDN博客 实验原理 实验内容 1. 数据生成及规范化处理 利用高斯模型,生成 N 类(N>5)数据(2D or 3D),并对生成样 ...

  3. 基于 iris 数据集采用感知器 Perceptron 实现线性二分类

    基于 iris 数据集采用感知器 Perceptron 实现线性二分类 题目简述: 基于 iris 数据集(四个特征,三个类别),选取两个特征和两个类别,采用感知器 Perceptron 实现线性二分 ...

  4. 模式识别作业-线性分类器设计总结

    刚刚做完线性分类器的作业,趁热打铁做下总结.    摘要    模式识别的目的是要在特征空间中设法找到两类(或多类)之间的分界面.基于样本直接设计分类器需要确定三个基本要素:一是分类器即判别函数的类型 ...

  5. 基于感知器的中文分词算法

    http://heshenghuan.github.io/2015/12/21/%E5%9F%BA%E4%BA%8E%E6%84%9F%E7%9F%A5%E5%99%A8%E7%9A%84%E4%B8 ...

  6. 《MATLAB 神经网络43个案例分析》:第30章 基于随机森林思想的组合分类器设计——乳腺癌诊断

    <MATLAB 神经网络43个案例分析>:第30章 基于随机森林思想的组合分类器设计--乳腺癌诊断 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB ...

  7. 感知器原理及线性分类技术实现

    在说起感知器之前,需要先说一下神经网络的定义: 神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应. 感知器(M-P神经元模型)  感 ...

  8. matlab实现感知器分类 高斯分布,模式作业设计

    1.1题目 给出K-均值算法的程序框图,编写程序,自选一组分别属于三类的三维模式样本(图2.13),并给它们进行聚类分析. 1.2算法原理 K-均值算法也称C-均值算法,是根据函数准则进行分类的聚类算 ...

  9. 机器学习练习记录(1):伪逆法、势函数、基于二次准则的H-K函数、感知器法

    伪逆法 RBF(Radial Basis Function)径向基函数神经网络的学习算法 RBF网络需要学习的参数有3个:基函数的中心ci,方差σi以及隐含层与输出层间的权值Wi,根据径向基函数中心选 ...

  10. 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法...

    这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...

最新文章

  1. 负载均衡集群介绍、LVS介绍、LVS调度算法、 LVS NAT模式搭建
  2. Zabbix监控交换机设置方法
  3. Android系统的进程分类
  4. IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR
  5. linux 短信功能,Android调用系统短信功能发送短信
  6. 转- java单例模式几种实现方式
  7. 交易系统如何确保账簿100%准确
  8. 计算机编码原理——不同数据类型存储中文编码
  9. 让Fiddler能够检测到localhost的http数据
  10. DropDownList如何绑定DataTable,如何绑定DataSet
  11. GameJS——Game Library written in JavaScript
  12. Java集合里的一些“坑”
  13. 【转】如何查找MySQL中慢查询的SQL语句
  14. C语言开关读程序,手把手教你学单片机的C语言程序设计(十)开关语句和循环语句.pdf...
  15. 车载android 电源管理
  16. DM、PQ、PM、diskgen分区工具介绍比较
  17. 《Security of GPS/INS based On-road Location Tracking Systems》论文翻译
  18. 3DMAX绘室内装修三维效果图
  19. Linux各种安装软件包的方式
  20. 杜克大学电气与计算机考研,杜克大学电气与计算机工程研究生录取满足哪些要求?...

热门文章

  1. android 常用软件包
  2. android手机计算器代码下载,Android计算器 例子源码下载
  3. win10 常用DOS命令
  4. 手机打印文件_Android 手机打印文件_Android 手机连接打印机_手机端打印wordExcelPPT_华为P20连接打印机_惠普M1213nf MFP打印机无线打印
  5. 弱电总包施工组织设计与实施方案
  6. 电脑上虚拟打印机如何将word转jpg
  7. 怎么恢复佳能相机SD卡CF卡误删除格式化的MOV视频
  8. 【Android工具】更新QMD音乐下载软件,MP3音乐下载器
  9. 单片机常用C代码汇总
  10. VSCode svn忽略文件提交