🧬 案例背景:乳腺癌表达数据聚类(小型)
- 样本数:15 个乳腺癌样本
- 基因数:1000 个变异度最高的基因(如表达标准差最大)
目标:识别潜在的分子亚型(如 Basal, Luminal, HER2)
📊 输入数据矩阵(简化表示)
| Gene/Sample | S1 | S2 | S3 | S4 | S5 | … | S15 |
|---|---|---|---|---|---|---|---|
| G1 | 5 | 7 | 6 | 1 | 0 | … | 3 |
| G2 | 0 | 1 | 2 | 8 | 9 | … | 4 |
| … | … | … | … | … | … | … | … |
| G1000 | 4 | 2 | 6 | 7 | 1 | … | 3 |
所有值均为非负,经过 log2(TPM+1) 转换。
🧮 步骤一:运行 NMF 分解
我们设定 rank = 3,表示我们假设数据可被分为 3 个亚型。
NMF 分解:
V ≈ W × H
- W:1000(基因) × 3(特征)
- H:3(特征) × 15(样本)
🔍 步骤二:解读 H 矩阵(样本聚类)
H 矩阵如下(示例,前三列):
| S1 | S2 | S3 | |
|---|---|---|---|
| Topic1 | 0.80 | 0.78 | 0.82 |
| Topic2 | 0.10 | 0.15 | 0.05 |
| Topic3 | 0.10 | 0.07 | 0.13 |
归属判断:哪个 topic 得分最高 → 属于哪个亚型
- S1~S5 属于 Topic1 → 聚类1
- S6~S10 属于 Topic2 → 聚类2
- S11~S15 属于 Topic3 → 聚类3
🧬 步骤三:生物学解读
Cluster 1(Topic1)样本:
- 表达高的基因:ESR1, PGR, FOXA1(典型的 Luminal 标志)
- 富集路径:雌激素信号通路
👉 推测为 Luminal A 型
Cluster 2(Topic2)样本:
- 表达高的基因:ERBB2, GRB7
- 富集:HER2 放大通路、MAPK 信号活跃
👉 推测为 HER2-enriched
通过 NMF 聚类,我们:
- 从无监督角度将乳腺癌样本分为 3 个亚型
- 每个亚型与已知分子特征高度吻合(Luminal, HER2, Basal)
- 可为后续差异分析、生存分析或药物响应研究提供基础
在 NMF 中:
H的每一列是样本在每个因子/主题(即“簇”)上的权重- 直接可以根据最大得分确定它属于哪个亚型,无需额外聚类算法
例如:
| Sample | Topic1 | Topic2 | Topic3 | → 聚类归属 |
|---|---|---|---|---|
| S1 | 0.9 | 0.05 | 0.05 | Cluster 1 |
| S2 | 0.1 | 0.85 | 0.05 | Cluster 2 |
| S3 | 0.1 | 0.1 | 0.8 | Cluster 3 |
| 维度 | PCA | NMF |
|---|---|---|
| 是否可解释基因贡献 | ✅ 有 loadings(基因对 PC 的贡献) | ✅ 有 W 矩阵(基因对因子的贡献) |
| 是否能直接给出样本分型 | ❌ 不能,需额外聚类 | ✅ 可以直接由 H 判断归属 |
| 样本归属含义 | 空间坐标,仅方向 | 概率/权重,更接近“软分型” |
| 特征可负值 | 是的,主成分可以为正负 | 否,只允许非负(表达更符合生物解释) |
| 生物解释性 | ❌ 较差,主成分线性组合难以解释 | ✅ 强,模块化表达、富集分析清晰 |
NFM(Non-negative Matrix Factorization,非负矩阵分解)、Mfuzz(模糊聚类算法的一种,在生物信息学中常用于时间序列数据聚类)以及一致性聚类(Consensus Clustering)都是聚类或降维相关的方法,但各自适用的场景、数学基础、优缺点等都不同。下面逐一对比它们,并探讨 NFM 和 Mfuzz 是否可以互相替代。
✅ 一、NFM(Non-negative Matrix Factorization)
NMF 是一种将原始非负数据矩阵 分解为两个非负矩阵 和 的方法,常用于降维、特征提取和聚类(通过 或 中的值可进行聚类)。
优点:
- 解释性强:因为非负性,分解后的特征更容易解释(尤其是生物数据)。
- 可用于聚类:通过矩阵 中的最大值位置作为聚类分配。
- 适用于高维稀疏数据:如基因表达、图像、文档等。
缺点: 不太稳定 需要跑多个
- 对初始化敏感:不同的初始化可能导致不同结果。
- 本身不一定稳定:有时结果变化较大。
- 结果维度需提前设定:聚类数 需要先给定。
✅ 二、Mfuzz(模糊聚类)
Mfuzz 是基于 Fuzzy C-Means(FCM)算法的一种实现,特别适合于时间序列或连续表达数据的聚类(如基因表达随时间变化)。每个数据点对所有簇都有一个“隶属度”值(membership)。
优点:
- 适合时间序列数据:可揭示模式变化趋势。
- 提供模糊隶属度:可反映数据点的模糊归属情况。
- 在生物学中非常常用:如基因表达聚类。
缺点:
- 需指定聚类数和模糊系数 :不易选取。
- 对噪声敏感:特别是在不归一化时。
- 不适合非时间序列或离散数据
✅ 三、一致性聚类(Consensus Clustering)
简介:
一致性聚类是一种集成聚类方法,评估聚类的稳定性。通过多次聚类(不同子样本或初始化),统计每对样本被分到同一簇的频率,形成一致性矩阵,从而评估最佳聚类数和聚类稳定性。
优点:
- 稳定性高:通过多次重复聚类获得可靠结果。
- 可评估聚类数选择的合理性。
- 适用于不同聚类方法的集成评估。
缺点:
- 计算成本高:尤其在数据量大、聚类算法复杂时。
- 本身不是聚类算法:而是一种评估方法。
- 依赖底层聚类算法的性能。
✅ 四、NMF vs Mfuzz:能否互相替代?
共同点:
-
都有“隶属度”概念:
- Mfuzz 明确返回每个点属于每个簇的隶属度矩阵(模糊聚类矩阵)。
- NMF 中的 矩阵的每列可以解释为属于各聚类的“贡献”或“隶属度”(非归一化的)。
区别与替代性分析:
| 方面 | NMF | Mfuzz |
|---|---|---|
| 数据要求 | 非负数据(如表达矩阵) | 连续数据,适合时间序列 |
| 聚类类型 | 通常为硬聚类或概率近似 | 明确为模糊聚类 |
| 隶属度定义 | 数值解释为“特征贡献” | 数学上定义明确的隶属度 |
| 替代性 | 可勉强用于模糊聚类分析 | 无法替代 NMF 的降维能力 |
| 推荐使用场景 | 特征提取+聚类 | 时间序列趋势挖掘 |
🔁 能否替代?
-
部分替代(仅限用于聚类):若仅用作聚类,且关心的是“模糊分配”或软聚类结果,NMF 可以近似替代 Mfuzz,但需要手动归一化并解释其“隶属度”。
-
不可完全替代:
- Mfuzz 是专门的模糊聚类方法,理论基础不同。
- NMF 更偏向降维和数据分解,输出不等价于模糊隶属度的严格定义。
✅ 总结
| 方法 | 优点 | 缺点 | 最佳使用场景 |
|---|---|---|---|
| NMF | 可解释性强、适用于高维非负数据、降维 | 初始化敏感、需指定簇数 | 非负矩阵降维、聚类 |
| Mfuzz | 模糊分配、适合时间序列、生物学常用 | 参数难选、对噪声敏感 | 基因表达时间序列聚类 |
| 一致性聚类 | 评估稳定性、选簇数依据 | 慢、依赖其他算法 | 聚类数选择与稳定性分析 |
如你在做基因表达分析或时间序列聚类,推荐用 Mfuzz;如果关注的是特征抽取或希望从数据中找出“构成模块”,建议用 NMF。而若你希望评估聚类是否稳定,建议在这两者之上加用 一致性聚类。
如需示例代码或应用场景比较,也可以继续告诉我!