try ai
科普
编辑
分享
反馈
  • 共识聚类

共识聚类

SciencePedia玻尔百科
核心要点
  • 共识聚类通过将多个聚类结果组合成一个单一、更稳健和稳定的划分,解决了算法不稳定性问题。
  • 该方法的工作原理是构建一个共现矩阵,该矩阵记录了在大量运行中任意一对数据点被分在同一组的频率。
  • 该方法的一个独特优势是其量化不确定性的能力,能够突显模糊的数据点和聚类之间的模糊边界。
  • 它在生物学和基因组学中被广泛应用于定义细胞类型、发现网络中的功能模块以及创建统一的基因模型等任务。

引言

在大数据时代,我们发现模式的能力常常不是受限于方法的缺乏,而是受限于方法的不一致性。许多强大的聚类算法在同一个数据集上多次运行时会产生不同的结果——这一问题被称为算法不稳定性。这就提出了一个关键问题:我们应该相信哪个答案?共识聚类提供了一个优雅的解决方案,将这种可变性从弱点转化为了优势。它不再从一个不稳定的算法中寻求单一的“正确”划分,而是综合多次运行的结果,以找到一个稳定、可复现且更值得信赖的结果,这与“群体智慧”的原则相呼应。

本文探讨了共识聚类的理论与实践,这是现代科学中稳健数据分析的一项基础技术。它解决了由算法随机性造成的知识鸿沟,并为从复杂数据中获得可靠结论提供了一个框架。在接下来的章节中,您将全面了解这一强大的方法。“原理与机制”一章将揭示共识聚类的工作原理,从其核心概念共现矩阵到其描绘不确定性的能力。随后的“应用与跨学科联系”一章将展示其在现实世界中的影响,介绍它如何被用于创建细胞图谱、绘制蛋白质网络和统一基因组蓝图。

原理与机制

想象一下,您是一场大型且混乱的体操比赛的裁判。您有一个裁判小组,每位裁判都对运动员进行了评分。但问题在于:裁判们看的可能不是同一套动作,或者他们的品味略有不同。一位裁判可能因为一个强有力的翻滚而给高分,另一位则可能因为一个优雅的跳跃而给高分。更糟糕的是,有些裁判有点不稳定;如果他们再次观看同一套动作,可能会给出不同的分数。作为主裁判,您如何得出一个单一、公平且稳健的排名呢?您不会随机选择某一位裁判的意见,而是会寻求一种共识。

这正是我们在从基因组学到生态学的许多科学领域所面临的困境。我们拥有强大的算法,可以在数据中找到模式或“聚类”。但许多这类算法都带有一点随机性。如果我们在相同的数据上运行相同的算法,每次都可能得到不同的答案。这被称为​​算法不稳定性​​。我们应该相信哪个结果?共识聚类提供了一个优美而强大的答案:相信集体的智慧。我们不再依赖单一、可能不稳定的裁判,而是向整个裁判组征求意见,以找出他们集体认同的结果。

投票箱:关系矩阵

让我们思考如何进行这次投票。假设我们根据基因的活性模式对基因进行聚类,并且我们运行了100次算法。我们得到了100种不同的基因分组方式。我们不能简单地对聚类标签进行“多数投票”,因为标签本身是任意的。第一次运行中的“聚类1”与第二次运行中的“聚类1”毫无关系。这就是臭名昭著的​​标签对应问题​​。

解决方案非常巧妙。我们不关注聚类标签,而是关注数据点本身之间的基本关系。对于任意一对基因,比如基因A和基因B,我们在100次运行中的每一次都问一个简单的问题:“你们两个在同一个聚类中吗?”答案是“是”或“否”。

通过统计这些答案,我们构建了一个称为​​共现矩阵​​(co-association matrix)的新对象,有时也称为​​共识矩阵​​(consensus matrix)。这就是我们的投票箱。它是一个方阵,每个基因对应一行和一列。矩阵中第 iii 行和第 jjj 列的元素,我们称之为 CijC_{ij}Cij​,就是基因 iii 和基因 jjj 在所有运行中被分在同一个聚类中的次数所占的比例。

例如,如果我们在六个基因的数据集上运行聚类算法5次,我们可能会看到如下结果:

  • 第1次运行: {g1, g2, g3} 和 {g4, g5, g6}
  • 第2次运行: {g1, g2} 和 {g3, g4, g5, g6}
  • 第3次运行: {g1, g3} 和 {g2, g4, g5, g6}
  • 第4次运行: {g1, g2, g3} 和 {g4, g5, g6}
  • 第5次运行: {g1, g2, g3} 和 {g4, g5, g6}

让我们计算几对基因的共识得分。

  • ​​基因对 (g1, g2):​​ 它们在第1、2、4和5次运行中在一起。所以,它们的共识得分是 C12=45=0.8C_{12} = \frac{4}{5} = 0.8C12​=54​=0.8。
  • ​​基因对 (g1, g4):​​ 它们从未在同一个聚类中。它们的得分是 C14=05=0C_{14} = \frac{0}{5} = 0C14​=50​=0。
  • ​​基因对 (g4, g5):​​ 它们总是在一起,在每一次运行中都是。它们的得分是 C45=55=1C_{45} = \frac{5}{5} = 1C45​=55​=1。

这个矩阵是一件美妙的事物。它将一百个短暂、不稳定的划分转换成了一个单一、稳定的成对相似性摘要。接近1的分数意味着两个项目之间有非常强、稳定的关系。接近0的分数意味着它们一直被分开。该矩阵是两个项目共同聚类的真实概率的蒙特卡洛估计。

从投票到定论

既然我们有了这个内容丰富的共识得分矩阵,我们如何得到最终的、稳健的聚类结果呢?主要有两种方法来宣布获胜者。

第一种是简单的​​阈值法​​。我们可以将共识矩阵看作定义了一个新网络,其中项目是节点,得分 CijC_{ij}Cij​ 是它们之间边的权重。然后我们可以决定一个阈值,比如 τ=0.75\tau = 0.75τ=0.75。任何得分大于或等于此阈值的配对都被认为具有“强链接”。我们画出这些链接,并找到所有相互连接的项目组(图的​​连通分量​​)。这些分量就是我们最终的稳健聚类。它们代表了那些被持续地聚类在一起,从而通过了我们严格阈值筛选的项目组。

一种更复杂的方法是使用共识矩阵作为最后一轮​​层次聚类​​的输入。由于聚类算法通常需要一个相异性度量,我们可以很容易地从共识相似性中定义一个:Dij=1−CijD_{ij} = 1 - C_{ij}Dij​=1−Cij​。现在,低的相异性意味着高的共识得分。当我们在新的相异性矩阵上运行层次聚类时,几乎总是在一起的配对(如我们例子中的g4和g5,其D45=0D_{45}=0D45​=0)将最先合并。很少在一起的配对将最后合并。结果是一个​​共识树状图​​,它是一棵树,展示了从最紧密的配对到最大的超聚类的整个稳定关系层次结构。

模糊之美

或许,从共识聚类中获得的最深刻的见解不仅仅是得到一个最终答案,而是理解答案在何处是模糊的。共识矩阵是一张确定性地图。接近1(总是在一起)和0(从不在一起)的分数是高置信度的点。但0.5的分数意味着什么呢?这意味着在一半的聚类运行中,两个项目在一起,而在另一半中它们是分开的。这是最大模糊性的点!

我们甚至可以设计一个分数来量化这一点。考虑一个简单的​​成对模糊性得分​​公式:PAS(i,j)=4×Cij×(1−Cij)\text{PAS}(i, j) = 4 \times C_{ij} \times (1 - C_{ij})PAS(i,j)=4×Cij​×(1−Cij​)。思考一下这个函数。如果 CijC_{ij}Cij​ 是0或1,得分就是0——没有模糊性。当 Cij=0.5C_{ij} = 0.5Cij​=0.5 时,该函数达到其最大值1。这个分数巧妙地指出了我们数据中那些不稳定且处于摇摆状态的特定关系。

这不是该方法的失败;恰恰是它最大的优势。它告诉我们,对于某些系统,可能不存在单一的“正确”划分。相反,可能存在一个由不同但几乎同样好的解决方案构成的完整景观,这种现象称为​​简并性​​(degeneracy)。共识矩阵让我们能够看到这个景观中稳定的“大陆”(高共识区域)以及它们之间不确定的“海岸线”或“边界区域”。这在分析单细胞数据等情况下非常有价值,因为我们可以识别出难以分类的“边界细胞”,并理解这种不确定性可能如何影响下游的发现,比如寻找标记基因。

完善民主进程

如同任何民主制度一样,我们简单的投票方案也可以得到改进。

首先,每一次投票的权重都应该相等吗?如果一些初始聚类运行比其他运行“更好”怎么办?也许它们找到了具有更高模块度或其他质量分数的划分。我们可以实施一个​​加权投票​​系统。共识矩阵可以是一个加权平均,而不是简单平均,其中质量分数更高的划分被赋予更大的影响力。这就像更仔细地倾听最有经验的裁判的意见。

其次,我们如何知道一个共识得分是否有意义?如果两个基因在60%的运行中被聚类在一起,这是一个真实的信号,还是可能偶然发生的?为了回答这个问题,我们必须像物理学家一样,将我们的观察结果与一个​​零模型​​进行比较。我们可以计算出,在给定我们运行中产生的聚类数量和大小的情况下,两个项目纯粹由于随机机会而被聚类在一起的概率。然后,我们可以使用正式的假设检验来询问我们观察到的共识得分是否具有统计显著性——它是否离随机基线足够远以至于可信?。当我们对所有 (N2)\binom{N}{2}(2N​) 对项目都这样做时,必须小心进行​​多重比较​​校正,以避免被假阳性所淹没。通过应用像​​错误发现率(FDR)​​这样的统计控制,我们可以将共识聚类从一个简单的启发式方法转变为一个严谨的统计推断引擎。

知其局限:共识并非真理

最后,一句警告,一剂科学的谦卑。共识聚类是解决*算法不稳定性问题的绝佳工具。它平均掉了算法内部随机性产生的“噪音”。但它无法解决数据质量差*的问题。

想象一下,我们正在研究一个蛋白质的折叠和去折叠过程。然而,我们的计算机模拟时间太短,只捕捉到了蛋白质处于折叠和去折叠状态的瞬间,却从未捕捉到它在两者之间转换的任何快照。如果我们在这个数据上运行聚类算法一千次,它会自信地——并且以高共识度——报告出两个聚类。共识矩阵将显示近乎完美的分离。但这个结论是我们不完全采样的产物。我们错过了故事中最重要的部分:转换路径。

共识聚类综合了我们已有的证据;它不能创造我们从未收集到的证据。它告诉你的是在给定数据下最稳健的结论。作为科学家,我们有责任提出更难的问题:我们的数据是否忠实地代表了现实?通往知识的最终道路不仅需要巧妙的分析,还需要深思熟虑的实验、动力学验证,以及对即使是看起来最自信的结果也保持健康的怀疑态度。共识聚类让我们的数据发出了更清晰的声音,但确保我们从一开始就提出正确的问题是我们的工作。

应用与跨学科联系

想象一下,你和几个人在一个漆黑的房间里,房间中央有一个巨大而复杂的物体——比如说,一头大象。每个人被要求通过触摸其中一个部分来描述这个物体。一个人摸到一条粗壮结实的腿,宣称:“这是一棵树干!”另一个人摸到长而灵活的鼻子,说:“这是一条蛇!”第三个人摸到宽大扁平的耳朵,坚称:“这是一把扇子!”每一种描述都是将感觉“聚类”成一个结论。每一种都部分正确但不完整,并且单独来看具有误导性。只有当你将这些个别的、嘈杂的观察综合成一个单一、连贯的图景——一个共识——时,真正的理解才会出现。

这正是共识聚类核心的美妙而深刻的思想。在科学中,我们的仪器和算法就像黑暗房间里的人。它们为我们提供了关于现实的部分、通常嘈杂且有时相互矛盾的观点。挑战不在于决定哪一个观点是“最佳”的,而在于明智地将它们全部结合起来,以揭示一个比任何单个部分都更稳健、稳定和完整的真理。这一原则在众多科学学科中都有体现,从绘制细胞的内部生命到设计下一代药物。

探寻真实类别:从细胞到网络

科学中最基本的行为之一是分类——将事物放入有意义的组中。然而,大自然很少为我们提供贴好标签的盒子。相反,我们发现的是连续体、噪音和模糊性。正是在这里,共识聚类已成为不可或缺的工具,尤其是在现代生物学中。

思考一下绘制人体细胞图谱这项艰巨的任务,精确到每一个单细胞。利用单细胞RNA测序(scRNA-seq)等技术,研究人员可以测量成千上万个单个细胞的基因表达。目标是将这些细胞分组为不同类型:这是一个神经元,那是一个免疫细胞,等等。但问题立刻出现。由于化学、设备和操作流程的细微差异,波士顿实验室的数据集看起来与东京实验室的数据集不同。这些是“批次效应”。更糟糕的是,应用于相同数据的不同聚类算法可能在细胞类型的边界上存在分歧。你应该相信哪个结果?

答案是相信共识。一种稳健的策略不是依赖单一分析,而是运行多种不同的整合和聚类算法,可能是在数据的略微不同的子集上。每次运行都会产生一个划分——一组建议的细胞类型。通过追踪任意两个细胞在所有这些运行中被分在同一聚类的频率,我们可以构建一个“共现”矩阵。这个矩阵代表了一种深刻的共识,平均掉了任何单一方法或数据集的怪癖。对这个矩阵进行聚类,揭示的是一种远为稳定且具有生物学意义的细胞类型分类法。这种方法使我们能够定义那些不仅仅是某次实验产物,而是生物学本身可复现特征的细胞身份。

这种对“真实类别”的探索从单个细胞延伸到它们形成的复杂社会。在细胞内部,成千上万的基因和蛋白质在一个巨大的网络中相互作用。某些紧密合作以执行特定功能的蛋白质组形成了“群落”或“模块”。识别这些群落是理解细胞功能的关键。然而,旨在寻找这些群落的算法,如著名的Girvan-Newman算法,可能对网络数据的微小变化很敏感。一点点噪音就可能导致预测的群落边界发生偏移。

共识再次前来救场。通过在网络的子采样版本上反复运行社区检测算法,我们生成了许多可能的群落集合。然后我们构建一个共识矩阵,其中每个条目反映了两个蛋白质属于同一群落的概率。最终的、稳定的群落结构便是从这个共识视图中提取出来的,为我们提供了一幅更为可靠的细胞功能组织图。

构建现实的共识模型:从基因组到分子

共识的力量不仅限于对数据点进行分组。它还是一个强大的框架,用于从多个不完美的草图中构建一个复杂对象的单一、高保真模型。这在基因组学中是一个常见的挑战,我们试图拼凑出一个生物体的权威“蓝图”。

例如,基因组不仅仅是一串字母;它被折叠成复杂的三维结构。在三维空间中彼此靠近的基因组区域,称为拓扑关联域(TADs),是基因调控的基本单位。生物学家已经开发了许多计算方法或“识别工具”,从实验数据中识别这些域的边界。不出所料,不同的识别工具通常会产生略有不同的图谱。为了创建TADs的权威图谱,我们必须协调这些图谱。一种共识方法可能包括识别所有识别工具预测的所有边界,将那些彼此非常接近的边界聚类,并且只有当一个边界簇得到多个不同识别工具的支持时,才将其提升为“共识边界”。从这组稳健的共识边界中,可以构建出最终的、统一的TAD图谱。

类似的逻辑也适用于定义基因本身的结构。一个基因可以通过不同的剪接方式产生多种信使RNA(mRNA)“亚型”。作为我们参考目录的不同注释数据库,通常包含这些亚型略有不同的版本。为了创建一个单一、统一的“共识转录组”,我们可以首先将结构相似的转录本模型聚类(例如,通过其外显子区域具有高Jaccard相似性)。然后,对于每个相似模型的聚类,我们可以在每个核苷酸的水平上进行“投票”。只有当足够比例的原始来源同意其包含时,一个核苷酸位置才被包含在最终的共识转录本中。这从下至上地构建了一个完整、高质量的基因模型。

这些方法的需求源于这样一个事实:没有一种单一的分析技术是完美的。用于识别转座元件(TEs)等基因组元件的同源性方法,擅长发现古老、保守的元件,但会错过新的、物种特异性的元件。从头预测方法擅长发现这些新元件,但在分类上可能存在困难。结构方法对完整、新近的元件敏感,但可能错过更古老、已退化的拷贝。基因组TE景观的最完整图景来自“合并文库”方法,这是一种概念上的共识形式,它结合了每种单独方法的优点并减轻了其弱点。

这种从多种可能性中构建共识模型的思想并不仅限于基因组的一维世界。在药物设计的三维世界中,化学家开发出“药效团模型”,这些模型代表了药物分子要与其蛋白质靶点结合所必须具备的基本几何和化学特征。不同的建模技术可以产生不同的药效团。为了将这些模型综合成一个更可靠的药物发现指南,我们可以将来自不同模型的相似特征(例如,空间上接近的所有氢键受体)进行聚类。如果一个特征簇得到足够数量的输入模型的支持,它就被提升为最终“系综药效团”中的“共识特征”,代表了最一致和最重要的相互作用点。

共识作为稳健性与发现的工具

除了分类和模型构建,共识框架还服务于另外两个至关重要的目的:确保我们的结果稳健,以及从嘈杂的数据中提炼出清晰的信号。

科学结论不应该岌岌可危地依赖于参数的任意选择。然而,许多计算分析都涉及“超参数”——如窗口大小或截止值等设置——这些都可能影响结果。我们如何选择“正确”的那个?共识哲学提供了一条出路:不要选择。相反,在一系列合理的参数值上运行分析,并寻找在这些值中保持一致的结果。例如,在从Hi-C数据中识别基因组边界时,结果会随着分析窗口大小的变化而改变。通过汇集在多个窗口大小下识别出的边界,并找到持续出现的共识位置,我们得到了一组稳健的、而非仅仅是单一参数选择产物的边界。

也许共识最直观的应用是在纠错方面。现代长读长测序技术可以读取长段的DNA或RNA,但它们容易出错——插入、删除和替换。我们可能对同一个mRNA分子有数百个带有噪音的读段。我们如何重建原始的、无错误的序列?首先,我们对读段进行聚类,以确保它们都来自同一个源分子。然后,在每个聚类中,我们可以对齐所有读段,并在每个位置上进行多数投票以确定正确的碱基。单个读段中的随机错误相互抵消,而真实的信号——共识序列——则以高保真度浮现出来。这是最纯粹形式的“群体智慧”。

最后,在一个美妙的、自引用的转折中,我们可以将共识聚类的工具反过来用于我们的工具本身。不同的聚类算法(K-Means、层次聚类、DBSCAN等)体现了关于何为“聚类”的不同假设。它们在行为上哪些最相似?我们可以通过在一系列基准数据集上运行一套算法,并测量它们所得划分的相似性(例如,使用调整兰德指数)来回答这个问题。这为我们提供了一个算法之间的相似性矩阵。通过对这个矩阵进行层次聚类,我们可以“对聚类器进行聚类”,揭示出一个元结构,告诉我们关于算法行为的基本家族。这是一个深刻的例子,说明共识框架不仅是分析数据的工具,也是理解分析过程本身的工具。

从分子的复杂舞蹈到生命多样性的宏大分类,共识原则是一条金线。它是科学精神的计算体现:通过汇总嘈杂、部分和多样的证据,我们可以过滤掉短暂的,提炼出本质的,从而向着对世界稳定而稳健的理解不断迈进。