欢迎来到层次化聚类的世界!

在我们探索无监督学习(Unsupervised Learning)的旅程中,之前已经介绍了 K-means 聚类。虽然 K-means 非常强大,但它有一个主要“痛点”:在开始之前,你必须先告诉计算机你到底想要多少个群组(K 值)!如果你根本不知道呢?或者,如果你想观察群组如何嵌套在更大的群组中呢?

这正是层次化聚类(Hierarchical Clustering)大显身手的地方。在本章中,我们将学习如何建立一棵数据“树”,让我们在分析完成,才决定聚类的数量。精算师非常喜欢这种方法,因为它提供了一张清晰的视觉地图,展示数据点之间是如何相互关联的。让我们马上开始吧!

1. 核心概念:聚合式聚类(Agglomerative Clustering)

最常见的层次化聚类版本是聚合式(Agglomerative)聚类。别被这术语吓到了,它其实就是指“由下而上(bottom-up)”的过程。

想象一场同学会,刚开始每个人都是陌生人。首先,最像的两个人开始交谈;接着,下两位最相似的人(或小团体)加入。最终,所有人都合并成一个巨大的群体。

算法是如何运作的(逐步说明):

1. 从 \(n\) 个观测值开始。将每个单独的观测值视为一个独立的簇(所以一开始你有 \(n\) 个簇)。
2. 计算所有簇两两之间的不相似度(dissimilarity)(距离)。
3. 找出最相似(距离最小)的两个簇,并将它们合并成一个新的簇。现在你剩下 \(n-1\) 个簇。
4. 重复步骤 2 和 3,直到所有观测值都被合并成一个包含一切的巨大簇。

小贴士:在层次化聚类中,我们不只是在分组;我们还记录了簇合并的顺序距离。这段历史正是让此方法如此特别的原因。

2. 树状图(Dendrogram):你的视觉地图

层次化聚类的输出是一个精美的树状图,称为树状图(Dendrogram)。这是解读结果时最重要的工具。

如何解读树状图:
- 底部的叶片(leaves)代表个别的观测值。
- 当你往树的上方移动时,叶片会合并成分支(branches)
- 合并处的垂直高度(连接两个分支的水平线)代表那两个簇有多不同。合并位置越高,表示两群的差异越大。
- 关键法则:你不能仅根据叶片在水平方向上的接近程度来判断相似性,你必须查看它们第一次共享共同分支时的垂直高度。

选择聚类数量

与 K-means 不同,我们不需要在一开始就选择 \(K\)。相反,我们查看树状图,决定在哪个高度“切开”这棵树。你划一条水平线,它穿过多少条垂直线,就代表你产生了多少个群组。

类比:想象这棵树状图是一棵真实的树。如果你在某个高度把树干锯断,掉到地上的分开树枝数量,就是你的群组数量!

重点总结:一张树状图可以代表从 1 到 \(n\) 的任何群组数量。你只需选择对你的业务问题最有意义的“切割”高度即可。

3. 连接法(Linkage):我们如何衡量群组间的距离?

我们知道如何测量两个点之间的距离(通常是欧几里得距离,Euclidean distance),但如何测量一个单点与一点之间的距离?或是两点之间呢?这就是所谓的连接法(Linkage)

SRM 课程中最常见的四种连接类型是:

1. 完整连接(Complete / Max):两个簇之间的距离定义为两群中最远两点之间的距离。这往往会产生边界清晰、紧凑的群组。
2. 单一连接(Single / Min):距离定义为两群中最近两点之间的距离。警告:这可能会导致“链式效应(chaining)”,即群组呈现细长的线条形状,而不是整齐的圆形。
3. 平均连接(Average):距离定义为簇 A 与簇 B 中所有点两两距离的平均值。这非常受欢迎,因为它是一个“折中方案”。
4. 重心连接(Centroid):距离是根据两个簇的重心(centroids,几何中心)来计算的。注意:这可能会导致一个奇怪的瑕疵,称为“反转(inversion)”,即合并发生的高度比之前的合并还低,这会导致树状图难以阅读。

速查表:
- 完整与平均连接:通常较受推崇;它们能建立更平衡的树。
- 单一连接:可能会产生“拖曳状”的群组。
- 重心连接:某些领域会用到,但可能导致杂乱的“反转”问题。

4. 不相似度衡量指标的选择

虽然欧几里得距离(直线距离)是默认值,但它并非唯一选择。有时我们会使用基于相关性的距离(Correlation-based distance)

何时使用什么?
- 如果你关心数值的量级(例如总销售额),请使用欧几里得距离
- 如果你关心数据的模式形态(例如:两档股票是否同时涨跌,即便其中一个是 10 美元而另一个是 100 美元),请使用基于相关性的距离

你知道吗?数据的标准化(scaling)在这里极为重要!如果一个变量是“收入”(以千美元计),另一个是“年龄”(以年计),那么“收入”这个变量会因为数值较大而主导距离计算。通常我们在聚类前会将变量标准化,使其平均值为 0,标准差为 1。

5. 比较层次化聚类与 K-means 聚类

学生经常问:“哪一个比较好?”答案是:“视情况而定!”

K-means 的优势:

- 当你有非常庞大的数据集时(通常速度较快)。
- 当你对所需的群组数量有明确概念时。

层次化聚类的优势:

- 当你想观察潜在的结构或嵌套关系时。
- 当你不想在一开始就决定特定的 \(K\) 值时。
- 当你想要视觉化呈现(树状图)给利益相关人看时。

常见陷阱:不要因为层次化聚类看起来比较复杂,就以为它一定“比较准确”。如果数据本身没有自然的群组结构,两种方法都可能会“出错”!

6. 总结与最后建议

层次化聚类是一种灵活且视觉化的数据分组方式。请记住考试所需的这些重点:

- 它是聚合式的(由下而上)。
- 树状图是主要的视觉化工具。
- 树状图上的高度代表不相似度。
- 连接法(完整、平均、单一、重心)决定了我们如何衡量簇间的距离。
- 数据标准化通常是必要的,以确保所有变量的贡献权重相等。

如果连接法让你觉得有点抽象,别担心!只要记住“完整”会寻找最远邻居,“单一”会寻找最近邻居。大多数情况下,“完整连接”和“平均连接”是产生干净、实用树状图的首选。

你一定做得到的!层次化聚类不过是一种整理混乱房间的方法:先把相似的东西放在一起,再把这些小组放进更大的箱子,直到一切都被归类为止。保持这个画面在心中,你很快就能掌握这一章!