聚类分析原理及步骤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
聚类分析原理及步骤
——将未知数据按相似程度分类到不同的类或簇的过程
1》传统的统计聚类分析方法包括系统聚类法、分解法、加入法、动态聚类法、有序样品聚类、有重叠聚类和模糊聚类等。采用k-均值、k-中心点等算法的聚类分析工具已被加入到许多著名的统计分析软件包中,如SPSS、SAS等。
典型应用
1》动植物分类和对基因进行分类
2》在网上进行文档归类来修复信息
3》帮助电子商务的用户了解自己的客户,向客户提供更合适的服务
主要步骤
1》数据预处理——选择数量,类型和特征的标度((依据特征选择和抽取)特征选择选择重要的特征,特征抽取把输
入的特征转化为一个新的显著特征,它们经常被用来获取
一个合适的特征集来为避免“维数灾”进行聚类)和将孤
立点移出数据(孤立点是不依附于一般数据行为或模型的
数据)
2》为衡量数据点间的相似度定义一个距离函数——既然相类似性是定义一个类的基础,那么不同数据之间在同一个
特征空间相似度的衡量对于聚类步骤是很重要的,由于特
征类型和特征标度的多样性,距离度量必须谨慎,它经常
依赖于应用,例如,通常通过定义在特征空间的距离度量
来评估不同对象的相异性,很多距离度都应用在一些不同
的领域一个简单的距离度量,如Euclidean距离,经常被
用作反映不同数据间的相异性,一些有关相似性的度量,例如PMC和SMC,能够被用来特征化不同数据的概念相似
性,在图像聚类上,子图图像的误差更正能够被用来衡量
两个图形的相似性
3》聚类或分组——将数据对象分到不同的类中【划分方法(划分方法一般从初始划分和最优化一个聚类标准开
始,Crisp Clustering和Fuzzy Clusterin是划分方法的两个主要技术,Crisp Clustering,它的每一个数据都
属于单独的类;Fuzzy Clustering,它的每个数据可能在
任何一个类中)和层次方法(基于某个标准产生一个嵌套
的划分系列,它可以度量不同类之间的相似性或一个类的
可分离性用来合并和分裂类)是聚类分析的两个主要方
法,另外还有基于密度的聚类,基于模型的聚类,基于网
格的聚类】
4》评估输出——评估聚类结果的质量(它是通过一个类有效索引来评价,,一般来说,几何性质,包括类间的分离和
类内部的耦合,一般都用来评价聚类结果的质量,类有效
索引在决定类的数目时经常扮演了一个重要角色,类有效
索引的最佳值被期望从真实的类数目中获取,一个通常的
决定类数目的方法是选择一个特定的类有效索引的最佳
值,这个索引能否真实的得出类的数目是判断该索引是否
有效的标准,很多已经存在的标准对于相互分离的类数据
集合都能得出很好的结果,但是对于复杂的数据集,却通
常行不通,例如,对于交叠类的集合。)
聚类分析的主要计算方法原理及步骤
划分法
1》将数据集分割成K个组(每个组至少包含一个数据
且每一个数据纪录属于且仅属于一个分组),每个
组成为一类
2》通过反复迭代的方法改变分组,使得每一次改进之
后的分组方案都较前一次好(标准就是:同一分组
中的记录越近越好,而不同分组中的纪录越远越
好,使用这个基本思想的算法有:K-MEANS算法、
K-MEDOIDS算法、CLARANS算法)
层次法
1》“自底向上”方案——将每个数据单独作为一组,通过反
复迭代的方法,把那些相互邻近的组合并成一个组,直到所
有的记录组成一个分组或者某个条件满足为止,代表算法有:
BIRCH算法、CURE算法、CHAMELEON算法等
2》“自顶向下”方案
主要算法原理及步骤
K-MEANS算法
k-means 算法接受输入量 k ;然后将n个数据对象划分为 k 个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。 k-means 算法的工作过程说明如下:
1》从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;
2》计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数.
k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。
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均值
要大,一般只适合小数据量
Clara算法
K-medoids算法不适合于大数据量的计算,Clara算法的思想就是用实际数据的抽样来代替整个数据,然后再在这些抽样的数据上利用K-medoids算法得到最佳的medoids。Clara算法从实际数据中抽取多个采样,在每个采样上都用K-medoids算法得到相应的(O1,O2…Oi…Ok),然后在这当中选取E最小的一个作为最终的结果。Clarans算法
Clara算法的效率取决于采样的大小,一般不太可能得到最佳的结果
在Clara算法的基础上,又提出了Clarans的算法,与Clara