系统聚类(又称层次聚类)是一种将数据对象按相似性进行分组的非监督学习方法,其核心思想是通过构建层次结构模型来展现数据之间的相似性关系。以下是系统聚类的关键要点:
一、基本原理
层次结构模型 系统聚类通过构建树状图(如谱系图)展示数据的分层结构,从每个样本自成一类开始,逐步合并相似样本,直至形成最终聚类结果。
两种主要方法
自底向上(合并法): 初始时每个样本为独立类,计算距离后逐步合并距离最近的样本,类似“逐层堆积”的过程。 自顶向下(分裂法)
二、关键步骤
数据预处理 包括标准化、缺失值处理等,确保数据适合聚类分析。
距离度量
常用欧氏距离、曼哈顿距离等,需根据数据特性选择合适度量方式。
聚类算法实现
使用Python的`scipy.cluster.hierarchy`或`scikit-learn`库实现层次聚类,例如:
```python
from scipy.cluster.hierarchy import dendrogram, linkage
import numpy as np
示例数据
X = np.array([[1, 2], [2, 3], [6, 7], [10, 11]])
计算链接矩阵
Z = linkage(X, 'euclidean')
绘制树状图
dendrogram(Z)
```
三、应用领域
生物学: 基因表达数据分析、物种分类; 市场细分
社交网络:社区发现、关系网络分析。
四、优势与局限性
优势 能展示数据的内在层次结构,便于理解数据关系; 适用于小规模数据集。 局限性
对参数选择敏感(如距离度量、聚类数);
大规模数据计算复杂度较高。
五、与K均值聚类的区别
K均值:需预先设定聚类数,通过迭代优化划分;
系统聚类:通过层次结构动态确定聚类数,无需预设。
系统聚类通过树状图直观展示分类过程,适合需要理解数据层次关系的场景,但需结合领域知识选择合适方法与参数。