层次聚类-概念全解

层次聚类-概念全解

需求分析:
之前学习的划分方法把对象集划分成一些互斥的群组,满足了聚类的基本要求。但在某些情况下,我们想把数据划分成不同层上群组,具有层次性。于是,层次聚类方法将数据对象组成层次结构簇的树也称聚类树

  • 根据层次分解是以自底向上(合并),还是自顶向下(分裂)方式,层次聚类方法可以进一步分为凝聚的分裂的
  • 纯粹的层次聚类方法的质量受限于:一旦合并或分裂执行,就不能修改。也就是说,如果某个合并或分裂决策在后来证明是不好的选择,该方法无法退回并更正。

两种层次聚类方法

1. 凝聚层次聚类:
采用自底向上策略,首先将每个对象作为单独的一个原子簇,然后合并这些原子簇形成越来越大的簇,直到所有的对象都在一个簇中(层次的最上层),或者达到一个终止条件。绝大多数层次聚类方法属于这一类。

2. 分裂层次聚类:
采用自顶向下策略,首先将所有对象置于一个簇中,然后逐渐细分为越来越小的簇,直到每个对象自成一个簇,或者达到某个终止条件,例如,达到某个希望的簇的数目,或者两个最近的簇之间的距离超过了某个阀值。

下图1.描述了一种凝聚层次聚类算法AGNES和一种分裂层次聚类算法DIANA对一个包含五个对象的数据集合 {a,b,c,d,e}的处理过程。
这里写图片描述
解析:

  • 初始,AGNES将每个对象自为一簇,然后这些簇根据某种准则逐步合并,直到所有的对象最终合并形成一个簇。
    例如,如果簇C1中的一个对象和簇C2中的一个对象之间的距离是所有属于不同簇的对象间欧氏距离中最小的,则C1和C2合并。
  • 在DIANA中,所有的对象用于形成一个初始簇。根据某种原则(如,簇中最近的相邻对象的最大欧氏距离),将该簇分裂。簇的分裂过程反复进行,直到最终每个新簇只包含一个对象。
  • 在凝聚或者分裂层次聚类方法中,用户可以定义希望得到的簇数目作为一个终止条件。

通常使用一种称为树状图的树形结构表示层次聚类的过程。它展示对象是如何一步步进行分组的。如下图2.显示图1.的五个对象的树状图。
这里写图片描述

算法方法的距离度量

如何度量两个簇之间的距离呢??四个广泛采用的簇间距离度量方法如下,
其中|p-p’|是两个对象或点p和p’间的距离,mi是簇Ci的均值,ni是簇Ci中对象数目。
这里写图片描述
图示如下:
图示如下

  • 当算法使用最小距离衡量簇间距离时,有时称它为最近邻聚类算法。此外,如果当最近的簇之间的距离超过某个任意的阈值时聚类过程就会终止,则称其为单连接算法
  • 当一个算法使用最大距离度量簇间距离时,有时称为最远邻聚类算法。如果当最近簇之间的最大距离超过某个任意阈值时聚类过程便终止,则称其为全连接算法

单连接算法例子
例:如图对 {1,2,3,4,5}个样本点,通过最近邻聚类算法进行凝聚层次聚类。
分析:先将五个样本都分别看成是一个簇,最靠近的两个簇是3和4,因为他们具有最小的簇间距离D(3,4)=5.0。
第一步:合并簇3和4,得到新簇集合1,2,(34),5
这里写图片描述
更新距离矩阵:原有簇1,2,5间的距离不变,分别更新新簇(34)到其他各簇的距离。修改后的距离矩阵如图所示
D(1,(34))=min(D(1,3),D(1,4))=min(20.6,22.4)=20.6
D(2,(34))=min(D(2,3),D(2,4))=min(14.1,11.2)=11.2
D(5,(34))=min(D(3,5),D(4,5))=min(25.0,25.5)=25.0
这里写图片描述 这里写图片描述
第二步:在四个簇1,2,(34),5中,最靠近的两个簇是1和5,它们具有最小簇间距离D(1,5)=7.07。所以合并簇1和5,得到新簇集合2,(34),(15)

更新聚类矩阵:原有簇2,(34)距离不变,分别更新新的簇(15)到其他各簇的距离。
D(2,(15))=min(D(2,1),D(2,5))=min(18.0,18.0)=18.0
D((34),(15))=min(D((34),1),D((34),5))=min(20.6,20.5)=20.5
这里写图片描述这里写图片描述

第三步:由D(2,(34))=11.2最小可知,簇2和(34)最靠近,合并得到新簇集合
(234),(15)
更新距离矩阵:
D((15),(234))=min(D((15),2),D((15),3),D((15),4))=18.0
这里写图片描述这里写图片描述

第四步:
这里写图片描述
凝聚层次聚类过程图所示:这里写图片描述

总结:

  • 最小和最大度量代表了簇间距离度量的两个极端。它们趋向对离群点或噪声数据过分敏感。
  • 使用均值距离和平均距离是对最小和最大距离之间的一种折中方法,而且可以克服离群点敏感性问题。
  • 尽管均值距离计算简单,但是平均距离也有它的优势,因为它既能处理数值数据又能处理分类数据。

纯粹的层次聚类方法的困难之处:

  • 层次聚类方法尽管简单,但经常会遇到合并或分裂点选择的困难。这样的决定是非常关键的,因为一旦一组对象合并或者分裂,下一步的处理将对新生成的簇进行。
  • 不具有很好的可伸缩性,因为合并或分裂的决定需要检查和估算大量的对象或簇。

层次聚类的改进:
一个有希望的方向是集成层次聚类和其他的聚类技术,形成多阶段聚类。在下面的内容中会介绍四种这类的方法:

  1. BIRCH:首先用树结构对对象进行层次划分,其中叶节点或者是低层次的非叶节点可以看作是由分辨率决定的“微簇”,然后使用其他的聚类算法对这些微簇进行宏聚类。
  2. ROCK:基于簇间的互联性进行合并。
  3. CURE:选择基于质心和基于代表对象方法之间的中间策略。
  4. Chameleon:探查层次聚类的动态建模。
  • 13
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值