层次聚类分析
核心概念与类型编辑本段
层次聚类根据构建层次的方向,主要分为两种策略: ADSFAEQWER353423413434
- 凝聚式层次聚类(英文:Agglomerative hierarchical clustering):
- 最常见的类型,采用“自底向上”的策略。
- 起始点:将每个数据点视为一个独立的簇。
- 过程:迭代地找出两个最相似的簇,将其合并为一个新簇。
- 终点:直到所有点合并为一个大簇。
- 分裂式层次聚类(英文:Divisive hierarchical clustering):
- 采用“自顶向下”的策略。
- 起始点:将所有数据点视为一个大簇。
- 过程:迭代地将现有簇分裂为两个子簇。
- 终点:直到每个数据点都成为一个独立的簇。计算上通常比凝聚法更复杂。
表1:两种层次聚类策略的比较
ADFASDFAF23RQ23R
| 特征 | 凝聚式层次聚类 | 分裂式层次聚类 |
|---|---|---|
| 策略 | 自底向上(合并) | 自顶向下(分裂) |
| 起始状态 | N个簇(每个点一个簇) | 1个簇(所有点) |
| 计算复杂度 | 通常为 O(n³) 或优化后 O(n² log n) | 通常更高,可达 O(2ⁿ) |
| 常见程度 | 非常常见,实现广泛 | 较少使用 |
| 优势 | 概念直观,对小数据集有效 | 可能在高层分裂时做出更全局的决策 |
算法流程(以凝聚法为例)编辑本段
凝聚式层次聚类的标准流程包含以下关键步骤:
ADFASDFAF23RQ23R
- 计算距离矩阵:计算所有 n 个数据点两两之间的距离(英文:Distance metric)(如欧氏距离、曼哈顿距离)或不相似度(英文:Dissimilarity),形成一个 n×n 的对称矩阵。
- 初始化:将每个数据点视为一个独立的簇。
- 迭代合并:
ADSFAEQWER353423413434
a. 寻找最近簇对:在距离矩阵中,找出当前所有簇之间距离最小的两个簇 C_i 和 C_j。
b. 合并簇:将簇 C_i 和 C_j 合并为一个新簇 C_new。
c. 更新距离矩阵:删除与 C_i 和 C_j 相关的行和列,并计算新簇 C_new 与其他所有簇之间的距离。 - 终止:重复步骤3,直到所有数据点合并为一个簇,或达到预设的簇数量。
关键:连接准则
连接准则(英文:Linkage criterion)决定了如何计算合并后的新簇与其他簇之间的距离,它显著影响最终的聚类形状。
ADSFAEQWER353423413434
- 单连接(英文:Single linkage):取两个簇中最近两点之间的距离。易产生“链状”结构,对噪声敏感。
- 全连接(英文:Complete linkage):取两个簇中最远两点之间的距离。倾向于产生紧凑的、直径相似的簇。
- 平均连接(英文:Average linkage):取两个簇中所有点对距离的平均值。平衡了单连接和全连接的倾向。
- 沃德法(英文:Ward's method):最小化合并后导致的簇内方差总增量。倾向于产生大小均匀的簇,是最小方差法。
输出、解读与应用编辑本段
输出:树状图
层次聚类的结果通过树状图可视化。分支长度表示簇间合并时的距离或不相似度。通过“切割”树状图(在特定高度画一条水平线),可以得到不同粒度的聚类结果。
ADFASDFAF23RQ23R
主要应用领域
优点与局限性编辑本段
优点
局限性
实现与软件编辑本段
层次聚类是主流统计和数据分析软件的标准功能:
ADSFAEQWER353423413434
- 编程语言/库:
- R语言:
stats包中的hclust()函数(凝聚法)和diana()函数(分裂法)。 - Python:
SciPy库的scipy.cluster.hierarchy模块,或scikit-learn的AgglomerativeClustering类。 - MATLAB:
linkage和cluster函数。
- R语言:
- 专业软件:SPSS, SAS, Cluster 3.0, MeV 等。
参考资料编辑本段
- Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning: Data Mining, Inference, and Prediction (2nd ed.). Springer.
- Müllner, D. (2011). Modern hierarchical, agglomerative clustering algorithms. arXiv preprint arXiv:1109.2378.
- Ward, J. H. (1963). Hierarchical Grouping to Optimize an Objective Function. Journal of the American Statistical Association, 58(301), 236–244.
- Kaufman, L., & Rousseeuw, P. J. (1990). Finding Groups in Data: An Introduction to Cluster Analysis. John Wiley & Sons.
- R Core Team (2023). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.
- Jain, A. K., Murty, M. N., & Flynn, P. J. (1999). Data clustering: a review. ACM Computing Surveys, 31(3), 264–323.
- Kassambara, A. (2017). Practical Guide to Cluster Analysis in R: Unsupervised Machine Learning. STHDA.
- Xu, R., & Wunsch, D. (2005). Survey of clustering algorithms. IEEE Transactions on Neural Networks, 16(3), 645–678.
附件列表
词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
