Hierarchical Clustering.
层次聚类Hierarchical Clustering是对数据集进行层次的分解。
根据分解的顺序,层次聚类可以分为凝聚的agglomerate和分裂的divisive。
层次聚类最终得到数据对象组成的一颗聚类的树。
层次聚类的局限在于,一旦一次合并或分裂被执行,就不能修改。
本文目录:
- Agglomerative Nesting
- Divisive Analysis
- 簇间距离
1. Agglomerative Nesting
Agglomerative Nesting(AGNES)是一种凝聚的层次聚类算法。
凝聚的方法是一种自底向上的方法。一开始将每一个数据点作为一簇,然后相继合并相邻的簇,直到所有的数据点合并为一簇或满足终止条件。
2. Divisive Analysis
Divisive Analysis(DIANA)是一种分裂的层次聚类算法。
分裂的方法是一种自顶向下的方法。一开始将所有数据点置于一个簇,每一次迭代把一个簇分裂成更小的簇,直至每个数据单独为一簇或满足终止条件。
3. 簇间距离
假设两个簇$C_i$和$C_j$分别有$n_i$和$n_j$个数据,其质心为$m_i$和$m_j$,
普遍采用的簇间距离度量方法:
- 最小距离:\(d_{min}(C_i,C_j)=min_{(p \in C_i,p' \in C_j)}\mid p-p' \mid\)
- 最大距离:\(d_{max}(C_i,C_j)=max_{(p \in C_i,p' \in C_j)}\mid p-p' \mid\)
- 平均距离:\(d_{avg}(C_i,C_j)=\frac{1}{n_in_j} \sum_{p \in C_i}^{} {\sum_{p' \in C_j}^{} {\mid p-p' \mid}}\)
- 均值距离:\(d_{mean}(C_i,C_j)= \mid m_i-m_j \mid\)