数学建模方法详解--三十四种常用算法 下载本文

三、聚类分析

一)聚类分析的概念:

聚类分析指将物理或抽象对象的集合分组成为由类似的对象组成的多个类的分析过程。它是一种重要的人类行为。

聚类与分类的不同在于,聚类所要求划分的类是未知的。

聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。

从统计学的观点看,聚类分析是通过数据建模简化数据的一种方法。传统的统计聚类分析方法包括系统聚类法、分解法、加入法、动态聚类法、有序样品聚类、有重叠聚类和模糊聚类等。采用k-均值、k-中心点等算法的聚类分析工具已被加入到许多著名的统计分析软件包中,如SPSS、SAS等。 二)、聚类分析的主要应用: 在商业上

聚类分析被用来发现不同的客户群,并且通过购买模式刻画不同的客户群的特征;

在生物上

聚类分析被用来动植物分类和对基因进行分类,获取对种群固有结构的认识 在地理上

聚类能够帮助在地球中被观察的数据库商趋于的相似性 在保险行业上

聚类分析通过一个高的平均消费来鉴定汽车保险单持有者的分组,同时根据住宅类型,价值,地理位置来鉴定一个城市的房产分组 在因特网应用上

聚类分析被用来在网上进行文档归类来修复信息 在电子商务上

聚类分析在电子商务中网站建设数据挖掘中也是很重要的一个方面,通过分组聚类出具有相似浏览行为的客户,并分析客户的共同特征,可以更好的帮助电子商务的用户了解自己的客户,向客户提供更合适的服务。 三)聚类分析的主要步骤: 1、数据预处理,

2、为衡量数据点间的相似度定义一个距离函数, 3、聚类或分组, 4、评估输出。

数据预处理包括选择数量,类型和特征的标度,它依靠特征选择和特征抽取,特征选择选择重要的特征,特征抽取把输入的特征转化为一个新的显著特征,它们经常被用来获取一个合适的特征集来为避免“维数灾”进行聚类,数据预处理还包括将孤立点移出数据,孤立点是不依附于一般数据行为或模型的数据,因此孤立点经常会导致有偏差的聚类结果,因此为了得到正确的聚类,我们必须将它们剔除。

既然相类似性是定义一个类的基础,那么不同数据之间在同一个特征空间相似度的衡量对于聚类步骤是很重要的,由于特征类型和特征标度的多样性,距离度量必须谨慎,它经常依赖于应用,例如,通常通过定义在特征空间的距离度量来评估不同对象的相异性,很多距离度都应用在一些不同的领域,

一个简单的距离度量,如Euclidean距离,经常被用作反映不同数据间的相异性,一些有关相似性的度量,例如PMC和SMC,能够被用来特征化不同数据的概念相似性,在图像聚类上,子图图像的误差更正能够被用来衡量两个图形的相似性。

将数据对象分到不同的类中是一个很重要的步骤,数据基于不同的方法被分到不同的类中,划分方法和层次方法是聚类分析的两个主要方法,划分方法一般从初始划分和最优化一个聚类标准开始。Crisp Clustering,它的每一个数据都属于单独的类;Fuzzy Clustering,它的每个数据可能在任何一个类中,Crisp Clustering和Fuzzy Clusterin是划分方法的两个主要技术,划分方法聚类是基于某个标准产生一个嵌套的划分系列,它可以度量不同类之间的相似性或一个类的可分离性用来合并和分裂类,其他的聚类方法还包括基于密度的聚类,基于模型的聚类,基于网格的聚类。

评估聚类结果的质量是另一个重要的阶段,聚类是一个无管理的程序,也没有客观的标准来评价聚类结果,它是通过一个类有效索引来评价,一般来说,几何性质,包括类间的分离和类内部的耦合,一般都用来评价聚类结果的质量,类有效索引在决定类的数目时经常扮演了一个重要角色,类有效索引的最佳值被期望从真实的类数目中获取,一个通常的决定类数目的方法是选择一个特定的类有效索引的最佳值,这个索引能否真实的得出类的数目是判断该索引是否有效的标准,很多已经存在的标准对于相互分离的类数据集合都能得出很好的结果,但是对于复杂的数据集,却通常行不通,例如,对于交叠类的集合。

四)聚类分析的计算方法: 1、划分法(partitioning methods):给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K

录的个数无关的,它只与把数据空间分为多少个单元有关。代表算法有:STING算法、CLIQUE算法、WAVE-CLUSTER算法; 5、基于模型的方法(model-based methods):基于模型的方法给每一个聚类假定一个模型,然后去寻找能个很好的满足这个模型的数据集。这样一个模型可能是数据点在空间中的密度分布函数或者其它。它的一个潜在的假定就是:目标数据集是由一系列的概率分布所决定的。通常有两种尝试方向:统计的方案和神经网络的方案。 具体的有:

1、K-MEANS算法

k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。

k-means 算法的工作过程说明如下:首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。 2、K-MEDOIDS算法

K-MEANS有其缺点:产生类的大小相差不会很大,对于脏数据很敏感。 改进的算法:k—medoids 方法。这儿选取一个对象叫做mediod来代替上面的中心的作用,这样的一个medoid就标识了这个类。步骤:

(1)、任意选取K个对象作为medoids(O1,O2,?Oi?Ok)。 以下是循环的:

(2)、将余下的对象分到各个类中去(根据与medoid最相近的原则); (3)、对于每个类(Oi)中,顺序选取一个Or,计算用Or代替Oi后的消耗—E(Or)。选择E最小的那个Or来代替Oi。这样K个medoids就改变了,下面就再转到2。

(4)、这样循环直到K个medoids固定下来。

这种算法对于脏数据和异常数据不敏感,但计算量显然要比K均值要大,一般只适合小数据量。 3、Clara算法

上面提到K-medoids算法不适合于大数据量的计算。现在介绍Clara算法,这是一种基于采用的方法,它能够处理大量的数据。

Clara算法的思想就是用实际数据的抽样来代替整个数据,然后再在这些抽样的数据上利用K-medoids算法得到最佳的medoids。Clara算法从实际数据中抽取多个采样,在每个采样上都用K-medoids算法得到相应的(O1,O2?Oi?Ok),然后在这当中选取E最小的一个作为最终的结果。 4、Clarans算法

Clara算法的效率取决于采样的大小,一般不太可能得到最佳的结果。

在Clara算法的基础上,又提出了Clarans的算法,与Clara算法不同的是:在Clara算法寻找最佳的medoids的过程中,采样都是不变的。而Clarans

算法在每一次循环的过程中所采用的采样都是不一样的。与上次课所讲的寻找最佳medoids的过程不同的是,必须人为地来限定循环的次数。

模糊聚类分析方法 聚类分析方法形成思路 变量的数据预处理

分类前,对原始数据进行预处理,使其所有变量尺度均匀化。方法有以下几种: 变量的标准化

设有n个样品,m个特征变量,设第i个样品,第j个变量的观测值为xij(i?1,2,,n;j?1,2,,m),由此可构成一个n?m阶矩阵为

x1m??x11x12?x?xx21222m? (1) X?(xij)n?m??????xxxnm??n1n2将式(1)中每个变量xij根据以下公式变换,称为标准化。

对每个变量的标准化计算公式为

x?xj(i?1,2,??ijxij(j?1,2,Sj,n),m) (2)

1n1n式中,xj??xijSj?[?(xij?xj)2]1/2

ni?1ni?1标准化后变量的平均值为0,标准离差为1。

变量的正规化

对每个变量施行以下变换,称为正规化。

xij?xj(min)(i?1,2,??xijxj(max)?xj(min)(j?1,2,,n),m) (3)

??1。式中,xj(max)和xj(min)分别为第j个变量的最大值和最小值。显然,0?xij 变量的规格化

对每个变量施行以下变换,称为规格化。

xij(i?1,2,,n)?? (4) xij(j?1,2,,m)xj(max)??1。 式中,,xj(max)为第j个变量的最大值。显然,0?xij注:数据的预处理以不丢失原有信息为前提。三种预处理方法的选择应根据现有

数据的特点来考虑。

分类统计量的确定及其聚类方法的选择

分类统计量的确定

一般是把相似程度大的并成一类,把相似程度小的分为不同的类,因此要定量地表示样品间的相似程度。设论域U?{x1,x2,?,xn},xi?{xi1,xi2,?,xim}(i?1,2,?,n),即数据矩阵为