Hierarchical clustering

前面谈到的聚类算法,最终输出的结果都是被被称为“flat”的,即平坦的,然后存在这样的情况,即数据集中是有层次的。例如,待分类的数据是3个家庭的成员,其中可能包括爷爷,奶奶,爸爸,妈妈,儿子,女儿。不同的家庭最终会形成一个树结构(这个例子可能不太合适,但是大概能说明问题,嘻嘻),在这种情况下,使用“flat”类型的聚类算法,例如k-means则无法揭示数据之间的层次关系,于是Hierarchical clustering应运而生。(Richard O. Duda的Pattern Classification这本书中,对于hierarchical clustering的定义是:If the sequence has the property that whenever two samples are in the same cluster at lever k they remain together at all higher levels, then the sequence is said to be a hierarchical clustering。感兴趣的同学可以看下哈)

Hierarchical clustering(层次聚类),顾名思义就是最终输出的cluster是可见层次结构的。最常见的对层次聚类结果的描述是一个树,称为dendrogram(系统树图),展示了数据集中的数据点的组织结构。

层次聚类策略分为两种,分别是agglomerative(自底而上的)和divisive(自上而下的)。

前者认为初始情况下数据集中数据点自成一个cluster,通过不断将最近的cluster合并,输出一系列层次清楚的聚类结果,一般对有N个数据点的数据集,第一次运算,认为有N个cluster,通过逐步合并,最终到只有一个cluster。

后者则认为初始情况下数据集是一个大的cluster,通过将cluster中最不相似的连接(一个连接对应两个数据点)断开,实现数据集的分裂。

从描述上将,层次聚类是很简单的,但是真正执行起来,需要注意的东西还很多。例如对于agglomerative策略,如何定义两个cluster之间的相似程度?divisive中选择怎样的连接断开?即使选择好了相似测度,由于频繁数据搜索带来的时间和计算复杂度也是很高的。

相比于前面谈到的聚类算法,hierarchical clustering不需要预先确定类别数,是一大优势,但也由于上述缺点,导致真正用的并没有k-means等广泛。但是这种分层的思想是可以借鉴的,下面可能会专门讲一篇文章:Multi-layer affinity propagation,就是使用了分层的思想,虽然不尽相同。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值