一、层次聚类
1、层次聚类的原理及分类
1)层次法(Hierarchical methods)先计算样本之间的距离。每次将距离最近的点合并到同
一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个大类。不停的合
并,直到合成了一个类。其中类与类的距离的计算方法有:最短距离法,最长距离法,中
间距离法,类平均法等。比如最短距离法,将类与类的距离定义为类与类之间样本的最短
距离。
层次聚类算法根据层次分解的顺序分为:自下底向上和自上向下,即凝聚的层次聚类算法
和分裂的层次聚类算法(agglomerative 和 divisive),也可以理解为自下而上法(bottom-
up)和自上而下法(top-down)。自下而上法就是一开始每个个体(object)都是一个
类,然后根据 linkage 寻找同类,最后形成一个“类”。自上而下法就是反过来,一开始所
有个体都属于一个“类”,然后根据 linkage 排除异己,最后每个个体都成为一个“类”。
这两种路方法没有孰优孰劣之分,只是在实际应用的时候要根据数据特点以及你想要的
“类”的个数,来考虑是自上而下更快还是自下而上更快。至于根据Linkage 判断“类”
的方法就是最短距离法、最长距离法、中间距离法、类平均法等等(其中类平均法往往被
认为是最常用也最好用的方法,一方面因为其良好的单调性,另一方面因为其空间扩张/浓
缩的程度适中)。为弥补分解与合并的不足,层次合并经常要与其它聚类方法相结合,如
循环定位。
2)Hierarchical methods 中比较新的算法有 BIRCH(Balanced Iterative Reducing and Clustering
Using Hierarchies 利用层次方法的平衡迭代规约和聚类)主要是在数据量很大的时候使用,
而且数据类型是 numerical。首先利用树的结构对对象集进行划分,然后再利用其它聚类方
法对这些聚类进行优化;ROCK(A Hierarchical Clustering Algorithm for Categorical
Attributes)主要用在 categorical 的数据类型上;Chameleon(A Hierarchical Clustering
Algorithm Using Dynamic Modeling)里用到的 linkage 是 kNN(k-nearest-neighbor)算法,并
以此构建一个 graph,Chameleon 的聚类效果被认为非常强大,比 BIRCH 好用,但运算复杂
度很高,O(n^2)。
2、层次聚类的流程
凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的
簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚
型层次聚类,它们只是在簇间相似度的定义上有所不同。 这里给出采用最小距离的凝聚层
次聚类算法流程:
(1) 将每个对象看作一类,计算两两之间的最小距离;
(2) 将距离最小的两个类合并成一个新类;
(3) 重新计算新类与所有类之间的距离;
(4) 重复(2)、(3),直到所有类最后合并成一类。
1