系统聚类(层次聚类)
一、直观理解:从每人自成一派,到逐步合并成家族树
层次聚类(系统聚类)不先拍板只有 类,而是构建一棵合并(或分裂)的树:
- 凝聚(常用): 个样本各是一簇 → 每次合并最相近的两簇 → 直到剩一簇;
- 分裂:全体一簇 → 不断拆开。
树状图(dendrogram)纵轴是合并距离,横切一刀就得到某种 。像家族谱系:先是个人,再是小家庭,再是大家族——不同高度对应不同粒度。
二、适用场景与优缺点
| 类型 | 说明 |
|---|---|
| 适用场景 | 样本量不太大(通常 数百至一两千);需要多尺度结构;要树状图展示;探索性分群。 |
| 核心优点 | 不必预先严格定 ;结果层次丰富;连接方式可解释;无随机初值。 |
| 局限与缺点 | 时间/内存常 或更高;合并不可逆,早期错误会传导;连接准则敏感;大样本吃力。 |
三、核心原理
1. 样本距离
先算 距离矩阵,如欧氏、相关系数距离 等。
2. 簇间连接(linkage)
| 方法 | 簇 距离 | 特点 |
|---|---|---|
| single | 易链状粘连 | |
| complete | 偏紧致,怕离群 | |
| average | 平均配对距离 | 较折中 |
| ward | 合并导致的 SSE 增量 | 偏球状,常好用 |
| centroid | 中心距离 | 可能逆反 |
Ward 目标与 K-means 类似地倾向方差小的簇。
3. 切树
选定 或高度阈值,从 dendrogram 取划分。
四、关键决策
| 决策点 | 建议 |
|---|---|
| linkage | 先 ward(欧氏)或 average;对比 complete |
| 距离 | 与 linkage 匹配;Ward 需欧氏系 |
| 标准化 | 通常需要 |
| 看树状大跳跃 + 轮廓系数 | |
| 规模 | 过大先抽样或改 K-means |
五、MATLAB 示例
rng(2);
X = [randn(15,2); randn(15,2)+[3 0]; randn(15,2)+[1.5 2.5]];
Xz = zscore(X);
labels = compose("P%d", 1:size(Xz,1));
Y = pdist(Xz, "euclidean");
Z = linkage(Y, "ward");
figure;
dendrogram(Z, 0, "Labels", labels, "ColorThreshold", "default");
title("Ward 系统聚类树状图");
ylabel("合并距离");
xlabel("样本");
% 按 K 切分
K = 3;
idx = cluster(Z, "MaxClust", K);
figure; gscatter(Xz(:,1), Xz(:,2), idx);
title("层次聚类划分 K=3");
% 不同 linkage 对比 cophenetic 相关(拟合质量)
methods = ["single","complete","average","ward"];
for m = methods
Zm = linkage(Y, m);
c = cophenet(Zm, Y);
fprintf("%s: cophenetic = %.3f\n", m, c);
end
% 轮廓选 K
eva = evalclusters(Xz, "linkage", "silhouette", "KList", 2:6);
fprintf("轮廓建议 K=%d\n", eva.OptimalK);
六、如何解释结果
- 树状图跳跃:哪一层合并代价突增,对应自然簇数;
- 簇成员列表:小样本可直接点名;
- linkage 敏感性:换准则簇是否大变;
- 与 K-means 对照:一致性高则结构稳健;
- 报告:距离、linkage、切法、、树图与剖面。
七、常见误区
1. 把 single linkage 当默认
易出现“链条效应”,把长条噪声粘成一类。
2. Ward 配非欧氏距离乱用
理论与实现都要小心。
3. 上万硬算全连接矩阵
内存与时间都爆。
4. 树图画了却不解释高度含义
纵轴是合并距离,要结合量纲/标准化说明。
5. 一次合并错误无法回头却不稳健性检查
可 bootstrap 样本或对比算法。
附:建模论文中的写法要点
- 问题对应:用一两句话说明为何该方法匹配题目数据结构与目标(分类/分群/排序/效率)。
- 符号与步骤:按“输入 → 预处理 → 核心计算 → 输出指标”列出编号步骤,公式与代码变量名一致。
- 参数表:列出全部可调参数、取值、选取依据(CV、信息准则、业务约束或灵敏度)。
- 结果呈现:主结果用表格;辅以 1–2 张图(边界、树状图、得分条形图、效率分解等)。
- 稳健性:至少做一种扰动——删点、换权重、换距离、换初值或换阈值,观察结论是否保持。
- 局限:主动写明假设(球状簇、线性可分、CRS、完全补偿等)及适用边界,避免被质询时被动。
若主方法结论与合理基线(如 K-means 对 GMM、加权和对 TOPSIS、CCR 对 BCC)严重冲突,应回到数据质量与指标方向检查,而不是只报告“更好看”的一种结果。
附:计算检查清单
在提交结果前,建议按下列清单快速自检:
- 输入矩阵:行/列含义是否与正文一致,有无缺失、重复行、单位混用。
- 方向与尺度:极小型是否已正向化;聚类/距离类是否已标准化;评价类权重是否归一。
- 参数来源:所有阈值、簇数、核宽、理想解定义能否在正文找到依据。
- 数值稳定:协方差/相关是否接近奇异;DEA 线性规划是否全部求解成功;对数/除零是否加保护。
- 随机性:涉及随机初值的算法是否固定种子并报告多次结果的稳定性。
- 验证协议:分类任务是否严格隔离测试集;重采样/SMOTE 是否仅用于训练折。
- 图表编号:主结论表与图在正文中被引用,而不是只放附录。
- 可复现:给出软件版本(如 MATLAB R20xx)与关键函数名,使读者能重跑最小示例。
不满足清单中任一项时,优先修正流程,再讨论“方法先进性”。对综合评价题,额外检查:更换一种合理权重后,前三名是否大体稳定;若剧烈跳动,应降低对精细名次的措辞强度。
八、小结
系统聚类通过逐步合并(或分裂)生成层次结构,树状图是其核心产出,适合中小样本的探索性分群。
选好距离与 linkage,用树图与轮廓共同定粒度,并与划分式聚类交叉验证结论。