跳到主要内容

系统聚类(层次聚类)

一、直观理解:从每人自成一派,到逐步合并成家族树​

层次聚类(系统聚类)不先拍板只有 KK 类,而是构建一棵合并(或分裂)的树:

  • 凝聚(常用):nn 个样本各是一簇 → 每次合并最相近的两簇 → 直到剩一簇;
  • 分裂:全体一簇 → 不断拆开。

树状图(dendrogram)纵轴是合并距离,横切一刀就得到某种 KK。像家族谱系:先是个人,再是小家庭,再是大家族——不同高度对应不同粒度。

二、适用场景与优缺点​

类型说明
适用场景样本量不太大(通常 nn 数百至一两千);需要多尺度结构;要树状图展示;探索性分群。
核心优点不必预先严格定 KK;结果层次丰富;连接方式可解释;无随机初值。
局限与缺点时间/内存常 O(n2)O(n^2) 或更高;合并不可逆,早期错误会传导;连接准则敏感;大样本吃力。

三、核心原理​

1. 样本距离​

先算 n×nn\times n 距离矩阵,如欧氏、相关系数距离 1−∣r∣1-|r| 等。

2. 簇间连接(linkage)​

方法簇 A,BA,B 距离特点
singlemin⁡a∈A,b∈Bd(a,b)\min_{a\in A,b\in B}d(a,b)易链状粘连
completemax⁡d(a,b)\max d(a,b)偏紧致,怕离群
average平均配对距离较折中
ward合并导致的 SSE 增量偏球状,常好用
centroid中心距离可能逆反

Ward 目标与 K-means 类似地倾向方差小的簇。

3. 切树​

选定 KK 或高度阈值,从 dendrogram 取划分。

四、关键决策​

决策点建议
linkage先 ward(欧氏)或 average;对比 complete
距离与 linkage 匹配;Ward 需欧氏系
标准化通常需要
KK看树状大跳跃 + 轮廓系数
规模nn 过大先抽样或改 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);

六、如何解释结果​

  1. 树状图跳跃:哪一层合并代价突增,对应自然簇数;
  2. 簇成员列表:小样本可直接点名;
  3. linkage 敏感性:换准则簇是否大变;
  4. 与 K-means 对照:一致性高则结构稳健;
  5. 报告:距离、linkage、切法、KK、树图与剖面。

七、常见误区​

1. 把 single linkage 当默认​

易出现“链条效应”,把长条噪声粘成一类。

2. Ward 配非欧氏距离乱用​

理论与实现都要小心。

3. nn 上万硬算全连接矩阵​

内存与时间都爆。

4. 树图画了却不解释高度含义​

纵轴是合并距离,要结合量纲/标准化说明。

5. 一次合并错误无法回头却不稳健性检查​

可 bootstrap 样本或对比算法。

附:建模论文中的写法要点​

  1. 问题对应:用一两句话说明为何该方法匹配题目数据结构与目标(分类/分群/排序/效率)。
  2. 符号与步骤:按“输入 → 预处理 → 核心计算 → 输出指标”列出编号步骤,公式与代码变量名一致。
  3. 参数表:列出全部可调参数、取值、选取依据(CV、信息准则、业务约束或灵敏度)。
  4. 结果呈现:主结果用表格;辅以 1–2 张图(边界、树状图、得分条形图、效率分解等)。
  5. 稳健性:至少做一种扰动——删点、换权重、换距离、换初值或换阈值,观察结论是否保持。
  6. 局限:主动写明假设(球状簇、线性可分、CRS、完全补偿等)及适用边界,避免被质询时被动。

若主方法结论与合理基线(如 K-means 对 GMM、加权和对 TOPSIS、CCR 对 BCC)严重冲突,应回到数据质量与指标方向检查,而不是只报告“更好看”的一种结果。

附:计算检查清单​

在提交结果前,建议按下列清单快速自检:

  1. 输入矩阵:行/列含义是否与正文一致,有无缺失、重复行、单位混用。
  2. 方向与尺度:极小型是否已正向化;聚类/距离类是否已标准化;评价类权重是否归一。
  3. 参数来源:所有阈值、簇数、核宽、理想解定义能否在正文找到依据。
  4. 数值稳定:协方差/相关是否接近奇异;DEA 线性规划是否全部求解成功;对数/除零是否加保护。
  5. 随机性:涉及随机初值的算法是否固定种子并报告多次结果的稳定性。
  6. 验证协议:分类任务是否严格隔离测试集;重采样/SMOTE 是否仅用于训练折。
  7. 图表编号:主结论表与图在正文中被引用,而不是只放附录。
  8. 可复现:给出软件版本(如 MATLAB R20xx)与关键函数名,使读者能重跑最小示例。

不满足清单中任一项时,优先修正流程,再讨论“方法先进性”。对综合评价题,额外检查:更换一种合理权重后,前三名是否大体稳定;若剧烈跳动,应降低对精细名次的措辞强度。

八、小结​

系统聚类通过逐步合并(或分裂)生成层次结构,树状图是其核心产出,适合中小样本的探索性分群。

选好距离与 linkage,用树图与轮廓共同定粒度,并与划分式聚类交叉验证结论。