• 1. 聚 类 分 析 ——PAM算法报告时间: 2004年6月日 报 告 人: 陈晓宇 王晖
  • 2. 什么是聚类聚类 ( clustering ) 是一个将数据集划分为若干组 ( class ) 或类 ( cluster ) 的过程,并使得同一个组内的数据对象具有较高的相似度;而不同组中的数据对象是不相似的。
  • 3. 什么是聚类过程将一组 ( set ) 物理的或抽象的对象,根据它们之间的相似程度,分为若干组 ( group ) ;其中相似的对象构成一组,这一过程就称为聚类过程( clustering )
  • 4. 什么是聚类分析一个聚类 ( cluster ) 就是由彼此相似的一组对象所构成的集合;不同聚类中对象是不相似的。就是从给定的数据集中搜索数据项 ( items ) 之间所存在的有价值联系。 在许多应用,一个聚类中所有对象常常被当作一个对象来进行处理或分析等操作
  • 5. 许多领域,包括数据挖掘、统计学和机器学习都有聚类研究和应用!
  • 6. 聚类分析的典型应用商业方面 聚类分析可以帮助市场人员发现顾客群中所存在的不同特征的组群;并可以利用购买模式来描述这些不同特征的顾客组群 生物方面 聚类分析可以用来获取动物或植物所存在的层次结构,以及根据基因功能对其进行分类以获得对人群中所固有的结构更深入的了解。
  • 7. 聚类分析的典型应用聚类还可以从地球观测数据库中帮助识别具有相似的土地使用情况的区域。此外还可以帮助分类识别互联网上的文档以便进行信息发现。 作为数据挖掘的一项功能,聚类分析还可以作为一个单独使用的工具,来帮助分析数据的分布、了解各数据类的特征、确定所感兴趣的数据类以便作进一步分析。 聚类分析也可以作为其它算法(诸如:分类和定性归纳算法)的预处理步骤
  • 8. 聚类方法划分类方法 分层类方法 基于密度类方法 基于网格类方法 基于模型类方法
  • 9. 聚类方法——划分类方法给定一个包含n个对象或数据行,划分方法将数据集划分为k个子集 ( 划分 ) 。其中每个子集均代表一个聚类 ( k ≤ n )。也就是说将数据分为k组,这些组满足以下要求 每组至少应包含一个对象 每个对象必须只能属于某一组
  • 10. 聚类方法——划分类方法给定需要划分的个数k,一个划分方法创建一个初始划分;然后利用循环再定位技术,即通过移动不同划分 ( 组 ) 中的对象来改变划分内容。一个好的划分衡量标准通常就是同一个组中的对象“相近”或彼此相关;而不同组中的对象“较远”或彼此不同。当然还有许多其它判断划分质量的衡量标准。
  • 11. 聚类方法——划分类方法为获得基于划分聚类分析的全局最优结果就需要穷举所有可能的对象划分。为此大多数应用采用一至二种常用启发方法 k-means 算法,该算法中的每一个聚类均用相应聚类中对象的均值来表示; k-medoids 算法,该算法中的每一个聚类均用相应聚类中离聚类中心最近的对象来表示。
  • 12. 聚类方法——分层类方法层次方法就是通过分解所给定的数据对象集来创建一个层次。根据层次分解形成的方式,可以将层次方法分为自下而上和自上而下两种类型。自下而上的层次方法从每个对象均为一个(单独的)组开始;逐步将这些(对象)组进行合并,直到组合并在层次顶端或满足终止条件为止。自上而下层次方法从所有均属于一个组开始;每一次循环将其(组)分解为更小的组;直到每个对象构成一组或满足终止条件为止。
  • 13. 聚类方法——基于密度类方法基于密度概念的聚类方法实际上就是不断增长所获得的聚类直到“邻近”(数据对象或点)密度超过一定阈值(如:一个聚类中的点数,或一个给定半径内必须包含至少的点数)为止。这种方法可以用于消除数据中的噪声(异常数据),以及帮助发现任意形状的聚类。
  • 14. 聚类方法——基于网格类方法基于网格方法将对象空间划分为有限数目的单元以形成网格结构。所有聚类操作均是在这一网格结构上进行的。这种方法主要优点就是处理时间由于与数据对象个数无关而仅与划分对象空间的网格数相关,从而显得相对较快
  • 15. 聚类方法——基于模型类方法基于模型方法就是为每个聚类假设一个模型,然后再去发现符合相应模型的数据对象。一个基于模型的算法可以通过构造一个描述数据点空间分布的密度函数来确定具体聚类。它根据标准统计方法并考虑到“噪声”或异常数据,可以自动确定聚类个数;因而它可以产生很鲁棒的聚类方法
  • 16. 聚类分析
  • 17. 划分方法给定包含 n 个数据对象的数据库和所要形成的聚类个数 k ,划分算法将对象集合划分为 k 份( n ≤ k ),其中每个划分均代表一个聚类。所形成的聚类将使得一个客观划分标准 ( 常称为相似函数,如:距离 ) 最优化 从而使得一个聚类中的对象是“相似”的;而不同聚类中的对象是“不相似”的
  • 18. k-medoids算法k-medoids 聚类算法比 k-means 聚类算法在处理异常数据和噪声数据方面更为鲁棒 与聚类均值相比,一个聚类中心的代表对象要较少受到异常数据或极端数据的影响 前者的处理时间要比后者更大。两个算法都需要用户事先指定所需聚类个数 k
  • 19. k-medoids算法k-medoids 聚类算法的基本策略就是通过首先任意为每个聚类找到一个代表对象 medoid ,而首先确定n个数据对象的k个聚类;(也需要循环进行)其它对象则根据它们与这些聚类代表的距离分别将它们归属到各相应聚类中(仍然是最小距离原则)。 而如果替换一个聚类代表能够改善所获聚类质量的话,那么就可以用一个新对象替换老聚类对象。
  • 20. k-medoids算法这里将利用一个基于各对象与其聚类代表间距离的成本函数来对聚类质量进行评估。 为了确定任一个非聚类代表对象Orandom是否可以替换当前一个聚类代表Oj,需要根据以下四种情况对各非聚类代表对象p进行检查
  • 21. 第一种情况若对象 p 当前属于 Oj ( 所代表的聚类 ) ,且如果用 Orandom 替换 Oj 作为新聚类代表,而 p 就更接近其它 Oi ( i ≠ j ) ,那么就将p 归类到 Oi ( 所代表的聚类 ) 中
  • 22. 第一种情况——图
  • 23. 第二种情况若对象 p 当前属于Oi ( 所代表的聚类 ),且如果用 Orandom 替换 Oj 作为新聚类代表,而 p 最更接近 Orandom ,那么就将 p 归类到 Orandom ( 所代表的聚类 ) 中
  • 24. 第二种情况——图
  • 25. 第三种情况若对象p当前属于Oi (所代表的聚类) ( i ≠ j ) ,且如果用 Orandom 替换 Oj 作为新聚类代表,而 p 仍然最接近 Oi ,那么 p 归类不发生变化
  • 26. 第三种情况——图
  • 27. 第四种情况若对象p当前属于Oi ( 所代表的聚类 ) ( i ≠ j ) ,且如果用 Orandom 替换 Oj 作为新聚类代表,而 p 仍然最接近 Orandom ,那么就将 p 归类到Orandom ( 所代表的聚类 ) 中
  • 28. 第四种情况——图
  • 29. 说明上述k-medoids聚类算法的四种主要处理情况。每次对对象进行重新归类,都会使得构成成本函数的方差E发生变化。因此成本函数能够计算出聚类代表替换前后的方差变化。通过替换不合适的代表来而使距离方差发生变化的累计就构成了成本函数的输出。若整个输出成本为负值,那么就用 Oradom 替换 Oj ,以便能够减少实际的方差E。若整个输出成本为正值,那么就认为当前的Oj 是可接受的,本次循环就无需变动。一个基本的k-medoids聚类算法如下算法所示。
  • 30. 基本的聚类算法k-medoids算法算法:根据聚类的中心对象(聚类代表)进行聚类划分的k-medoids算法 输入:聚类个数k,以及包含n个数据对象的数据库 输出:满足基于各聚类中心对象的方差最小标准的k个聚类
  • 31. 基本的聚类算法k-medoids算法处理流程: (1) 从m个数据对象任意选择k个对象作为初始聚类(中心)代表 (2) 循环(3)到(5)到每个聚类不再发生变化为止 (3) 依据每个聚类的中心代表对象,以及各对象与这些中心对象间距离;并根据最小距离重新对相应对象进行划分 (4) 任意选择一个非中心对象Orandom ;计算其与中心对象Oj交换的整个成本S (5) 若S为负值则交换Orandom与Oj以构成新聚类的k个中心对象
  • 32. PAM算法PAM(围绕中心对象进行划分)方法是最初提出的 k-medoids 聚类算法之一 它在初始选择k个聚类中心对象之后,不断循环对每两个对象(一个为非中心对象,一个为中心对象)进行分析,以便选择出更好的聚类中心代表对象。并根据每组对象分析计算所获得的聚类质量。若一个中心对象 Oj 被替换后导致方差迅速减少,那么就进行替换。对于较大的 n 与 k 值这样的计算开销也非常大
  • 33. PAM算法像PAM方法这样典型的 k-medoids 聚类算法,在小数据集上可以工作的很好 但是对于大数据库则处理效果并不理想。可以利用一个基于采样的聚类方法,称为CLARA(Clustering LARge Application),来有效处理大规模数据
  • 34. 参考文献(加)Jiawei Han[韩家炜], Micheline Kamber[坎伯]著 范明…[等]译数据挖掘 概念与技术 机械工业出版社 2001 陈京民 . 数据仓库与数据挖掘技术[M] . 电子工业出版社,2002. (美) Mehmed Kantardzic著 闪四清, 陈茵, 程雁等译 数据挖掘 概念、模型、方法和算法 清华大学出版社 2003
  • 35. 谢 谢 大 家 !