一、层次聚类
1、层次聚类的原理及分类
1)层次法( Hierarchical methods )先计算样本之间的距离。每次将距离最近的点合并到同
一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个大类。不停的合并,
直到合成了一个类。 其中类与类的距离的计算方法有:最短距离法,最长距离法,
法,类平均法等。比如最短距离法,将类与类的距离定义为类与类之间样本的最短距离。
层次聚类算法根据层次分解的顺序分为: 自下底向上和自上向下, 即凝聚的层次聚类算法和
bottom-up )
object )都是一个类,然后
这两种路
“类”的个数,
分裂的层次聚类算法( agglomerative 和 divisive ),也可以理解为自下而上法(
和自上而下法( top-down )。自下而上法就是一开始每个个体(
属于一个“类”,然后根据
中间距离
根据 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 )算法,并以此构建一个
Chameleon 的聚类效果被认为非常强大,比 BIRCH 好用,但运算复杂度很高,
O(n^2) 。
graph ,
2、层次聚类的流程
凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,
直到所有对象都在一个簇中, 或者某个终结条件被满足。
绝大多数层次聚类属于凝聚型层次
聚类,它们只是在簇间相似度的定义上有所不同。 这里给出采用最小距离的凝聚层次聚类算法
流程:
(1) 将每个对象看作一类,计算两两之间的最小距离;
(2) 将距离最小的两个类合并成一个新类;
(3) 重新计算新类与所有类之间的距离;
(4) 重复 (2) 、 (3) ,直到所有类最后合并成一类。
聚类的效果如下图,黑色是噪音点:
另外我们可以看出凝聚的层次聚类并没有类似基本 K 均值的全局目标函数, 没有局部极小问题或
是很难选择初始点的问题。 合并的操作往往是最终的, 一旦合并两个簇之后就不会撤销。当然其
计算存储的代价是昂贵的。