第4章 实操中的层次聚类
在本章中,我们将从与数据集等效的单个聚类(分裂方法)或多个聚类开始,讨论层次聚类的概念,这是一种强大且广泛的技术,用于生成完整的聚类配置层次结构。聚类等于样本数量(凝聚法),当需要一次性分析整个分组过程以便理解如何将较小的聚类合并为较大的聚类时,此方法特别有用。
本章将着重讨论以下主题。
- 层次聚类策略(凝聚和分裂)。
- 距离度量和连接方法。
- 树状图及其解释。
- 凝聚聚类。
- 同表型相关性系数作为一种性能指标。
- 连通性约束。
4.1 技术要求
本章中的代码需求如下。
- Python 3.5+(强烈推荐Anaconda发行版)。
- 库。
- SciPy 0.19+。
- NumPy 1.10+。
- scikit-learn 0.20+。
- pandas 0.22+。
- Matplotlib 2.0+。
- seaborn 0.9+。
数据集可以通过UCI数据集获得,除了在加载阶段添加列名外,不需要任何预处理。
示例代码可在本书配套的代码包获得。
4.2 聚类层次结构
在前几章中,我们分析了聚类算法,其中输出的是基于预定义的聚类数量或参数集、精确基础几何结果的单个分段。另一方面,层次聚类生成一系列聚类配置,这些配置可以排列在树状结构中。特别地,我们假设有一个包含n个样本的数据集X:
凝聚算法首先将每个样本分配给一个聚类Ci,然后在每个步骤中合并两个聚类,直到生成一个最终聚类(对应于X):
在前面的式子中,聚类Ci和Cj合并为Ck,因此在第二步中获得n−1个聚类。该过程将继续进行,直到剩余的两个聚类合并为包含整个数据集的单个块。而 ...
Get Python无监督学习 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.