模式识别第23章 聚类分析Word文档下载推荐.docx
《模式识别第23章 聚类分析Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《模式识别第23章 聚类分析Word文档下载推荐.docx(35页珍藏版)》请在冰豆网上搜索。
名义尺度:
指定性的指标,即特征度量时没有数量关系,也没有明显的次序关系,如黑色和白色的关系,男性和女性的关系等,都可将它们分别用“0”和“1”来表示。
超过2个状态时,可用多个数值表示。
2.2模式相似性的测度和聚类准则
2.2.1相似性测度
目的:
为了能将模式集划分成不同的类别,必须定义一种相似性的测度,来度量同一类样本间的类似性和不属于同一类样本间的差异性。
欧氏距离
设x和z为两个模式样本,其欧氏距离定义为:
D=||x-z||例:
x=(x1,x2),z=(z1,z2),则
显然,模式x和z之间的距离越小,它们越相似。
欧氏距离的概念和习惯上距离的概念是一致的。
马氏距离
设x是模式向量,m是均值向量,C为模式总体的协方差矩阵,则马氏距离的表达式:
特点:
排除了模式样本之间的相关性问题:
协方差矩阵在实际应用中难以计算。
一般化的明氏距离
模式样本向量xi和xj之间的明氏距离表示为:
其中xik和xjk分别表示xi和xj的第k各分量。
显然,当m=2时,明氏距离即为欧氏距离。
特例:
当m=1时,
,亦称为街坊距离。
角度相似性函数
表达式:
,它表示模式向量x和z之间夹角的余弦,也称为x的单位向量与z的单位向量之间的点积。
特点:
反映了几何上相似形的特征,对于坐标系的旋转、放大和缩小等变化是不变的。
当特征的取值仅为(0,1)两个值时的特例
当特征的取值仅为(0,1)两个值时,夹角余弦度量具有特别的含义,即当模式的第i个分量为1时,认为该模式具有第i个特征;
当模式的第i个分量为0时,认为该模式无此特征。
这时,xTz的值就等于x和z这两个向量共同具有的特征数目。
同时,
={x中具有的特征数目和z中具有的特征数目的几何平均}因此,在特征取值为0和1的二值情况下,S(x,z)等于x和z中具有的共同特征数目的相似性测度。
2.2.2聚类准则
有了模式的相似性测度,还需要一种基于数值的聚类准则,能将相似的模式样本分在同一类,相异的模式样本分在不同的类。
试探方法
凭直观感觉或经验,针对实际问题定义一种相似性测度的阈值,然后按最近邻规则指定某些模式样本属于某一个聚类类别。
例如对欧氏距离,它反映了样本间的近邻性,但将一个样本分到不同类别中的哪一个时,还必须规定一个距离测度的阈值作为聚类的判别准则。
聚类准则函数法
依据:
由于聚类是将样本进行分类以使类别间可分离性为最大,因此聚类准则应是反映类别间相似性或分离性的函数;
由于类别是由一个个样本组成的,因此一般来说类别的可分离性和样本的可分离性是直接相关的;
可以定义聚类准则函数为模式样本集{x}和模式类别{Sj,j=1,2,…,c}的函数,从而使聚类分析转化为寻找准则函数极值的最优化问题。
一种聚类准则函数J的定义
其中,c为聚类类别的数目,Sj为第j个类别的样本集合,
为属于Sj集合的样本均值向量,Nj为Sj中的样本数目。
这里,以均值向量mj为Sj中样本的代表。
J代表了属于c个聚类类别的全部模式样本与其相应类别模式均值之间的误差平方和。
对于不同的聚类形式,J值是不同的。
求取使J值达到最小的聚类形式。
2.3基于试探的聚类搜索算法
2.3.1按最近邻规则的简单试探法
算法给定N个待分类的模式样本{x1,x2,…,xN},要求按距离阈值T,将它们分类到聚类中心z1,z2,…。
第一步:
任取一样本xi作为一个聚类中心的初始值,例如令z1=x1,计算D21=||x2-z1||,若D21>
T,则确定一个新的聚类中心z2=x2,否则x2属于以z1为中心的聚类;
第二步:
假设已有聚类中心z1、z2,计算D31=||x3-z1||,D32=||x3-z2||,若D31>
T且D32>
T,则得一个新的聚类中心z3=x3,否则x3属于离z1和z2中的最近者·
·
如此重复下去,直至将N个模式样本分类完毕。
讨论这种方法的优点:
计算简单,若模式样本的集合分布的先验知识已知,则可通过选取正确的阈值和起始点,以及确定样本的选取次序等获得较好的聚类结果。
在实际中,对于高维模式样本很难获得准确的先验知识,因此只能选用不同的阈值和起始点来试探,所以这种方法在很大程度上依赖于以下因素:
第一个聚类中心的位置;
待分类模式样本的排列次序
;
距离阈值T的大小;
样本分布的几何性质。
2.3.2最大最小距离算法
基本思想:
以试探类间欧氏距离为最大作为预选出聚类中心的条件。
10个模式样本点:
{x1(00),x2(38),x3(22),x4(11),x5(53),x6(48),x7(63),x8(54),x9(64),x10(75)}
选任意一个模式样本作为第一个聚类中
心,如z1=x1;
选距离z1最远的样本作为第二个聚类中
心。
经计算,||x6-z1||最大,所以z2=x6
第三步:
逐个计算各模式样本{xi,i=1,2,…,N}与
{z1,z2}之间的距离,即Di1=||xi-z1||,Di2=||xi–z2||
并选出其中的最小距离min(Di1,Di2),i=1,2,…,N
第四步:
在所有模式样本的最小值中选出最大距
离,若该最大值达到||z1-z2||的一定比例以上,则相应
的样本点取为第三个聚类中心z3,即若max{min(Di1,Di2),i=1,2,…,N}>
θ||z1-z2||,则z3=xi
否则,若找不到适合要求的样本作为新的聚类中心,则找聚类中心的过程结束。
这里,θ可用试探法取一固定分数,如1/2。
在此例中,当i=7时,符合上述条件,故z3=x7
第五步:
若有z3存在,则计算max{min(Di1,Di2,Di3),i=1,2,…,N}。
若该值超过||z1-z2||的一定比例,则存在z4,否则找聚类中心的过程结束。
在此例中,无z4满足条件。
第六步:
将模式样本{xi,i=1,2,…,N}按最近距离分到最近的聚类中心:
z1=x1:
{x1,x3,x4}为第一类z2=x6:
{x2,x6}为第二类z3=x7:
{x5,x7,x8,x9,x10}为第三类,最后,还可在每一类中计算个样本的均值,得到更具代表性的聚类中心。
2.4系统聚类法
将模式样本按距离准则逐步分类,类别由多到少,直到获得合适的分类要求为止。
算法:
设初始模式样本共有N个,每个样本自成一类,即建立N类,
。
计算各类之间的距离(初始时即为各样本间的距离),得到一个N*N维的距离矩阵D(0)。
这里,标号(0)表示聚类开始运算前的状态。
假设前一步聚类运算中已求得距离矩阵D(n),n为逐次聚类合并的次数,则求D(n)中的最小元素。
如果它是Gi(n)和Gj(n)两类之间的距离,则将Gi(n)和Gj(n)两类合并为一类
,由此建立新的分类:
计算合并后新类别之间的距离,得D(n+1)。
计算
与其它没有发生合并的
之间的距离,可采用多种不同的距离计算准则进行计算。
返回第二步,重复计算及合并,直到得到满意的分类结果。
(如:
达到所需的聚类数目,或D(n)中的最小分量超过给定阈值D等。
)
距离准则函数
进行聚类合并的一个关键就是每次迭代中形成的聚类之间以及它们和样本之间距离的计算,采用不同的距离函数会得到不同的计算结果。
主要的距离计算准则:
聚类准则函数
1.最短距离法:
设H和K是两个聚类,则两类间的最短距离定义为:
其中,du,v表示H类中的样本xu和K类中的样本xv之间的距离,DH,K表示H类中的所有样本和K类中的所有样本之间的最小距离。
递推运算:
假若K类是由I和J两类合并而成,则
2.最长距离法:
设H和K是两个聚类,则两类间的最长距离定义为:
其中du,v的含义与上面相同。
3.中间距离法:
设K类是由I和J两类合并而成,则H和K类之间的距离为:
它介于最长距离和最短距离之间。
4.重心法:
假设I类中有nI个样本,J类中有nJ个样本,则I和J合并后共有nI+nJ个样本。
用nI/(nI+nJ)和nJ/(nI+nJ)代替中间距离法中的系数,得到重心法的类间距离计算公式:
5.类平均距离法:
若采用样本间所有距离的平均距离,则有:
递推运算公式:
[举例]设有6个五维模式样本如下,按最小距离准则进行聚类分析:
x1:
0,3,1,2,0;
x2:
1,3,0,1,0;
x3:
3,3,0,0,1;
x4:
1,1,0,2,0;
x5:
3,2,1,2,1;
x6:
4,1,1,1,0
作业
1.画出给定迭代次数为n的系统聚类法的算法流程框图
2.对如下5个6维模式样本,用最小聚类准则进行系统聚类分析:
0,1,3,1,3,4;
3,3,3,1,2,1;
1,0,0,0,1,1;
2,1,0,2,2,1;
0,0,1,0,1,0
2.5动态聚类法
首先选择若干个样本点作为聚类中心,再按某种聚类准则(通常采用最小距离准则)使样本点向各中心聚集,从而得到初始聚类;
然后判断初始分类是否合理,若不合理,则修改分类;
如此反复进行修改聚类的迭代算法,直至合理为止。
K-均值算法
思想:
基于使聚类性能指标最小化,所用的聚类准则函数是聚类集中每一个样本点到该类中心的距离平方之和,并使其最小化。
选K个初始聚类中心,z1
(1),z2
(1),…,zK
(1),其中括号内的序号为寻找聚类中心的迭代运算的次序号。
聚类中心的向量值可任意设定,例如可选开始的K个模式样本的向量值作为初始聚类中心。
逐个将需分类的模式样本{x}按最小距离准则分配给K个聚类中心中的某一个zj
(1)。
假设i=j时,
,则
,其中k为迭代运算的次序号,第一次迭代k=1,Sj表示第j个聚类,其聚类中心为zj。
计算各个聚类中心的新的向量值,zj(k+1),j=1,2,…,K。
求各聚类域中所包含样本的均值向量:
其中Nj为第j个聚类域Sj中所包含的样本个数。
以均值向量作为新的聚类中心,可使如下聚类准则函数最小:
,在这一步中要分别计算K个聚类中的样本均值向量,所以称之为K-均值算法。
若
,j=1,2,…,K,则返回第二步,将模式样本逐个重新分类,重复迭代运算;
,j=1,2,…,K,则算法收敛,计算结束。
讨论K-均值算法的结果受如下选择的影响:
所选聚类的数目;
聚类中心的初始分布;
模式样本的几何性质;
读入次序;
在实际应用中,需要试探不同的K值和选择不同的聚类中心的起始值。
如果模式样本可以形成若干个相距较远的孤立的区域分布,一般都能得到较好的收敛效果。
K-均值算法比较适合于分类数目已知的情况。
作业/练习
(选k=2,z1
(1)=x1,z2
(1)=x10,用K-均值算法进行聚类分析)
ISODATA算法(迭代自组织数据分析算法)
与K-均值算法的比较:
K-均值算法通常适合于分类数目已知的聚类,而ISODATA算法则更加灵活;
从算法角度看,ISODATA算法与K-均值算法相似,聚类中心都是通过样本均值的迭代运算来决定的;
ISODATA算法加入了一些试探步骤,并且可以结合成人机交互的结构,使其能利用中间结果所取得的经验更好地进行分类。
基本步骤和思路
(1)选择某些初始值。
可选不同的参数指标,也可在迭代过程中人为修改,以将N个模式样本按指标分配到各个聚类中心中去。
(2)计算各类中诸样本的距离指标函数。
(3)~(5)按给定的要求,将前一次获得的聚类集进行分裂和合并处理((4)为分裂处理,(5)为合并处理),从而获得新的聚类中心。
(6)重新进行迭代运算,计算各项指标,判断聚类结果是否符合要求。
经过多次迭代后,若结果收敛,则运算结束。
输入N个模式样本{xi,i=1,2,…,N}预选Nc个初始聚类中心
,它可以不等于所要求的聚类中心的数目,其初始位置可以从样本中任意选取。
预选:
K=预期的聚类中心数目;
θN=每一聚类域中最少的样本数目,若少于此数即不作为一个独立的聚类;
θS=一个聚类域中样本距离分布的标准差;
θc=两个聚类中心间的最小距离,若小于此数,两个聚类需进行合并;
L=在一次迭代运算中可以合并的聚类中心的最多对数;
I=迭代运算的次数。
将N个模式样本分给最近的聚类Sj,假若
,即||x-zj||的距离最小,则
如果Sj中的样本数目Sj<
θN,则取消该样本子集,此时Nc减去1。
(以上各步对应基本步骤
(1))
修正各聚类中心
计算各聚类域Sj中模式样本与各聚类中心间的平均距离
计算全部模式样本和其对应聚类中心的总平均距离
(以上各步对应基本步骤
(2))
第七步:
判别分裂、合并及迭代运算1.若迭代运算次数已达到I次,即最后一次迭代,则置θc=0,转至第十一步。
2.若
,即聚类中心的数目小于或等于规定值的一半,则转至第八步,对已有聚类进行分裂处理。
3.若迭代运算的次数是偶数次,或
,不进行分裂处理,转至第十一步;
否则(即既不是偶数次迭代,又不满足
),转至第八步,进行分裂处理。
(以上对应基本步骤(3))
第八步:
计算每个聚类中样本距离的标准差向量
其中向量的各个分量为
式中,i=1,2,…,n为样本特征向量的维数,j=1,2,…,Nc为聚类数,Nj为Sj中的样本个数。
第九步:
求每一标准差向量{σj,j=1,2,…,Nc}中的最大分量,以{σjmax,j=1,2,…,Nc}代表。
第十步:
在任一最大分量集{σjmax,j=1,2,…,Nc}中,若有σjmax>
θS,同时又满足如下两个条件之一:
1.
和Nj>
2(θN+1),即Sj中样本总数超过规定值一倍以上,2.
,则将zj分裂为两个新的聚类中心
和
,且Nc加1。
中对应于σjmax的分量加上kσjmax,其中
中对应于σjmax的分量减去kσjmax。
如果本步骤完成了分裂运算,则转至第二步,否则继续。
(以上对应基本步骤(4)进行分裂处理)
第十一步:
计算全部聚类中心的距离Dij=||zi-zj||,i=1,2,…,Nc-1,j=i+1,…,Nc。
第十二步:
比较Dij与θc的值,将Dij<
θc的值按最小距离次序递增排列,即
式中,
第十三步:
将距离为
的两个聚类中心
合并,得新的中心为:
,k=1,2,…,L式中,被合并的两个聚类中心向量分别以其聚类域内的样本数加权,使
为真正的平均向量。
(以上对应基本步骤(5)进行合并处理)
第十四步:
如果是最后一次迭代运算(即第I次),则算法结束;
否则,若需要操作者改变输入参数,转至第一步;
若输入参数不变,转至第二步。
在本步运算中,迭代运算的次数每次应加1。
[算法结束]
2.6聚类结果的评价
迅速评价聚类结果,在上述迭代运算中是很重要的,特别是具有高维特征向量的模式,不能直接看清聚类效果,因此,可考虑用以下几个指标来评价聚类效果:
聚类中心之间的距离;
距离值大,通常可考虑分为不同类;
聚类域中的样本数目;
样本数目少且聚类中心距离远,可考虑是否为噪声;
聚类域内样本的距离方差;
方差过大的样本可考虑是否属于这一类
讨论:
模式聚类目前还没有一种通用的放之四海而皆准的准则,往往需要根据实际应用来选择合适的方法。
1.画出ISODATA算法的流程框图
2.试用ISODATA算法对如下模式分布进行聚类分析:
{x1(0,0),x2(3,8),x3(2,2),x4(1,1),x5(5,3),x6(4,8),x7(6,3),x8(5,4),x9(6,4),x10(7,5)}
计算机编程
编写ISODATA聚类算法程序,对如下数据进行聚类分析:
{x1(0,0),x2(3,8),x3(2,2),x4(1,1),x5(5,3),x6(4,8),x7(6,3),x8(5,4),x9(6,4),x10(7,5)}
第三章判别函数
3.1线性判别函数
3.1.1用判别函数分类的概念
模式识别系统的主要作用:
判别各个模式所属的类别;
对一个两类问题的判别,就是将模式x划分成ω1和ω2两类。
●描述:
两类问题的判别函数(以二维模式样本为例)
若x是二维模式样本x=(x1x2)T,用x1和x2作为坐标分量,得到模式的平面图:
这时,若这些分属于ω1和ω2两类的模式可用一个直
线方程d(x)=0来划分d(x)=w1x1+w2x2+w3=0其中
x1、x2为坐标变量,w1、w2、w3为参数方程,则将一
个不知类别的模式代入d(x),有若d(x)>
0,
则
若d(x)<
0,则
此时,
d(x)=0称为判别函数。
用判别函数进行模式分类依赖的两个因素
(1)判别函数的几何性质:
线性的和非线性的函数。
线性的是一条直线;
非线性的可以是曲线、折线等;
线性判别函数建立起来比较简单(实际应用较多);
非线性判别函数建立起来比较复杂。
(2)判别函数的系数:
判别函数的形式确定后,主要就是确定判别函数的系数问题。
只要被研究的模式是可分的,就能用给定的模式样本集来确定判别函数的系数。
3.1.2线性判别函数
n维线性判别函数的一般形式:
,其中w0=(w1,w2,…,wn)T称为权向量(或参数向量),x=(x1,x2,…,xn)T。
d(x)也可表示为:
d(x)=wTx,其中,x=(x1,x2,…,xn,1)T称为增广模式向量,w=(w1,w2,…,wn+1)T称为增广权向量。
分类问题
两类情况:
判别函数d(x):
多类情况:
设模式可分成ω1,ω2,…,ωM共M类,则有三种划分方法
多类情况1
用线性判别函数将属于ωi类的模式与不属于ωi类的模式分开,其判别函数为:
i=1,2,…,M,这种情况称为
两分法,即把
M类多类问题分成M个两类问题,因此共有M个判别函数,对应的判别函数的权向量为wi,i=1,2,…,M。
图例:
对一个三类情况,每一类模式可用一个简单的直线判别界面将它与其它类模式分开。
例如对
的模式,
应同时满足:
d1(x)>
0,d2(x)<
0,d3(x)<
0,不
确定区域:
若对某一模式区域,di(x)>
0的条
件超过一个,或全部di(x)<
0,i=1,2,…,M,
则分类失败,这种区域称为不确定区域(IR)。
多类情况2
采用每对划分,即ωi/ωj两分法,
此时一个判别界面只能分开两种类
别,但不能把它与其余所有的界面
分开。
其判别函数为:
若dij(x)>
0,
重要
性质:
dij=-dji图例:
对一个三类情况,
d12(x)=0仅能分开ω1和ω2类,不能分开ω1
和ω3类。
要分开M类模式,共需M(M-1)/2
个判别函数。
不确定区域:
若所有dij(x),
找不到
,dij(x)>
0的情况。
多类情况3
这是没有不确定区域的ωi/ωj两
分法。
假若多类情况2中的dij可分
解成:
dij(x)=di(x)-dj(x)=
(wi–wj)Tx,则dij(x)>
0相当于
di(x)>
dj(x),
,这时不存在不
确定区域。
此时,对M类情况应有
M个判别函数:
即di(x)>
,i,j=1,2,…,M,则
,也可写成,若di(x)=max{dk(x),k=1,2,…,M},则
该分类的特点是把M类情况分成M-1
个两类问题。
小结:
线性可分:
模式分类若可用任一个线性函数来划分,则这些模式就称为线性可分的,否则就是非线性可分的。
一旦线性函数的系数wk被确定,这些函数就可用作模式分类的基础。
多类情况1和多类情况2的比较
对于M类模式的分类,多类情况1需要M个判别函数,而多类情况2需要M*(M-1)/2个判别函数,当M较大时,后者需要更多的判别式(这是多类情况2的一个缺点)。
采用多类情况1时,每一个判别函数都要把一种类别的模式与其余M-1种类别的模式分开,而不是将一种类别的模式仅于另一种类别的模式分开。
由于一种模式的分布要比M-1种模式的分布更为聚集,因此多类情况2对模式是线性可分的可能性比多类情况1更大一些(这是多类情况2的一个优点)。
作业
(1)
在一个10类的模式识别问题中,有3类单独满足多
类情况1,其余的类别满足多类情况2。
问该模式识
别问题所需判别函数的最少数目是多少?
作业
(2)
一个三类问题,其判别函数如下:
d1(x)=-x1,
d2(x)=x1+x2-1,d3