1)

10.聚类分析:基本概念和方法

聚类是一个把数据对象集划分成多个组或簇的过程,使得簇内的对象具有很高的相似性,但与其他簇中的对象很不相似。相异性和相似性根据描述对象的属性值评估,涉及到距离度量。

10.1 聚类分析

聚类分析把一个数据对象(或观测)划分子集的过程。由聚类分析产生的簇的集合称做一个聚类。聚类分析用来洞察数据的分析,观察每个簇的特征,将进一步分析集中在特定的簇集合上。聚类分析也可作为其他算法如特征化、属性子集选择和分类的预处理步骤。聚类也看用于离群点检测。聚类是无监督学习。

数据挖掘对聚类的要求:可伸缩性、处理不同属性类型的能力、发现任意形状的簇、对于确定输入参数的领域知识的要求、处理噪声数据的能力、增量聚类和对输入次序不敏感、聚类高维数据的能力、基于约束的聚类、可解释性和可用性。比较聚类方法的有划分准则、簇的分离性、相似性度量、聚类空间。

聚类方法的特点:

1)划分方法(原型方法):发现球形互斥的簇、基于距离、可以用均值或中心点等代表簇中心、对中小规模数据集有效;

2)层次方法:聚类是一个层次分解(多层)、不能纠正错误的合并或划分、可以集成其他技术如微聚类或考虑对象连接;

3)密度方法:可以发现任意形状的簇、簇是对象空间中被低密度区域分隔的稠密区域、簇密度每个点的邻域内必须具有最少个数的点、可能过滤离群点;

4)网格方法:使用一种多分辨率网格数据结构、快速处理(典型地,独立于数据对象数,但依赖于网格大小)。

10.2 划分方法

划分方法把数据对象组织成k个分区,每个分区代表一个簇。同一簇中的对象是相似的,而不同簇中的对象是相异的。

K-均值一种基于形心的技术,对离群点敏感。k-中心点一种基于代表对象的技术,在存在噪声和离群点下更鲁棒性。

10.3 层次方法

层次聚类方法将数据对象组成层次结构或簇的树。层次聚类方法分类为凝聚的和分裂的,取决于层次分解是自底向上合并的还是自顶向下的分裂方式形成。

凝聚层次聚类使用自底向上策略。令每个对象形成自己的簇开始,并且迭代地把簇合并成越来越大的簇,直到所有的对象都在一个簇中,或者满足某个终止的条件。该单个簇成为层次结构的根。在合并步骤中,它找出两个最接近的簇(根据某种相似性度量),并且合并它们,形成一个簇。因为每次迭代合并两个簇,其中每个簇至少包含一个对象,因此凝聚方法最多需要n次迭代。

分类层次聚类使用自顶向下策略。从把所有对象置于一个簇中,该簇是层次结构的根。然后,把根上的簇划分成多个较小的子簇,并且递归地把这些簇划分成更小的簇。划分过程继续,直到最底层的簇都足够凝聚-或者仅包含一个对象,或者簇内的对象彼此都充分相似。

凝聚方法和分裂方法的核心问题都是度量两个簇之间的距离。

采用最小距离的称为最近邻聚类算法。当最近的两个簇之间的距离超过用户给定的阈值时聚类过程就终止,称为单连接算法。使用最小距离度量的凝聚层次聚类也称为最小生成树算法。

使用最大距离的称为最远邻聚类算法。如果当最近的两个簇之间的最大距离超过用户给定的阈值时聚类过程终止,称为全连接算法。

最小和最大距离代表了簇间距离度量的两个极端,趋向对离群点或噪声数据过分敏感。使用均值距离或平均距离是对最小和最大距离之间的一种折中方法,并且可以克服离群点敏感性问题。

利用层次结构的平衡迭代归约和聚类是为大量数值数据聚类设计的,将层次聚类和其他聚类方法集成一起,克服了凝聚聚类所面临的可伸缩性和不可撤销先前步骤工作的困难。BIRCH(使用聚类特征树的多阶段聚类)使用聚类特征来概括一个簇,使用聚类特征树(CF-树)来表示聚类的层次结构。簇的聚类特征CF是一个3维向量,汇总了对象簇的信息,是给定簇的统计汇总。使用聚类特征可以避免存储个体对象或点的详细信息。CF树是一颗高度平衡的树,存储了层次聚类的聚类特征。支持增量聚类。

Chameleon(变色龙)使用动态建模的多阶段层次聚类,采用动态建模来确定一对簇之间的相似度。簇的相似度依据两点评估:簇中对象的连接情况、簇的邻近性。如果两个簇的互连性很高并且它们之间靠得很近则将其合并,不用依赖于静态的、用户提供的模型,能够自动适应被合并簇的内部特征。这一合并过程有利于发现自然、同构的簇,并且只要定义了相似度函数就可应用于所有类型的数据。过程是先依据k近邻构建稀疏图,在分割边割最小的子簇,最后用层次聚类的凝聚子簇。

层次聚类存在三个缺点:1)距离度量选择是困难的;2)不能很好解决有缺失的属性值;3)层次聚类方法是启发式的,在每一步中局部地搜索好的合并或划分。概率层次聚类通过使用概率模型度量簇之间的距离,克服这些缺点。概率层次聚类把待聚类的数据对象看做要分析的基础数据生成机制的一个样本,或生成模型,这样聚类的任务是使用待聚类的观测数据,尽可能准确地估计生成模型。可以假定数据的生成模型采用常见的分布函数,如高斯分布或伯努利分布,由参数确定,学习生成模型的任务归结为找出使得模型最佳拟合观测数据集的参数值。概率层次聚类只输出一个关于选取的概率模型的层次结构,不能处理聚类层次结构的不确定性,但给定一个数据集,可能存在多个拟合观测数据的层次结构。

10.4 基于密度的方法

划分方法和层次方法都是发现球形簇,不能发现其他形状的簇。要能发现任意形状的簇,可以把簇看做数据空间中被稀疏区域分开的稠密区域,这就是基于密度的聚类方法的主要策略,可以发现非球状的簇。

DBSCAN,具有噪声应用的基于密度的空间聚类,找出核心对象,即其邻域稠密的对象,连接核心对象及其邻域,形成稠密区域作为簇。构建过程有邻域半径参数和核心对象邻域内要求的最少点数两个参数控制。这两个参数设置靠经验。

OPTICS,通过点排序识别聚类结构,不显式地产生数据集聚类,而是输出簇排序,排序是所有分析对象的线性表,并且代表了数据的基于密度的聚类结构。较稠密簇中的对象在簇排序中相互靠近,排序等价于从广泛的参数设置中得到的基于密度的聚类。需要两个重要信息,核心距离和可达距离。

DENCLUE,一种基于一组密度分布函数的聚类算法。密度估计是根据一系列观测数据集来估计不可观测的概率密度函数。在基于密度聚类的背景下,不可观测的概率密度函数是待分析的所有可能的对象的总体的真实分布。观测数据集被看做取自该总体的一个随机样本。核密度估计,非参数密度估计方法,把每个观测对象都看做是周围区域中高概率密度的一个指示器,一个点上的概率密度依赖于从该点到观测对象的距离。一个簇是一个密度吸引点的集合X和一个输入对象的集合C,使得C中的每个对象都被分配到X中的一个密度吸引点,并且每对密度吸引点之间都存在一条其密度大于阈值的路径。

10.5 基于网格的方法

基于网格的聚类,是空间驱动的方法,把嵌入空间划分成独立于输入对象分布的单元。基于网格的聚类方法使用一种多分辨率的网格数据结构,将对象空间量化成有限数目的单元,形成网格结构,所有的聚类操作在该结构上进行。这种方法处理速度快,处理时间独立于数据对象数,而仅依赖于量化空间中每一维上的单元数。

STING,统计信息网格,基于网格的多分辨率的聚类技术,将输入对象的空间区域划分成矩形单元。空间可以用分层和递归方法进行划分。这种多层矩形单元对应不同级别的分辨率,并且形成一个层次结构:每个高层单元被划分为多个第一层单元。关于每个网格单元的属性的统计信息,如均值、最大值、最小值,被作为统计参数预先计算和存储。

CLIQUE,一种类似于Apriori的子空间聚类方法,用于发现子空间中基于密度的簇。CLIQUE把每个维划分成不重叠的区间,从而把数据对象的整个嵌入空间划分成单元,使用一个密度阈值识别稠密单元和稀疏单元,一个单元是稠密的,如果映射到它的对象数超过该密度阈值。CLIQUE识别候选搜索空间的主要策略是使用稠密单元关于维度的单调性,这基于频繁模式和关联规则挖掘使用的先验性质。

10.6 聚类评估

聚类评估的主要任务包括估计聚类趋势、确定数据集中的簇数、测定聚类质量。

聚类趋势评估确定给定的数据集是否具有可以导致有意义的聚类的非随机结构。霍普金斯统计量是一种空间统计量,检验空间分布的变量的空间的随机性。该评估通过霍普金斯统计量来检验数据分布是否均匀。

合适的簇数可以控制适当的聚类分析粒度,也是在聚类分析的可压缩性和准确性之间寻找好的平衡点。确定合适的簇数依赖于数据集分布的形状和尺度,也依赖于用户要求的聚类分辨率。估计簇的方法有肘方法,增加簇数有助于降低每个簇的簇内方差之和,因为更多的簇可以捕获更细的数据对象簇,簇中对象之间更为相似。不过,如果形成太多的簇,则降低簇内的方差和的边缘效应可能下降,把一个凝聚的簇分裂成两个只引起簇内方差和的稍微降低,因此选择正确的簇数的启发式方法是使用簇内方差和关于簇数的曲线的拐点。

测定聚类质量有外在方法(监督方法)和内在方法(无监督方法)。

1)外在方法:有簇的同质性、簇的完全性、碎布袋、小簇保持性四项标准来评估聚类质量度量Q是有效的。BCubed精度和召回率满足满足这四个标准,根据基准,对给定数据集上聚类中的每个对象估计精度和召回率。一个对象的精度指示同一簇中有多少个其他对象与该对象同属一个类别。一个对象的召回率反映有多少同一类别的对象别分配在相同的簇中。

2)内在方法:在没有数据集的基准可用时,使用内在方法评估聚类的质量,通过考察簇的分离情况和簇的紧凑情况来评估聚类。利用数据集对象之间的相似性度量。轮廓系数就是这种度量。

10.7 小结

1)簇是数据对象的集合,同一个簇中的对象彼此相似,而不同簇中的对象彼此相异。将物理或抽象对象的集合划分为相似对象的类的过程是聚类。

2)聚类分析具有广泛的应用,包括商务智能、图像模式识别、Web搜索、生物学和安全。聚类分析可以作为独立的数据挖掘工具来获得对数据分布的了解,也可以作为在检测的簇上运行的其他数据挖掘算法的预处理步骤。

3)聚类是数据挖掘研究一个富有活力的领域,与机器学习的无监督学习有关。

4)聚类的要求包括可伸缩性、处理不同类型的数据和属性的能力、发现任意形状的簇、确定输入参数的最小领域知识需求、处理噪声数据的能力、增量聚类和对输入次序的不敏感性、聚类高维数据的能力、基于约束的聚类,以及聚类的可解释性和可用性。

5)聚类方法根据划分标准、簇的分离性、所所用的相似性度量和聚类空间有:划分方法、层次方法、基于密度的方法和基于网格的方法。

6)划分方法首先创建k个分区的初始集合,其中参数k是要构建的分区数。然后,采用迭代重定位技术,试图通过把对象从一个簇移到另一个簇来改进划分的质量。典型的划分方法包括k-均值、k-中心点、CLARANS。

7)层次方法创建给定数据对象集的层次分解。根据层次分解的形成方式,层次方法可以分为凝聚的(自底向上)和分裂的(自顶向下)。为弥补合并或分裂的僵硬性,凝聚的层次方法的聚类质量可通过以下方法改进:分析每个层次划分中的对象连接(如Chameleon),或者首先执行微聚类(把数据划分为微簇),然后使用其他的聚类技术,迭代重定位,在微簇上聚类(如BIRCH)。

8)基于密度的方法基于密度的概念来聚类对象。它或者根据邻域中对象的密度(如DBSCAN),或者根据某种密度函数(如DENCLUE)来生成簇。OPTICS是一个基于密度的方法,它生成数据聚类结构的一个增广序。

9)基于网格的方法首先将对象空间量化为有限数目的单元,形成网格结构,然后在网格结构上进行聚类。STING是基于网格方法的一个例子,基于存储在网格单元中的统计信息聚类。CLIQUE是基于网格的子空间聚类算法。

10)聚类评估估计在数据集上进行聚类分析的可行性和由聚类方法产生的结果的质量。任务包括评估聚类趋势、确定簇数和测定聚类的质量。

【数据挖掘笔记十】聚类分析:基本概念和方法相关推荐

  1. 【数据挖掘笔记十二】离群点检测

    12.离群点检测 离群点检测或异常检测,是找出其行为很不同于预期对象的过程.这种对象称为离群点或异常.离群点检测和聚类分析是两项高度相关的任务.聚类发现数据集中的多数模式并据此组织数据,而离群点检测则 ...

  2. 【数据挖掘笔记九】分类:高级方法

    9.分类:高级方法 9.1 贝叶斯信念网络 贝叶斯信念网络是一种概率的图模型,不假定类条件独立性,说明联合条件概率分布,允许在变量的子集间定义类条件独立性,提供一种因果关系的图形模型,可以在其上进行学 ...

  3. 【数据挖掘笔记六】挖掘频繁模式、关联和相关性:基本概念和方法

    6.挖掘频繁模式.关联和相关性:基本概念和方法 频繁模式(frequent pattern)是频繁地出现在数据集中的模式. 6.1 基本概念 频繁模式挖掘搜索给定数据集中反复出现的联系,旨在发现大型事 ...

  4. python数据挖掘笔记】二十.KNN最近邻分类算法分析详解及平衡秤TXT数据集读取

    #2018-04-06 07:57:00 April Friday the 14 week, the 096 day SZ SSMR python数据挖掘笔记]二十.KNN最近邻分类算法分析详解及平衡 ...

  5. 【数据挖掘实验】聚类分析方法

    一.实验项目名称: 聚类分析方法 二.实验目的与要求: 在软件方面:会用Clementine软件进行聚类分析. 在理论方面:聚类分析及其常用的聚类分析方法,数据挖掘中的聚类分析. 三.实验原理: 1. ...

  6. 《Python数据挖掘:概念、方法与实践》——1.5节小结

    本节书摘来自华章社区<Python数据挖掘:概念.方法与实践>一书中的第1章,第1.5节小结,作者[美] 梅甘·斯夸尔(Megan Squire),更多章节内容可以访问云栖社区" ...

  7. 《Python数据挖掘:概念、方法与实践》一2.4 小结

    本节书摘来自华章出版社<Python数据挖掘:概念.方法与实践>一书中的第2章,第2.4节,作者[美] 梅甘·斯夸尔(Megan Squire),更多章节内容可以访问云栖社区"华 ...

  8. Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法

    Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法 把开发手册理了一遍,发现还有几个点没有记录下来,其中一个就是使用点对的粗对齐和使用参考目标的精确对齐.为了把这个学习笔记凑够 ...

  9. 数据挖掘经典十大算法_对基本概念的理解

    数据挖掘经典十大算法 一.十大经典算法 二.信息量 信息量是对信息的度量,例如时间的度量是秒,我们考虑一个离散的随机变量x时,当我们观察到的这个变量的一个具体值的时候,我们接收到的多少信息 用信息量来 ...

最新文章

  1. ACM 未解决的问题
  2. 重温JavaScript
  3. ajax跨域请求原理,Ajax跨域请求的原理(图文教程)
  4. Windows Server 2008 R2下部署OCS 2007 R2 边缘服务器
  5. Linux的cmake3的安装 cmake3编译安装成功了的 yum对于cmake3表示成功但实际没成功
  6. VS 2017 安装测试
  7. (zz)Sql Server 2005中的架构(Schema)、用户(User)、角色(Role)和登录(Login)(三)
  8. 《Maven官方文档》POM文件(一)
  9. Struts2_day01
  10. 【OGG】 RAC环境下管理OGG的高可用 (五)
  11. eclipse安装M2Eclipse插件
  12. 垃圾焚化炉发电计算机控制技术,生活垃圾焚烧发电系统优化技术研究
  13. 软件开发中需求分析的过程、层次、阶段、重点都在这里
  14. 干货分享:5年SEO经验得来的101条总结
  15. 第26讲-项目六-定期存款利息计算器
  16. 分享一份适合程序员的LaTex版本个人简历
  17. 周志华《机器学习》习题1.2
  18. 手机APP远程控制树莓派
  19. 头歌--Java入门 - 分支结构
  20. 安全狗等级保护建设服务内容有哪些?

热门文章

  1. laravel 图片流_laravel实现上传图片的两种方式小结
  2. oracle好难装,安装oracle 10g 的艰难之旅
  3. 【转】python删除小记
  4. 使用 vue.js 的一些操作记录
  5. Java-protected的使用范围
  6. 实现一个队列类,该类用两个栈来实现
  7. CString的部分实现剖析
  8. int.TryParse的使用
  9. 信息系统项目管理师备考之旅1---学习计划和方法制定
  10. 在WINCE5.0中应用CMD(比如运行PING命令)