知识探勘的利器-丛集算法 (2)
本文作者:admin
点击:
2008-03-10 00:00
前言:
以下我们将为各位介绍一下这些方法之间的特性与应用情形。
一、距离与相似度的量测
相似度的测量对于分类对象具有很重要的意义(例如:对于对象辨识、对象搜寻…等),因为这是计算机视觉里面的辨识工作,也是人工视觉智能发展的重要一环。但要讨论相似度之前,我们必须先了解要测量的相似标准为何以及要如何测量。而要回答这些问题,我们必须对何谓“对象(objects)”有更深刻的定义认识。这的确是一件不容易的事情,因为数据对象的定义会因为运作环境及应用种类之差异而略有不同。
在此,我们暂时就将数据对象理解为“一个拥有一连串特征(features)的一个集合体”之概念,并通常以多维向量(multidimensional vectors)作为该对象之表现方式。对于要描述一个数据对象之特征,可以采定性方式或定量方式,或以连续变量概念或是二元变量概念等为之。但不管用哪一种方式定义特征,其主要的功能都在于提供一个可对应的测量机制。站在测量的观点上,我们常以距离作为相异度(dissimilarity)的一种同义词。
换言之,一个数据集X的相异度(即距离差异)定义应满足两个基本条件,一个是对称性(symmetry),另一个正数性(positivity)。即是D(xi,xj)= D(xj,xi)与对所有xi、xj而言,满足D(xi,xj)≥0性质。且如果条件满足:
1.三角不等式(triangle inequality)
对所有xi、xj及xk而言,满足D(xi,xk)+D(xk,xj)≥ D(xi,xj)
2.反射性(reflexivity)
唯且若唯xi=xj,D(xi,xj)=0。
其相似度(similarity)亦要满足以下条件:
1.对称性(symmetry)
S(xi,xj)=S(xj,xi)
2.正数性(positivity)
对所有xi、xj而言,满足0≤S(xi,xj)≤1。
并条件要满足:
3.三角不等式(triangle inequality)
对所有xi、xj及xk而言,满足[S(xi,xj)+S(xj,xk)] S(xi,xk) ≥ S(xi,xj)S(xj,xk)
4.反射性(reflexivity)
唯且若唯xi=xj,S(xi,xj)=1。
对一个有N个输入模式(input pattern)之数据集而言,我们可以定义一个N×N的对称矩阵(我们一般称为“邻近矩阵(proximity matrix)”),并以第(i,j)个元素代表所要表示的第i个及第j个模式(i,j=1,…,N)的表现相似度或是相异度。典型的距离函数(distance functions)通常被用以测量连续特征,对定性(qualitative)变量而言,其“相似度的测量”通常具有更重要的角色。测量方法的选择与所要解决的问题有关,例如:对一个具有二元特征(binary features)的数据而言,其常先使用相似度之测量;有了相似度之数据后,相异度之测量便是全部成分减去相似度的部分之后所得之剩余部分(即是Dij=1-Sij)。为了方便说明,我们以两个二元下标来表示一个对象特征,并以f00与f11来表示同时在此二物中所“同时欠缺”或“同时表现”之特征(换句话说,没有同时欠缺或表现的特征即用f10或f01表示)。让我们考虑两个数据点xi与xj,其常见的相似度测量型态使以公示来表示。但在此要注意的是μ系数的数值代表不同意义,其中当μ=1时,其表示μ是一种简单的matching系数;当μ=2时,则表示此为Roger及Tanimoto测量;当μ=1/2时,则表示此为Gower及Legendre测量。这些测量是直接计算两物体间的吻合程度,未吻合的部分则会基于他们的相似情况再另做加权处理。即是以来作为表示依据,在此系数δ和μ一样,依其数值不同而有不同意义。当δ=1时,其表示为Jaccard系数;若δ=2,则表示此为Soka及Sneath测量;若δ=1/2,则表示此为Gower及Legendre测量。这些测量之焦点主要着重在“共有特征(co-occurrence features)”,并于共缺效应(co-absence effect)中予以忽略。关于这些典型的连续相似度或相异度特征测量方式可参考R. Xu等人(2005)的报告,兹整理说明如表1。
对于其它细微特征而言,其状态可能不只这两种,为使处理单一化,一个简单的方法便是将他们对映到一个新的二元特征空间里来处理。或者亦可利用配对规则(matching criterion)方法来处理,例如其中如果i与j不吻合,则;反之。一般而言,对那些含有混杂变量(mixed variables)组成的对象,我们亦可以将这些变量对映到(0,1)区间,并利用类似欧式度量(Euclidean metric)的方法来加以测量。或者我们也可以将他们转换成二元变量,并利用二元相似度函数(binary similarity functions)来加以处理。不过以上这些方法虽然可以降低问题所涉及之维度,但其同时也会造成信息之遗失,此乃其最大缺点。其它更强力的方法可以参照Gower的研究,其使用的形式为其中表示一个介于0~1之间的系数;而指的是第ι个特征,其它关于Gower的方法细节在此就不深做论述。
二、阶层丛集法
阶层丛集法(hierarchical clustering,HC)可以利用邻近矩阵来将数据组织成阶层式架构的结构,并利用树形图(dendrogram)或二元树(binary tree)来描述其所得结果。依据分类的点位置,可以区分为传统与非传统图示,如图4。
在这种树形图里面,其根节点(root node)往往表示整个资料集,而每一个叶子节点(leaf node)则可视为一个数据对象。至于另一种中介节点(intermediate node),则可用来描述那些逼近对象的所有广度。至于树形图之高度,通常代表了每个成对对象或是丛集之间,或是一个对象与一个丛集之间的距离。最后的丛集结果,可以经由切开不同层级之树形图结构来取得。这种表示方法提供了我们非常多样的数据描述方式,并将潜在或丛集化结构之数据加以可视化。尤其是当数据中真存有阶层关系时,这种可视化效果与生物界不同物种(species)之间的演算搜索情形很像。HC采用的主要分类方法有两种,一种是“同化方法(agglomerative)”,另一种为“分化方法(division)”。同化法乃以N个丛集作为起点,每个丛集都至少明确的涵盖一个对象。在物件分类完毕后,同一群组内之对象会在经由并合(merge)运作来加以合并。一个同化法的演算架构如下:
计算邻近矩阵(proximity matrix)
让每一个资料点都成为一个丛集
Repeat
结合两个最接近的丛集
更新邻近矩阵内容
Until 直到只剩下一个单一丛集出现
由运算算法中我们可以观察到一般的同化丛集法过程中,其主要涵盖有以下4个基本步骤:
1、起始K个单体丛集,并计算此K个单体丛集之邻近矩阵。
2、搜寻最小距离,即,其中D(*,*)为邻近矩阵内之距离函数,并将丛集Ci与丛集Cj结合成一个新的丛集。
3、经由计算新的丛集与其它丛集间之距离,来更新邻近矩阵。
4、重复上述步骤2~3,一直到所有对象都已在同一丛集内。
依据两个丛集(clusters)间距离之不同定义,目前存有许多同化丛集算法。其中包含P. Sneath所提出之最简易且广受欢迎之单一连结(single linkage)方法以及T. Sorensen提议之完全连结(complete linkage)技术。对单一连结方法而言,两个丛集间的距离测量,是由不同丛集内两个最靠近之对象(即是最近对象)所决定。也因此此类方法又称为“最邻近法(nearest neighbor methods)”。相反的,完全连结技术则是使用不同丛集内最远对象来作为丛集间之距离测量。以上这两种方法都可以藉由Lance及Willams在1967年所提议之公式加以一般化,即是,其中Cnew=(Ci,Cj)而αi、αj、β与γ都是策略依存性参考系数,其值的决定系根据我们采用的方法不同而异。在此公式中,它描述了一个丛集Cl与新丛集Cnew之间的距离量测方式。当而时,上述公式即成为此即呼应了单一连结方法,而当时,上述公式即成为此即反应了完全连结方法。除了单一连结与完全连结方法之外,其它较为复杂一点的同化丛集法还包含群组平均连结(group average linkage)、中位数连结(median linkage)、瓦氏连结(Ward’s linkage)、以及质心连结(centroid linkage)…等方法。这些方法如果经由适当的的公式参数选择,亦可藉由Lance及Willams公式予以建构。
与同化法相反的方式便是分化法,这种方法的程序与同化法恰好相反。在丛集化之起始点,只有一个数据集代表整个数据的存在。换句话说,刚开始时,每个数据对象都同属一个丛集。但是经由分化程序作用下,数据集中的数据对象会依据其彼此间之差异不断被分割,直到所有的丛集都是单体丛集(singleton cluster)为止。故,对一个有m个对象之丛集而言,其就有可能存在2m-1-1个分割情形,因此这种分化方法在运算上非常耗时间以及系统运算资源,此也导致在实务上较少看见分化式的丛集算法被实作出来。一个利用最小展开树(minimum spanning tree,MST)的分化法演算架构如下:
计算最小展开树
Repeat
打断与最大距离(即具有最小相似性)对应的连结来创造新的丛集
Until 只剩单体丛集(singleton cluster)
在本文的讨论里面,这种分化式的丛集法我们就不多做论述,读者若有兴趣自可参照E. Everitt、S. Landan及M. Leese三氏于2001年合着之《Cluster Analysis》一书,或是1990年时L. Kaufrnan及P. Russeeuw之相关著作。在Kaufrnan及Russeeuw的论述中,其介绍了MONA及DIANA二种分化丛集算法的运作方法而颇具参考价值。而丛集间之距离之计算有两种常见方法,分别为“图形法”与“质心法”(或称几何法)。前者是一种将每个丛集内之数据点都加以考虑而决定丛集之间的位置计算者;后者则自丛集中选出一个代表点作为丛集之代表而用以决定距离者。在单一连结、完全连结与平均连结方法里,其计算与丛集间之距离时,乃将丛集内所有点都会加以考虑进去。职是之故,此三种方法亦称为“图形法(graph methods)”。而其它非属图形法的丛集法,一般则称为“质心法(centroid)”或“几何法(geometric methods)”。因为这些几何法采用的运算原理,并不将所有丛集内的对象数据(丛集点)均加以考虑进去,其乃依据几何中心(通常为质心位置)来作为这些丛集的代表点,并加以计算侦测它们之间的距离。在Everitt等人合着之《Cluster Analysis》一书里面,对此种方法亦有详尽介绍,各位读者可资参考。其它更多有关丛集间的测量方法(例如:平均式(mean-based)的测量法)可以参阅R. Yager(2000)的讨论,在Yager的论述中其并进一步探讨了这些方法在阶层式丛集化处理上所具备的可能控制效果。
对一个典型的HC算法来说,其常见之使用规则通常欠缺强固性(robustness),并且这些方法对于一些噪声(noise)或杂体(outlier)非常敏感。一旦一个对象被指定给一个丛集之后,该对象就不再被重新考虑其分配之合适性,此意味着HC算法对先前的分类错误缺乏修复能力。对大多数HC算法而言,其运算复杂度至少为,其中N表示点的数目。换句话说,如果邻近矩阵一开始就可以使用,而不必再更新或搜寻,那复杂度就会是;相反的,如果运算过程中,邻近矩阵依旧是需要不断被更新及计算或搜寻的话,那运算复杂度将会是。不过实务上也发现,在某些同化过程里面,其运算复杂度会被降到的情况。这些运算复杂度对大型数据集的应用而言,存有很高的成本限制。HC的其它缺点还涵盖了倾向形成球面(spherical)与逆转(reversal)丛集形状,并导致一般正常的阶层结构出现失真的情况。
最近这几年因为数据探勘(data mining)技术的发展需要操作大量数据的缘故,以及其它领域之刺激,使的新的HC算法纷纷被提出讨论。特别需要注意的是,这些新方法在丛集化的效能上往往有着非常多的改良。但是其亦有缺点,例如:几何式的HC限制,因为其计算距离方式采取丛集质心(centroid)所在的点为代表点,因此这种方法并无法识别任何丛集的形状。不过在各种HC方法里面,一些典型的例子包含G. Karypis等人提议之Chameleon、T. Zang等人的BIRTH方法或是S. Guha等人提议之CURE方法…等等,仍可提供我们对此类算法某方面之洞察力,此3种方法扼要说明如下:
1.Chameleon方法
丛集化方法就是在一群数据中找寻其适当的分类型别一种发觉过程(discovery process),使这些型别之分类在同类中具有最大相似度;在异类中,具有最小相似度。现存的丛集算法,例如:CLARANS、DBSCAN、K-means、PAM、CURE或ROCK都是被设计用来找寻适合某些已被设计好的静态模块数据。因此一旦这些被选定的静态模块参数设定不当,将导致错误的丛集分类产生并使丛集方法的效能低落,或是许出的丛集不符合所预定期望之特征。其它相似方法更可能因为数据集的多样性、形状不同以及密度、大小等方面之差异,而导致丛集化的效能严重低落。故,Karypis等人所提议之Chameleon方法乃为解决上述问题而产生。Chameleon方法的特征在于其使用的模型可以是动态模块(dynamic model),以避免静态模块因参数的选用不当所导致的问题。在丛集化的过程里,只有那些具有次丛集间之连结性(inter-connectivity)且逼近度够高的丛集才会被融合成一个新丛集。在其融合过程中使用的是一种动态模块之方法,而其可侦测之丛集可以涵盖不同形状、密度与大小。
Karypis等人的研究领域相当广泛,主要在生医与遗传工程领域,其所提议之技术亦有多项已被用在该相关领域。因为这种Chameleon算法使用的原理乃是基于K个最近邻图形原理(K-nearest-neighbor),因此只有在该两个顶点均不在K个相关的最近邻点之内,才会被评估有边界之存在。更精确的说,Chameleon在处理连结图形(connectivity graph)时,会将其分成一个有最小边界切割(minimal edge cut)而成之次丛集集合(subcluster),而为达有效的相似度计算,每个次图形应该含有足够多的点。藉由次丛集间的相关性与逼近程度之评估,其让Chameleon有能力去探索潜在的丛集特征。目前Chameleon技术之一部分算法被实作在CLUTO软件中,有兴趣的读者可前往其官方网站下载使用(http://glaros.dtc.umn.edu/gkhome/views/cluto)。
2.BIRTH方法
BIRTH的主要发展动机可以被区分为两个方面,一个是处理大量数据的能力,另一个是对杂体(outlier)干扰的抗性提升(也就是对杂体的强固性),而其所能达到的运算复杂度为O(N)。为了达到这些目标,其设计了一种新的丛集化特征树(clustering feature tree,CFT),以用来储存原始数据的摘要。CFT是一种高度平衡之树状结构,每一个内部顶点(internal vertex)均由定义为[CFi, Childi]的成员所组成。而CFi则表示丛集i,其定义为,其中Ki表示该丛集中数据对象之数目,而LS则表示数据对象之线性总和,SS则表示数据对象之平方和。在此Childi表示的是指向第i个子节点(child node)的指标(pointer),其中i=1,…,Y,在此Y表示一个临界参数(threshold parameters),可用来侦测顶点中成员之最大数目。每一个成员的叶节点(leaf nodes)组成是以[CFi]形式所形成,其中i的范围与子节点一样,存有一个临界参数用以指示可供提供入口的最大数目。另外,叶节点必须遵守丛集直径的限制,亦即,而每一个叶节点的入口要比临界参数值来得小。CFT结构捕捉了原始数据中重要的丛集信息,其将有助于减少所需要的储存空间。并经由辨别对象在特征空间中的稀疏分布摘要,其可以被用来作为评估杂体存在与否的依据。当CFT被建起来后,一个同化丛集算法便会被套用上去,已完成全域(global)丛集化的过程。不过在丛集的精炼上面,其仍另需要一个额外之步骤来执行。
3.CURE方法
另外一种HC算法称为“CURE”也是很典型的方法,此乃S. Guha、R. Rastogi以及K. Shim于1998年时所提议的方法,此方法可探索更多周边的丛集形状。CURE的重要特征在于其使用一个well-scattered点的集合作为每个丛集之表示方式,此将有助于它找到更多其它超球体(hypershperes)之丛集形状,并可避免最小化连结方法中之连锁效应,以及有相似的质心大小趋势所造就之丛集现象。此外,这些丛集代表点的选出可依据可调整参数,进一步做某些限缩(shrink),以削弱杂体所带来的干扰效应。在降低运算复杂度方面, CURE乃利用随机样本策略来降低其运算复杂度。另外还有一种同时考虑内部距离与外部距离的丛集化方法称为“关系型阶层丛集法(relative hierarchical clustering algorithm,RHCA)”,在此所谓内部距离(internal distance)指的是一对丛集可以达到融合成新丛集之彼此间最短距离;而外部距离(external distance)指的是两静止丛集间的距离。
RHCA的逼近决定,乃是依据这些距离的比例关系而定。除了上述各种HC方法之外,C. Olson(1995)与E. Dahlhaus(2000)等人关于HC丛集法之平行技术相关研究亦是一个有趣的课题,对于此方面研究有兴趣者不妨参考看看。以及在2000年的时候,Y. Leung、T. Zhang及Z. Xu等人提出了一种基于缩放空间理论(scale-space theory)的阶层式丛集法,其利用污点过程(blurring process)来解译丛集化,其中每一个数据(datum)都被视为是影像中的一个光点,而丛集的最后表示方式,则以一个污渍(blob)显现。Li及Biswas则提出了另一种基于相似度(similarity-based)的同化丛集法,其称为“SBAC(similarity-based agglomerative clustering)”,其主要是将同化HC丛集法加以延伸,使其可深入处理数值性与微小性数据。在这种方法中,其主要是利用一种混合数据测量策略,以对一些较不寻常之特征值符合现象给予较多注意。
三、平方差的丛集法
(squared error-based clustering)
在区分丛集法时,一个很重要的影响因素便是“规则功能(criterion function)”,在这些广为大众使用的功能里,平方差(squared error)总和的方法是一种非常普遍而受欢迎的方法。假设我们有一个对象集合为xj,其中xj∈Rd且j=1,…,N。并且我们将它们划分成K个集合,即是Si={S1,…,Sk},依据R. Xu及D. Wunsch II等人之研究,平方差规则之定义可以用来表示,其中Г表示分割矩阵(partition matrix),Г={rij};而K表示丛集原型或质心矩阵,即是K=[k1,…,kM];ki则表示第i个丛集之样本平均,其计算方式为。如果xj属于丛集i的一员,则rij=1,如果是其它情况rij=0。对所有j而言,。而Ni则表示第i个丛集之对象数目。平方差总和规则与定义在MDA(multiclass discriminate analysis)内之散布矩阵(scatter matrices)的关联性为ST=SI+SB,其中ST表示总散布矩阵,SI表示类别内(within-class)之散布矩阵,其为之总和;而SB表示类别间(between-class)散布矩阵,其为之总和,其中T为一临界参数值而m表示数据集之平均向量(mean vector),其定义为。因此要将平方差规则最小化,相当于是要最小化SI的追踪或是最大化SB的追踪。并且基于SI与SB的特征,我们可以取得一个丰富的规则函数类别。在许多平方差式的丛集法里,K-means算法算是其中最为人所熟知的一种方法。此种方法之发展可追溯到1965年时,E. Forgy有关丛集分析方面的研究。K-means算法之所以广受欢迎,主要原因在于其原理简单(运算复杂度只有O(N))并且容易被实作成各种问题之解决方案。并且最重要的是,它在精简或是超球面丛集上亦可运作良好,一个参考的K-means算法架构如下:
Select K //选择K个点作为起始的中心点
repeat
从这些K个丛集中心里面,将所有的点以最近距离的方式予以归类
重新计算每个丛集中心点
until 中心点不再改变
正因为K-means算法的实作容易,所以在许多大型数据丛集应用上面,亦常见K-means的丛集法。不过虽然K-means方法在效率上面已使许多人感到满意,但其改良工作仍不断进行当中。例如:1999年时,K. Stoffel等人为K-means方法提出了一种平行运算架构,在此架构下,K-means方法将运行的更有效率并且非常快速。我们在演算架构里面可以清楚看见K-means的运作步骤首先是以随机或基于先验经验的方式,起始化一个K-partition并开始计算丛集原型矩阵K=[k1,…,kM]。然后指定数据集中最靠近丛集Cp的每一个对象,例如:如果||xj-kp||<||xj-ki||,则xj属于Cp丛集,其中j=1,...,N,i≠p而i=1,…,M。并基于目前的分割情形,重新计算丛集原型矩阵。上述的过程会一直重复,直到每一个丛集都不再改变为止。我们可以看出这种K-means丛集法的复杂度决定在点数、丛集数、迭代次数与属性数目的乘积上,即是O(点数*丛集数*迭代次数*属性数目)。K-means方法虽然具备许多实用上的优点(例如:简单、有效率、易于实作…等等),但其亦具有某些缺点存在,例如:当丛集具有不同的大小、密度或非球形属性时,K-means的方法便会出现问题,这些问题我们后面也将会略为堤到。看到这边我们可以知道,阶层式丛集法通常是利用迭代融合(iterative fusion)或分离的方式,将一大群数据对象切割成K个不具阶层架构之丛集群。
原则上,其最佳化之切割乃是基于某种特殊的规则而来,虽然我们可以利用列举所有可能性的方式来找出此适用的规则,但这种暴力破解(brute force)的方法,因为其往往需要庞大的运算成本,使得它在实作上有些不切实际。即是面对的是一个小型的丛集化问题,其运算成本在许多方面亦难以负荷。因此另一种有别于阶层式丛集法的方法便被提出来讨论,这种方法不须先探讨所有可能的结果才能建立规则,其所依靠的是一种类似自我学习理论,从既定条件中尽量寻找满足的可能解法,因此其解法亦往往是一种逼近解法,此方法即是大家所熟知的“启发式丛集法(heuristic clustering)”,然此议题已超出本文的讨论范围。
四、混合密度(mixture densities)之PDF评估
从机率的观点来看,数据对象的产生可以被视为某种机率分布所产生的一种现象。换句话说,不同丛集内之数据点,乃由不同的机率分布所产生。即是可以从各种不同密度函数(density functions)(例如:t-分布(t-distribution))里所衍生出来,或是来自相同密度函数,但却具有不同的参数。如果机率分布是已知的,要找到一个给定数据之丛集相当于是在一些基本模型里去评估他们的机率参数。如果我们假设丛集Ci的“先验机率(prior probability)”(或称为“混合机率(mixing probability)”)为P(Ci),则其条件机率密度为,此亦可称为“组件密度(component density)”而其式中的为未知的参数向量(parameter vector)。整个数据集之混合密度可以如形式来表示,其中i=1,…,M而θ=(θ1,…, θN),且。当参数向量θ被决定后,其指定给丛集数据点之后的机率便可依据贝氏理论(Bayes’s theorm)来计算出来。此处的混合形式可以用任何形式之组件加以建立起来,但一般最常见的方式是利用多变量高斯密度(multivariate Gaussian densities),此乃因其有完整之理论与可分析之追踪力。在参数评估方面,最大可能性(maximum likelihood,ML)评估方法亦是一种重要之统计方法,此方法所认为之最佳评估乃是所有客观事件中之最大机率部分,其可由联合密度函数(joint density function)来给定,形式为,或是以对数之形式来表示,其形式为。因此一个最佳的评估,可藉由解偏微分方程式的方式来求得。不过不幸的是,可能性方程式(likelihood equation)的解法在大多数实际情况下,并无法用分析的分是取得,因此大多实务上解法乃采次最佳解(suboptimal)的方式为之(即是用迭代方法求次要的最佳解)。此方法因为可行,故常被用来作为逼近ML评估的方法,并且在这些方法里面,又以1996年G. McLachlan及T. Krishnan提议之最大期望值(expectation-maximization,EM)方法最受欢迎。虽然EM方法广受大家使用,但是其亦有可能令人诟病之缺点(参见McLachlan及Krishnan的研究),其中最主要者乃在于起始化参数选择之敏感性,其可能使收敛条件变成局部最佳化的情形而非全域最佳化,并可能导致收敛的速率到后面趋于缓慢。故,2002年的时候M. Figueire及A. Jain等人便提出一些EM变体方法以克服这些问题,这些方法对于在使用EM而又欲避其缺点之人颇有研究价值。
在EM方法里,其认为每个数据集都是不完整的,一个标准的EM算法会产生一连串的参数评估,其中T表示在时间t时达到收敛条件。为产生这些参数,这种EM方法会将这些数据点xj进一步分割为两个部分(即是与)。其中表示客观特征;而表示所遗失的资料,也就是说,,在此的值依据其是否属于组件i所有而分别给定0或1的数值(如果为其所属则给定1,反则给定0)。因此一个完整的数据对数可能性(log-likelihood)的表示方法,其形式为,
有关其运作之初会先设定t=0,并将起始化。然后计算完整数据对数可能性期望值,即。并选择一个新的参数评估,使Q函数最大化,即。最后增加t(即是t=t+1),直到收敛条件被满足。
另外G. Celeux及G. Govaert(1992)提供了一个在球面高斯混合模式下的一种EM分类算法(classification EM,CEM),只不过这种算法与K-means算法有着等价关系。后来到了2002年,C. Fraley及A. Raftery描述了一种基于周边混合模型之丛集策略,此策略后来被实作在软件中,称为“MCLUST”。在该策略里,其组件密度是一种多变量高斯密度模型,其有一平均向量(mean vector)-μ以及一个共变异矩阵(covariance matrix)-∑,来当作可供评估之参数。每一个组件之共变异矩阵,还可以再进一步经由本征值(eigenvalue)的分解来加以参数化,其可表现为,其中ε为缩放因子而Π为本征向量(eigenvector)的正交矩阵(orthogonal matrix),而A为本征值∑的对角矩阵(diagonal matrix),此3种成员决定了该组件之几何特性。当丛集与候选模型之最大数被指定后,一个同化的阶层丛集法便会被用来触发EM算法并形成一个起始分割(initial partition),其中包含了每个模型所能涵盖之最大数目丛集并经由确认贝氏信息规则(Bayesian information criterion ,BIC)值,来得知何者可能为最佳化之丛集结果。贝氏方法在统计学以及模式辨识上是一种常被使用的技术,例如:P. Cheeseman及J. Stutz(1996)在他们提议的方法里,便利用贝氏方法来搜寻基于先验机率所给的数据中其最佳化的部分。故贝氏理论不只在统计学上具有重要地位,其亦已成为许多研究领域中之重要研究技巧,惟在应用时仍应需注意贝氏理论之限制与争议。因为多维度数据往往具备高复杂性,在大多数情况里面,其分布型态多无法使用单一机率分布模型来加以模型化。故在这些资料集(data set)的表现方面,多以有限的混合密度分布来表现,而这些混合密度分布里面又以高斯混合密度函数最为知名。高斯混合密度分解法(GMDD)是一种新的高斯混合密度模型之模型化与分解的方法,也是一种基于多变量高斯密度的方法,由X. Zhuang及Y. Huang等人在1996年时所提出。这种方法并不将数据点视为一种由高斯分布所产生的噪声,其乃使用强化之模型适配评估器(enhanced model-fitting estimator)从不纯的模型中建构每一个组件。