模式识别讲义
更新时间:2023-12-13 04:27:01 阅读量: 教育文库 文档下载
模式识别实验讲义
目 录
MATLAB 基础 ...................................... 1 实验一 感知器算法实验 ............................ 6 实验二 模式聚类算法实验 .......................... 8 实验三 图像识别实验 ............ 错误!未定义书签。1
MATLAB 基础
1.矩阵定义
由m行n列构成的数组称为(m×n)阶矩阵。
用\方括号定义矩阵,其中方括号内\逗号或\空格号分隔矩阵列数值, \分号或\回车键分隔矩阵行数值。 例:a=[a11 a12 a13;a21 a22 a23]或a=[a11,a12,a13;a21,a22,a23]定义了一个2*3阶矩阵a。 a=
a11 a12 a13 a21 a22 a23
aij可以为数值、变量、表达式或字符串,如为数值与变量得先赋值,表达式和变量可以以任何组合形式出现,字符串须每一行中的字母个数相等 ,调用时缺省状态按行顺序取字母,如a(1)为第一行第一个字母。
下标引用:
单下标方式:a(1)= a11 a(4)= a22 (以列的方式排列a11 a21 a12 a22 a13
a23)
双下标方式:a(1,1)= a11 a(2,1)= a21
2.矩阵的加减运算
两矩阵相加减,是对应元素的加减,要求两矩阵具有相同的行数,相同的列数。 MATLAB表达式形式:C=A+B 和 C=A-B ,其中Cij=Aij±Bij。
3 向量乘积和转置
两矩阵A,B相乘,要求两个矩阵的相邻阶数相等,一般情况下不满足交换律。MATLAB表达式形式:C=A*B 其中第i行j列元素Cij为A的第i行的m个元素与B的第j列的n个对应元素的乘积之和。
矩阵的转置就是把矩阵的第I行就j列的元素放在第j行第i列的位置上。在MATLAB中,对于实矩阵的转置用单引号“’”表示:C=A’。
4 图像文件操作
imread()函数从图像文件中读入图像数据, 格式:A=imread(文件名,‘图像文件格式’) 如:A=imread(“lena.bmp”,’bmp’)
A 为无符号8位整数(unit8)。如果文件为灰度函数,则A为一个二维数组,如果文件是一个真彩色RGB图像,则A是一个三维数组(m×n×3)。
imwrite()函数将图像写入图像文件
格式:imwrite(A,文件名,‘图像文件格式’)
1
如:imwrite(A,“lenabak.bmp”,‘bmp’)
imwrite函数将变量A中图像按‘图像文件格式’指定的保存格式写入文件名指定的文件中。如果A是一个无符号8位整数表示的灰度图像或真彩色图像,imwrite直接将数组A中值写入文件。如果A为双精度浮点数,imwrite首先使用uint8(round(255*A))自动将数组中的值变换为无符号8位整数,即将[0,1]范围内的浮点数变换为[0,255]范围内8位整数,然后写入文件。
5 图像显示
imshow()函数用于图像显示 格式:imshow(I,n) imshow(I,[low,high])
格式1,imshow函数可使用n个灰度级显示灰度图像I。如果缺省n,则使用256级灰度。
格式2,imshow函数可将I显示为灰度图像,灰度级范围为[low,high]。
6 MATLAB的M文件
MATLAB中的M文件实际上就是一个由一些MATLAB所允许的语句组成的批处理文件。它是一个ASCII码文本文件,所有文本编辑器都可对它进行编辑,但一般我们在MATLAB的集成环境中编辑修改并运行。
在MATLAB的命令主窗口中点击File->New->M-file,即可打开如图A-3所示的MATLAB编辑/调试窗口。根据用户需要键入MATLAB各种命令语句,即可完成系统M文件的输入。注意%后的内容为注释内容。
程序控制:
(1) for 循环语句 格式如下:
for t=表达式1:表达式2:表达式3 语句体 end
其中,表达式1的循环的初值,表达式2的值为步长,表达式3的值为循环的终值。如果表达式2省略,则默认步长为1。 例: for n=1:5 for m=1:n
r(n,m)= m*n end end
(2)while 循环语句 格式如下: while 表达式 语句体
2
end
当表达式的值为真时,执行语句体;当表达式的值为假时,终止该循环。
(3)if 条件判断语句 格式如下: if 逻辑表达式1 语句体1
elseif逻辑表达式2 语句体2
elseif逻辑表达式3 语句体3 ?? else 语句体 end
(4)switch 语句 switch 表达式 case 值1 语句体1 case 值2 语句体2 ?? otherwise 语句体 end
(5)子函数
每个函数文件可以包含多个函数。在函数文件的第一行定义的函数为主函数,当调用文件名时,调用主函数。在函数文件中,除第一行定义的函数外,其余的函数称为子函数。子函数只能被该文件里的其他函数和主函数调用。 function output = fact(n)
% FACT Calculate factorial of a given positive integer. output = 1; for i = 1:n,
output = output*i; end
(6)MATLAB中的运算符和特殊字符说明 符号 + - .* * ^ 符号用途说明 加 减 点乘 详细说明help arith 矩阵相乘 矩阵求幂 3
.^ \\ / .\\ ./ kron , ; 点幂 左除 详细说明help slash 右除 点左除 点右除 张量积 详细说明help kron 作分隔用,如把矩阵元素、向量参数、函数参数、几个表达式分隔开来 (a)写在一个表达式后面时,运算后命令窗口中不显示表达式的计算结果 (b)在创建矩阵的语句中指示一行元素的结束,例如m=[x y z;i j k] : (a)创建向量的表达式分隔符,如x=a:b:c (b)a(:,j)表示j列的所有行元素;a(i,:)表示i行的所有列元素;a(1:3,4)表示第四列的第1行至第3行元素 () [] {} % ' .' ... = == <,> & | ~ xor 圆括号 创建数组、向量、矩阵或字符串(字母型) 创建单元矩阵(cell array)或结构(struct) 注释符,特别当编写自定义函数文件时,紧跟function后的注释语句,在你使用help函数名时会显示出来。 (a)一般转置符 表示MATLAB表达式继续到下一行,增强代码可读性 赋值符号 等于关系运算符 小于,大于关系运算符 详细说明help relop 逻辑与 逻辑或 逻辑非 逻辑异或 定义字符串用 (b)向量或矩阵的共轭转置符 MATLAB所定义的特殊变量及其意义 变量名 help who ans eps pi inf NaN 意义 在线帮助命令, 如用help plot调用命令函数plot的帮助说明。 列出所有定义过的变量名称 最近的计算结果的变量名 MATLAB定义的正的极小值=2.2204e-16 π值3.14159265... ∞值,无限大 非数
特殊矩阵生成函数 函数命令 compan(a) 说明 生成伴随矩阵,a须为向量,即行数为1或列数为1的矩阵。 4
magic(a) pascal(a) pascal(a,k) 生成a阶魔方阵, 生成a阶Pascal矩阵(向右上的斜列方向为对应的二项式(x+y)i 项系数) 设置k=1时,按行方向由上到下,由左到右顺序为(x-y)i项系数 设置k=2时,按列方向由下到上,由右到左顺序为(x-y)i项系数 hadamard(a) hilb(a) invhilb(a) 生成哈达玛矩阵,其中a,a/12或a/20须为2的整数次幂。 H2=[1 1;1 -1] H2n=[Hn Hn;Hn -Hn] (Hn为n阶hadamard矩阵) 生成a阶希尔伯特矩阵,其中元素aij为1/(i+j-1)。 生成a阶希尔伯特矩阵的逆矩阵。 5
实验一 感知器算法实验
一、实验目的
掌握感知器算法聚类原理。
二、实验原理
感知器算法:
(1)已知两个训练模式集共N个模式,它们分别属于?1和?2类,权向量初始值为w(1);
(2)在用全部训练模式集进行第一轮迭代中,第k次训练步骤为:
如Xk??1 且wT(k)?Xk?0 且分类器对第k个模式Xk做错误分类,应校正权向量,使
w(k?1)?w(k)?C?Xk (C为一校正常数)
如Xk??2 且wT(k)?Xk?0 且分类器对第k个模式Xk做错误分类,应校正权向量,使
w(k?1)?w(k)?C?Xk
如不合以上情况,表明该模式样本在第k部中分类正确,权向量不变,即
w(k?1)?w(k)
(3)重复第2部,一直到某轮训练中所有的模式都有:
?wT(k)?Xk?0如Xk??1 ?T?w(k)?Xk?0如Xk??2
三、使用仪器、材料
计算机
四、实验步骤
1.实验步骤
利用MATLAB编程实现感知器分类算法,并对实验一中图1实验数据进行分类(左下角 8点属于第一类,右上角点属于第二类),求出判别函数,画出判别界面。
6
1)20个模式样本点,分别属于?1和?2类,取权向量初始值为w(1)=[0 0 0]’,校正系数C=1;并对?2类样本取增广向量后乘(-1);
2)在用全部训练模式集进行第一轮迭代中,第k次训练步骤为:如
wT(k)?Xk?0 ,则分类器对Xk做错误分类,应校正权向量,使W(k+1)=W(k)+Xk;否则权向量不变,即W(k+1)=W(k);
(3)重复第2步,直到某轮训练中所有的模式都有:WT(k)*Xk>0为止,算法收敛,记录数据。 2. 实验程序示例
%感知器算法
% 20个分类点集合
x=[0 0 1;1 0 1;0 1 1;1 1 1;2 1 1;1 2 1;2 2 1;3 2 1;-6 -6 -1;-7 -6 -1;-8 -6 -1;-6 -7 -1;-7 -7 -1;-8 -7 -1;-9 -7 -1;-7 -8 -1;-8 -8 -1;-9 -8 -1;-8 -9 -1;-9 -9 -1]; x=x';
sx=size(x);%=(2,20) w=[0 0 0]'; f=1; k=0;
while f==1 k=k+1 f=0;
for i=1:sx(2)
if w'*x(:,i)<=0 i
w=w+x(:,i) f=1;
%else h(i)=w'*x(:,i); end end end
五、实验过程原始记录
六、实验结果及分析
7
实验二 模式聚类算法实验
一、实验目的
掌握K-均值模式聚类原理。
二、实验原理
K-均值聚类法是先行选择K个样本点作为初始聚类中心,再按照最小距离原则使各个样本点向各个中心聚集,从而得到初始分类。然后判断初始分类是否合理(即为判断聚类前后聚类中心是否改变),如果不合理(即为聚类中心改变),就修改分类。以此反复进行修改聚类的迭代运算,知道合理为止。 K-均值聚类法步骤:
第一:选K个初始聚类中心:Z1(1),Z2(1),??,Zk(1);
第二:逐个将需要分类的模式样本{xi, i=1,2,3,??,N}按最小距离原则分配给K
个聚类中心中的某一个;
第三:计算各个聚类中心的新的向量值:
Zj(k?1)?1Njx?Sj(k)?X j=1,2,??,K
Nj为第j个聚类域Sj所包含样本个数;
第四:如果Zj(k?1)?Zj(k) ,j=1,2,??,K,则回到第二步,将模式样本逐个
重新分类,重复迭代计算。如果Zj(k?1)?Zj(k) ,j=1,2,??,K,算法收敛,计算完毕。
X2 10 9 8 7 6 5 4 3 2 1 X1 0 1 2 3 4 5 6 7 8 9 10 图1 8
三、使用仪器、材料
计算机
四、实验步骤
1.利用MATLAB编程实现K-均值聚类算法,并对图1中实验数据进行分类。 1)取K=2,选择两个初始聚类中心Z1=[0 0],Z2=[1 0];
2)逐个计算各个需要分类的模式样本{xi, i=1,2,3,??,N}到Z1、Z2的距离,按最小距离原则分配给Z1或Z2; 3)计算Z1、Z2新的向量值:
Zj(k?1)?1Njx?Sj(k)?X j=1,2,Nj为第j个聚类域Sj所包含样本个数;
4)如果Zj(k?1)?Zj(k) ,j=1,2,则回到第2步,将模式样本逐个重新分类,重复迭代计算。如果Zj(k?1)?Zj(k) ,j=1,2,算法收敛,计算完毕。
2.实验程序示例
%K-均值模式聚类程序 close all; clear; clc; %分类点集合
x=[0 0;1 0;0 1;1 1;2 1;1 2;2 2;3 2;6 6 ; 7 6;8 8;6 7;7 7;8 7;9 7;7 8;8 8;9 8;8 9;9 9]; x=x';
sx=size(x); %初始化两个聚类中心 z1=[0 0]'; z2=[1 0]'; %开始分类
while 1
s1=[];s2=[]; for i=1:sx(2)
%逐个将需要分类的模式样本{xi, i=1,2,3,??,N}按最小距离原则分配
给K个聚类中心中的某一个;
9
if (x(1,i)-z1(1,1))^2+(x(2,i)-z1(2,1))^2<
(x(1,i)-z2(1,1))^2+(x(2,i)-z2(2,1))^2
s1=[s1 x(:,i)]; else s2=[s2 x(:,i)]; end end
%计算各个聚类中心的新的向量值 sz1=size(s1);
z1n=(sum(s1')/sz1(2))'; sz2=size(s2);
z2n=(sum(s2')/sz2(2))'; %如果聚类中心不改变,算法结束,退出 if z1==z1n break; end
%如果聚类中心改变,给聚类中心赋新值,再次聚类 z1=z1n; z2=z2n; end
fprintf('中心点1'); z1n
fprintf('集合1'); s1
fprintf('中心点2'); z2n
fprintf('集合2'); s2
五、实验过程原始记录
六、实验结果及分析
10
实验三 图像识别实验
1.实验目的
综合掌握模式识别的原理,及了解识别过程设计方法。
2.实验内容
(a)
(b)
(c)
图2
(d)
图2中(a)、(b)为字符A的两种形式,(c)、(d)为字符B的两种形
式。利用MATLAB编程,提取图2实验图像特征,设计分类函数,对图像进行识别。
11
正在阅读:
模式识别讲义12-13
工程保障部服务规范与工作流程05-12
快乐的冬至作文600字07-06
电子商务系统(java)需求分析说明书05-03
企业认知实践报告模板(机械工程)08-20
伊犁州昭苏马场2011年党员干部现代远程教育自查报告12-24
高三英语一轮复习模式07-12
王熙凤的结局02-16
TEMS室内测试小结10-15
大国兴衰史资料09-29
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 讲义
- 识别
- 模式
- 任新闫浩组车次信息管理报告
- 高处作业吊篮施工方案
- 剥离强度试验报告
- 湖北省北大附中武汉为明实验学校八年级数学上册第十二章全等三角形专题复习无答案新版新人教版
- 线性规划应用案例
- 城东小学2011年上半年期末考试试卷
- 中考语文最新总复习资料—拼音专题练习
- 毕业论文 - 绿色贸易壁垒对我国农产品出口的影响研究
- 21 乡下人家四年级语文
- 高效初中英语阅读理解5
- 1978年开始的风景 山西历年高考状元近况
- 中央电大《开放教育指南测试》答案
- 2019年高考数学二轮复习解题思维提升专题1计数原理及随机变量分布列训练手册
- 高二学业水平测试生物试题模拟3
- 管理学心得体会最新
- 浅谈语文教学中学生想象力的培养
- 房屋建设工程合同的范本
- 财务管理的重要性
- LED全彩显示屏方案
- 精品--.建筑施工工艺大全普通混凝土现场拌制工艺标准( - - --)