第二章 距离分类器和聚类分析2.1 距离分类器一、模式的距离度量通过特征抽取,我们以特征空间中的一个点来表示输入的模式,属于同一个类别的样本所对应的点在模式空间中聚集在一定的区域,而其它类别的样本点则聚集在其它区域,则就启发我们利用点与点之间距离远近作为设计分类器的基准。
这种思路就是我们这一章所要介绍的距离分类器的基础。
下面先看一个简单的距离分类器的例子。
例2.1作为度量两点之间相似性的距离,欧式距离只是其中的一种,当类别的样本分布情况不同时,应该采用不同的距离定义来度量。
设,X Y 为空间中的两个点,两点之间的距离(),d X Y ,更一般的称为是范数X Y -,一个矢量自身的范数X 为矢量的长度。
作为距离函数应该满足下述三个条件: a) 对称性:()(),,d d =X Y Y X ;b) 非负性:(),0d ≥X Y ,(),0d =X Y 当且仅当=X Y ; c) 三角不等式:()()(),,,d d d ≤+X Y X Z Y Z 。
满足上述条件的距离函数很多,下面介绍几种常用的距离定义: 设()12,,,Tn x x x =X ,()12,,,Tn y y y =Y 为n 维空间中的两点1、 欧几里德距离:(Eucidean Distance)()()121,ni i i d x y =⎡⎤=-⎢⎥⎣⎦∑X Y2、 街市距离:(Manhattan Distance)()1,ni i i d x y ==-∑X Y3、 明氏距离:(Minkowski Distance)()11,mnm i i i d x y =⎡⎤=-⎢⎥⎣⎦∑X Y当2m =时为欧氏距离,当1m =时为街市距离。
4、 角度相似函数:(Angle Distance)(),T d ⋅=X YX Y X Y1nTi i i x y =⋅=∑X Y 为矢量X 和Y 之间的内积,(),d X Y 为矢量X 与Y 之间夹角的余弦。
距离函数的定义形式还有很多,我们应该根据具体问题来选择一种适合的函数定义,使其能够真正反映模式之间的相似性。
定义了范数的线性空间称为赋范线性空间。
二、单个标准样本的距离分类器设有M 个类别,12,,,M ΩΩΩ,每个类别有一个标准样本12M T ,T ,,T ,现有一待识样本X ,则X 应该属于与其距离最小的标准样本代表的那一类,即:如果()0a r g m i n ,i ii d =X T ,则判别0i ∈ΩX 。
对于两类问题来说,就相当于用一个垂直平分两个标准样本点的连线的超平面将两类分开。
三、多个标准样本的距离分类器如果每个类别只有一个训练样本,则只能以这个训练样本作为标准样本来设计距离分类器。
然而一个样本很难反映出类别的总体分布,因此在实际设计中,一般都要尽可能多的搜集各个类别的样本,样本量的增加能够跟好的反映出类别的中体分布情况,这样带来的问题就是如何利用多个样本来设计距离分类器?下面介绍几种常用的方法。
1. 平均样本法此方法中,我们还希望以一个标准样本来代表每个类别,这样就可以采用单个标准样本距离分类器的准则来进行分类。
下面的问题就是如何来确定这个标准样本,这实际上就是如何利用训练样本集来进行学习的问题。
在模式识别方法中,我们将经常遇到最优化问题,下面我们就以这个简单问题来介绍一下最优化方法的一些概念。
设有M 个类别,12,,,M ΩΩΩ,第m 类有训练样本集()()(){}12,,,mm m m K X X X ,我们希望求得一个标准样本()m T,训练样本()()()()()12,,,m m m m ii i iN x x x =X 。
我们要寻找的标准样本()m T 实际上应该是一个距离训练样本集中所有样本的平均距离最小的一点,则一点最能够代表这个训练样本集。
例如,如果类别样本的分布为一个球形的话,这一点应该是球的中心。
这一条件可以用下面的函数表示:()()()()()11m K m m mi i m f d K ==-∑T X T ,此函数称为目标函数。
我们的目标就是要寻找到一个()m T,使得()()m f T最小。
以欧氏距离为例,()()()()()122111mK Nm m m ij ji j mf x t K ==⎛⎫=- ⎪⎝⎭∑∑T ,下面对()m T 的各维元素取偏导数:()()()()()()()()()()111112102mm m m K K K m m m m ijjj ij m i i i mm kf xt t x K K t ===∂⎛⎫=-⨯-=-= ⎪∂⎝⎭∑∑∑T则:()()11m K m m jij i m t x K ==∑。
以矢量形式表示:()()11m K m m i i m K ==∑T X 。
平均样本法的特点是:1、算法简单;2、每个类别只需存储一个平均样本,存储量小;3、识别时只需计算M 次距离函数,计算量小;4、对类别样本的分布描述能力不强,效果不一定很好。
在单个样本的距离分类器中,实际上我们是定义了一个未知类别模式到某一类别的距离,这个距离就是待识模式与类别标准样本之间的距离:()(),,i i d d Ω=X X T ,然后以模式与类别的距离作为分类的判据。
实际上在多个标准样本的问题中,我们还可以定义其它形式的模式与类别的距离。
2. 平均距离法已知类别i Ω的训练样本集为:()()(){}12,,,ii i i K T T T ,定义待识模式X 与类别i Ω的距离: ()()()11,,iK i i jj id d K =Ω=∑X X T然后还是以与待识模式最近的类别作为识别结果。
在平均距离法中,需要存储所有的训练样本,而且在识别时还要计算待识模式与每个训练样本的距离,所以计算量比较大。
3. 最近邻法最近邻法以与待识样本距离最近的标准样本点的类别作为分类类别。
实际上相当于定义待识模式与类别i Ω的距离:()()()1,min ,iii j j K d d ≤≤Ω=X X T最近邻法也要存储和计算所有的训练样本,同时与平均距离法相比容易受到噪声的干扰,当与X 最近点为噪声时,就会导致误识。
最近邻法的改进:平均样本法用一点代表一个类别,过分集中;最近邻法以类内的每一点代表类别,过于分散,在通常情况下可以采用折衷的办法,首先将每个类别的训练样本划分为几个子集,在各个子集中计算平均样本,每一个类别以几个子集的平均样本代表,采用最近邻法分类。
(举例:红苹果,绿苹果),这样做的好处是,一方面可以减少存储量和计算量,同时还可以减小噪声的干扰,这是在实际系统使用比较多的方法。
4. K -近邻法K -近邻法是另外一种减小噪声干扰的改进方法,它不是根据与未知样本X 最近的一个样本的类别来分类,而是根据X 最近邻的K 各样本点中多数点的类别来分类。
方法如下:a) 计算X 与所有训练样本的距离;b) 对所有的()(),i jd X T 从小到大排序;c) 统计前K 个中各类训练样本的个数i N ,1,2,,i M =,必有1Mi i N K ==∑;d) 取01arg max i i Mi N ≤≤=作为X 的类别。
K -近邻法中,K 值得选择非常重要,太大则就会变成那一类的训练样本说多就分类到哪一类,太少则容易受到噪声的影响,当1K =时,就变为了最近邻法。
2.2 聚类分析在某些问题中,我们已知的只是一个训练样本集,而不知道样本集中每个样本的类别标号,这就需要我们首先将这些样本分成若干类,然后再用分好类的样本训练出相应的分类器。
将未知类别的一组样本分成若干类的过程称为是聚类分析,也称为是无监督学习或无教师学习。
聚类分析的思路非常直观,也是根据各个带分类模式特征的相似程度来进行分类,将在特征空间中聚集在一起的样本点划分为一类。
聚类分析的方法可以分为三类:简单聚类法、系统聚类法和动态聚类法。
一、简单聚类法(试探法) 1、 最近邻规则的简单试探法设N 个待分类的模式{}12,,,N X X X ,已知一个阈值T (每个样本到其聚类中心的最大距离),分类到12,,ΩΩ,类别中心分别为12,,Z Z 。
第一步:取任意的样本i X 作为第一个聚类中心的初始值,例如:111=∈ΩZ X ;计算:2121D =-X Z ,若,21D T >,则增加一个新类别2Ω,取其中心为22=Z X ; 否则,将2X 归入以1Z 为中心的1Ω类,重新计算1212+=X X Z 。
第二步:设已有类别12,ΩΩ,其中心为12,Z Z ,计算:3131D =-X Z ,3232D =-X Z ;若,31D T >且32D T >,则增加新类别3Ω,令33=Z X ;否则,3X 属于12,Z Z 最近的类别,即03i ∈ΩX ,0312arg min i i i D ≤≤=,并重新计算0i 类的中心。
第k 步:设已有M 个类别12,,,M ΩΩΩ,其中心为12,,M Z Z Z ,计算:11k k D =-X Z ,…,kM k M D =-X Z ; 若,ki D T >,则增加新类别1M +Ω,其中心1M k +=Z X ; 否则,k X 属于12,,M Z Z Z 最近的一类,0k i ∈ΩX ,01arg min ki i Mi D ≤≤=;重新计算第0i 类的聚类中心0i Z 。
例2.2-1这种方法的好处是计算比较简单,缺点是对初始的第一个聚类中心的选择依赖性比较强,同时聚类效果还要受到阈值T 的影响。
(图3.3-2,pp64)一般在实际问题中需要对不同的初始聚类中心和不同的阈值进行试探,直到得到一个满意的聚类结果为止。
2、 最大最小距离算法最大最小距离法的思路是:在样本集中以最大距离原则选取新的聚类中心,以最小距离原则进行模式归类。
已知N 个待分类的模式{}12,,,N X X X ,阈值比例系数θ,1) 任选样本作为第一个聚类中心1Z ;2) 从样本集中选择距离1Z 最远的样本i X 作为第二个聚类中心,2i =Z X ,设定距离阈值:12T θ=-Z Z ;3) 计算未被作为聚类中心的各样本与12,Z Z 之间的距离,以其中的最小值作为该样本的距离:,1,2ij i j d j =-=X Z ,取[]12min ,,1,,i i i d d d i N ==;4) 若:1max l i i Nd d T ≤≤=>,则相应的样本l X 作为第三个聚类中心,3l =Z X ,然后转5);否则,转6);5) 设存在k 个聚类中心,计算未被作为聚类中心的各样本到各聚类中心的最小距离:[]1min ,,i i ik d d d =,然后寻找其中的最大值:1max l i i Nd d ≤≤=,如果l d T >,则1k l +=Z X ,转5);否则,转6); 6) 按照最小距离原则,将所有样本分到个类别中。