
在我们周围浩瀚的数据海洋中,最基本的挑战之一是发现有意义的结构和秩序。我们如何才能从一堆独立的数据点,走向对它们之间关系的连贯理解?凝聚式聚类提供了一个强大而直观的答案。它是一种自下而上工作的层次化方法,从单个元素开始,有条不紊地构建一个嵌套的关系树,就像历史学家从零散的手稿中拼凑出一部家族史一样。这种方法不仅仅是将项目分门别类;它还揭示了这些类别本身是如何关联的,从而为数据的内在结构提供了一个丰富、多层次的视角。
本文旨在解决该方法核心的几个关键问题:这种自下而上的过程是如何运作的?在此过程中做出的关键决策——比如如何定义“最接近”——又是如何影响最终结果的?通过探索这些问题,您将对这一重要的数据分析工具有一个深刻的理解。首先,在“原理与机制”部分,我们将剖析算法,探讨作为簇形成哲学指南的不同连接标准,并学习如何解读最终生成的树状图。随后,在“应用与跨学科联系”部分,我们将见证该方法非凡的通用性,看它如何揭示生物学中的生命之树、城市中隐藏的结构,甚至是机器学习模型本身的家族谱系。
想象你是一位历史学家,面对一屋子新发现的、未标记的手稿。你的首要任务是整理它们。你不会只是随机堆放;你会从阅读片段、比较笔迹、纸张类型和墨水开始。你会找到两份最相似的文档,将它们放在一起。然后,你可能会发现另一份与这对文档非常相似的文档,并将其归为一组。或者,你可能会发现另外两份完全不同的文档,它们自己形成了一个紧密的配对。你会慢慢地、有条不紊地为这些手稿建立一个家族树,从单个项目到小组,再到更大的分支,最后形成一个包罗万象的集合。
这种自下而上的组织过程正是凝聚式层次聚类的精髓。它是一种从单个元素向上构建层次结构直至整体的算法,揭示了每个尺度下的嵌套关系。它不仅仅是把东西放进盒子里;它还向我们展示了盒子本身是如何关联的。
其过程大纲异常简单。我们从一组项目开始——无论是细胞中的蛋白质、具有不同表达谱的基因,还是具有独特临床特征的患者——以及一种衡量任意两者之间差异性的方法。低的差异性分数意味着高的相似性,即它们之间的“距离”很小。
该算法从将每个项目视为其自身的一个小簇(仅包含一个成员)开始。然后,它遵循一个单一、重复的指令:
让我们以生物信息学中的一个简单案例为例,我们希望根据基因的表达模式对基因进行分组。假设我们有一个包含四个基因的差异性矩阵,该矩阵是根据它们在各种实验中的不同行为得出的。第一步很简单:我们只需扫描矩阵寻找最小的数字。如果最小的差异性(比如 )是在基因 和基因 之间,我们就将它们合并。我们的第一个簇 就诞生了。
但这立刻引出了该方法的一个关键且决定性的问题:既然我们有了一个包含两个基因的“家族”,我们如何衡量它与另一个基因(比如 )的距离?这个家族的位置是由其最外向的成员、最孤僻的成员,还是其平均成员来定义?你选择的答案决定了最终层次结构的整个形态和意义。这些不同的答案被称为连接标准。
选择一种连接标准,就像是为群体应如何互动选择一种哲学。没有唯一的“正确”选择;每种选择都揭示了数据结构的不同方面,并且每种选择都有其自身的特性和偏见。
单链接标准是永远的乐观主义者。它将两个簇之间的距离定义为它们最接近的两个成员之间的距离。想象两个大岛屿;它们之间的单链接距离是最短的轮渡航程,即从一个海岸最近的点到另一个海岸最近的点。在数学上,对于两个簇 和 :
这种“最近邻”方法会产生一个深远的结果:它非常擅长识别长的、蜿蜒的或丝状的结构。如果你有两个密集的点群,由一个稀疏的“桥”连接着其他点,单链接会乐于跨越这个桥,从一个点跳到另一个点,最终将两个主要群组连接成一个大的、细长的簇。这被称为链式效应。 在与另一个数学领域的优美联系中,单链接产生的层次结构与数据点的最小生成树 (MST) 的结构直接等价——这是一种深刻而优雅的统一。
与此形成鲜明对比的是,全链接是一个悲观主义者。它通过最远的一对成员(每个簇各一个)来定义簇间距离。这是从一个群体到另一个群体所需的最长、最艰辛的旅程。
让我们在实践中看看这一点。想象一下,我们已经将两种蛋白质 P4 和 P5 合并成一个簇 。为了找到它与另一种蛋白质 P3 的距离,我们查看原始距离 和 。全链接认为新的距离是 。 这种方法对最不相似的成员高度敏感,因此它强烈抵制合并相距遥远的群体。结果是倾向于产生非常紧凑、致密、大致呈球形的簇,并且它对单链接特有的链式效应具有很强的鲁棒性。
介于这两个极端之间的是务实的外交家:平均链接。它通过计算所有可能的点对(每个簇中各取一点)之间距离的算术平均值来计算两个簇之间的距离。
这通常是一种稳定且有效的折衷方案。它对异常值的敏感度低于全链接,但比单链接更不易产生链式效应。让我们用一个具体的患者表型例子来追踪这种方法,这些表型由二维平面上的点表示。假设我们已经将患者 C 和 D 合并为一个簇 。要找到它与患者 E 的距离,我们不只是看最近或最远的距离;我们平均它们的个体距离:。如果 且 ,则新的平均链接距离为 。这种平衡的方法在其决策中考虑了两个簇的整体结构。
我们也可以从更物理的意义上思考簇,想象它们的质心,即中心点。中心点链接将两个簇之间的距离定义为它们中心点之间的简单欧氏距离。这是一个非常直观的想法。
然而,它隐藏着一个奇异而迷人的怪癖。想象两个大小相等但相距很远的大簇 和 。它们的联合中心点将恰好位于连接它们各自中心点的线段的中点。现在,假设第三个小簇 恰好非常接近那个中点。当我们合并 和 时,它们的新中心点实际上可能比 或 原本距离 更近!这会导致树状图倒置,即后一次合并发生在比前一次更小的差异性值上。这就像通过联合两个遥远的王国,它们的新首都突然就坐落在一个以前被认为是偏远的小村庄旁边。
这种物理直觉在 Ward 方法中得到了提炼。Ward 链接的运作原则是最小化“能量”或“信息损失”。在每一步,它都合并那一对能导致总簇内平方和(一种方差度量)增加最小的簇。这种方法强烈偏向于创建紧凑、各向同性(球形)的簇,因为这是最“节能”的配置。Ward 方法树状图上的高度不是一个简单的距离,而是总方差的增加量,这赋予了它独特的物理释义。
整个过程的最终输出是一个称为树状图的树形图。它是数据科学中最优雅、信息最丰富的可视化之一。底部的叶子是我们的单个项目。随着我们向上移动,水平线连接各个分支,代表两个簇的合并。
解读树状图最重要的规则是:垂直轴代表一切,而水平轴毫无意义。一次合并的垂直高度代表算法在该差异性水平上被迫将下方的簇组合在一起。叶子的从左到右的顺序是完全任意的;你可以在一个合并点翻转任意两个姐妹分支,而不会改变树状图的任何意义,就像你可以在家谱图上交换孩子的顺序而不改变他们的血统一样。
任意两个项目 和 首次在同一簇中连接的高度称为它们的共表征距离,。两个连续合并之间较长的垂直分支表示差异性的巨大跳跃。这是一个强烈的信号,表明刚刚形成的簇是“自然的”,并且与其他所有簇都很好地分开了。
值得注意的是,由单调聚类(如单链接、全链接或平均链接)产生的所有共表征距离的集合构成了一个超度量。这意味着它遵循一个更强版本的三角不等式:对于任意三个点 ,距离 不大于 和 的最大值。这意味着在由树状图定义的“空间”中,所有三角形要么是等腰的,要么是等边的。这种优美的几何结构是聚类层次化性质的直接结果。
树状图是我们数据的地图,但它是一张被强行塑造成树形结构的地图。我们如何知道它是否忠实地再现了原始的差异性景观?
这可以通过共表征相关系数 (CCC) 来衡量。这个想法很简单。对于所有项目对,我们有两列数字:原始的差异性 ,以及来自树状图的共表征距离 。CCC 就是这两列数字之间的皮尔逊相关系数。
如果 CCC 接近 ,这意味着树状图显示的层次结构很好地保留了原始的成对距离。大的原始距离对应于大的共表征距离(较晚的合并),小的原始距离对应于小的共表征距离(较早的合并)。如果 CCC 接近 ,则意味着层次结构严重扭曲了原始关系。通过比较用不同连接标准构建的树状图的 CCC,我们可以就哪种“哲学”最能捕捉我们特定数据的结构做出明智的选择。
这个优雅的自下而上过程有着令人望而生畏的计算成本。第一步就要求我们知道所有项目对之间的距离。对于一个有 个项目的数据集,这需要计算 个距离。对于一个中等规模的数据集,比如一百万个对象(例如,分析来自大型生物银行的遗传数据),这意味着要计算和存储近 5000 亿个差异性值。在标准精度下,这将需要大约 4 TB 的计算机内存——这远远超出了除了最专业的超级计算机之外的所有计算机的能力范围。
此外,该算法最直接的实现需要与 甚至 成正比的步数。对于 , 算法将需要大约 次操作,这是一项计算上令人望而却步的任务。虽然存在可以将内存减少到 并且在某些特殊情况下将时间复杂度降低的巧妙算法,但对于一般数据,问题的二次性质仍然是一个根本性的障碍。
这不是绝望的理由,而是一剂健康的现实主义。凝聚式聚类为我们提供了关于数据中层次结构含义的基础性理解。它教会我们如何定义群体间“距离”所带来的深远后果。虽然对于海量数据集我们可能会转向其他更具可扩展性的方法,但这里学到的原理——连接、树状图和层次表示——对于任何试图在复杂世界中寻找结构的人来说,都是工具箱中不可或缺的一部分。
我们花了一些时间来拆解凝聚式聚类的内部机制,了解它如何一丝不苟地自下而上构建一个群组的层次结构。诚然,这是一套巧妙的机械装置。但一台机器的趣味性取决于它能做什么。所以现在,我们提出真正的问题:这场发现之旅,这场持续的合并与分组,究竟将我们引向何方?
答案是惊人地广泛。事实证明,这种“将相似事物分组”的简单过程是科学和生活中最基本的活动之一。层次聚类的真正力量不在于其自身的僵硬规则,而在于我们能够创造性地定义我们正在聚类的“事物”以及它们“相似”意味着什么的自由。树状图不仅仅是一张图表;它是一个新的镜头,通过它我们可以观察世界隐藏的结构,从生命之树的分支到我们思想的架构本身。
也许层次聚类最经典、最直观的应用是在生物学中。远在计算机出现之前,像 Carl Linnaeus 这样的分类学家就根据共享的形态特征对物种进行分组。马和驴比它们中的任何一个都更像彼此,而不是像蜥蜴;它们在层次结构的较低层次被合并成一个“簇”(即马属)。这个过程如果系统地应用,就会产生我们熟悉的生命之树——一个本质上就是树状图的结构。
现代生物学已将这一思想带到了分子水平。我们现在可以查看来自单个组织样本的数千个基因的表达水平,而不仅仅是观察骨骼结构。在这个高维世界中,我们常常发现标准的欧几里得距离并非最佳的相似性度量。两个样本可能具有非常不同的总体表达水平,但它们哪些基因上调或下调的模式可能几乎完全相同。这是一种共表达的情况,表明存在一个共同的潜在生物学过程。为了捕捉这一点,我们可以使用基于相关的距离,。在这种度量下,簇在欧几里得空间中可能显得拉长和奇怪,但它们代表了具有深远生物学一致性的样本组。层次聚类凭借其在距离度量方面的灵活性,非常适合揭示这些模式,而像 [k-均值](/sciencepedia/feynman/keyword/k_means) 这样偏好球形簇的方法则可能被误导。
同样的逻辑不仅可以用来聚类基因,还可以用来聚类患者。在追求个性化医疗的过程中,研究人员将层次聚类应用于患者数据——基因表达、突变、蛋白质水平——以探究我们称之为“癌症”的疾病是否真的是一种疾病,还是许多不同亚型的集合。树状图揭示了患者群体的层次结构。关键的下一步是看这些群体是否有意义。一个簇中的患者是否对某种药物反应更好?他们是否有不同的生存结果?在这里,“修剪树”这一抽象过程变成了一个生死攸关的决定。通过在树状图上选择一个切割高度,我们定义了患者亚组。最佳切割是在统计鲁棒性、簇的生物学同质性以及最重要的是,这种分离的临床相关性之间取得平衡。一个好的划分能揭示出不仅在分子上不同,而且在预后上也具有显著差异的亚组,从而指导现实世界中的治疗策略。
这种方法的美妙之处在于其普适性。我们可以借用生物学的语言来理解人类社会。想象一座城市。我们可以为每个社区收集人口普查数据——收入水平、教育程度、人口密度、商业类型。这为每个区域创建了一个高维剖面,一种“城市转录组”。通过对这些社区进行聚类,我们可以发现城市的隐藏结构,识别商业区、不同经济阶层的住宅区以及过渡区。树状图向我们展示了社区如何组合成区域,区域如何组合成更大的行政区,揭示了城市生活本身的层次结构。
在我们日益数字化的生活中,我们留下的数据轨迹描绘了我们习惯和兴趣的详细画像。凝聚式聚类是用于理解这些画像的关键工具之一。
考虑零售业中经典的“购物篮”问题。一家超市想要了解它的顾客。每次顾客结账时,他们的购物篮就是一组商品。我们如何对购物者进行分组?我们不能将他们放置在一个简单的欧几里得空间中。但我们可以根据他们购物篮中的内容定义一个距离。Jaccard 距离对此非常适用:
这衡量了两组之间的不相似性,如果两组完全相同,则值为 ,如果它们没有任何共同项,则值为 。通过用这个距离对购物者进行聚类,零售商可以发现客户细分:购买有机蔬菜和豆腐的“健康意识”群体,购买薯片和苏打水的“零食爱好者”群体等等。理解这些簇有助于进行有针对性的营销和更好的商店布局。
这个想法很自然地从购物车延伸到网页浏览器。你的浏览历史是一组访问过的网站。通过对用户进行聚类,服务可以推荐新内容或形成具有共同兴趣的用户社区。然而,这个应用揭示了聚类算法本身的一些微妙之处。想象一个几乎每个人都会访问的极受欢迎的搜索引擎或新闻门户。如果我们使用“单链接”(它根据最接近的单个成员对来合并簇),我们可能会遇到一个称为“链式效应”的问题。一个对古董车感兴趣的用户可能会与一个对烘焙感兴趣的用户联系在一起,仅仅因为他们都碰巧访问了同一个新闻网站。这可能会创建出除了一个热门网站外几乎没有共同点的用户的长而脆弱的链条,从而掩盖了真正更紧密的兴趣社区 [@problem_-id:3140603]。这说明了一个至关重要的观点:连接标准的选择不仅仅是一个技术细节;它体现了我们期望找到的群体结构的一种假设。
到目前为止,我们聚类的都是有形的东西:生物体、人和网站。但数学的真正力量在于其抽象性。只要我们能定义一个有意义的距离概念,凝聚式聚类就可以应用于任何事物。
如果我们的数据点生活在一个“扭曲”的空间中会怎样?如果我们的数据集中的特征是相关的,簇可能会被拉伸成椭球体。用我们的欧几里得尺子来看,椭球体两端的点看起来很远,即使它们属于同一个群体。马氏距离是补救措施。通过考虑数据的协方差结构,,这就像戴上了一副合适的眼镜,将扭曲的椭球形簇变回简单的球形。在这个转换后的空间中,真正的分组变得显而易见。这种“几何”的选择是任何聚类任务中一个关键且常被忽视的步骤。
如果我们的对象有多个方面呢?想一想一个在线商品列表:它有图片、文字描述和用户评论。一件艺术品有视觉形式、历史背景和物理媒介。要对这类“多模态”对象进行聚类,我们可以构建一个融合的差异性。我们为每个模态计算一个距离——图像距离、文本距离、元数据距离——并将它们进行加权求和:
通过改变权重 ,我们可以从不同的角度探索数据。调高 会揭示基于视觉相似性的簇;调高 会根据描述将项目分组。这种方法为我们提供了一种强大、交互式的方式来探索复杂、多方面的数据。
也许最能拓展思维的应用是将聚类的镜头转回我们自己——或者至少,是我们的模型。想象一下,我们训练了一个机器学习模型委员会来解决一个问题。一些模型在预测上可能非常相似,而另一些则大相径庭。我们可以对模型本身进行聚类。“距离”可以定义为两个模型在测试数据集上的不一致率。由此产生的树状图是分析方法的家族树。它向我们展示了哪些模型是知识上的表亲,代表了同一主题的微小变体,哪些属于完全不同的思想流派。这可以用来构建更好的“集成”模型,通过确保委员会成员的多样性。
在所有这些应用中,我们看到一个反复出现的模式:随着我们沿树状图向上攀升,簇合并,细节丢失。这里是否有更深层次的、支配性的原则在起作用?事实证明是有的,它来自信息论的基本定律。
假设我们的数据点有“真实”的标签 。我们在某个步骤 的聚类给了我们一个划分,我们可以用一个随机变量 来表示。当我们合并两个簇形成下一步的划分 时,我们正在执行一个确定性操作。这就创建了一个马尔可夫链:。真实信息流向更精细的划分,然后再流向更粗糙的划分。
一个称为数据处理不等式的深刻结果指出,信息不能通过后处理产生。我们的簇与真实标签之间的互信息 ——它衡量我们的分组能告诉我们多少关于世界真实状态的信息——在合并时只能减少或保持不变。
沿树状图向上的每一步都是一种简化、遗忘细节的行为。数据处理不等式为这一直觉提供了一个优美而严谨的证明。它表明,层次聚类的算法过程受到与支配通信、热力学和信息本质相同的基本定律的约束。这是科学思想统一性的一个精彩一瞥,一个实用的数据分析工具和一个深刻的物理原理被发现是同一枚硬币的两面。