[R包]ConsensusClusterPlus①一致性聚类Co
2019-07-11 本文已影响23人
郑宝童
注:一致性聚类通常被用于确定最佳的聚类数目K
聚类分析
传统方法的不足
- 不能提供“客观的”分类数目的标准和分类边界,例如Hierarchical Clustering。
- 需要预先给定一个分类的数目,且没有统一的标准去比较不同分类数目下分类的结果,例如K-means Clustering。
- 聚类结果的合理性和可靠性无法验证。
一致聚类
- 一致聚类通过基于重采样的方法来验证聚类合理性
- 一致聚类方法的主要目的是评估聚类的稳定性
基本原理假设
从原数据集不同的子类中提取出的样本构成一个新的数据集,并且从同一个子类中有不同的样本被提取出来,那么在新数据集上聚类分析之后的结果,无论是聚类的数目还是类内样本都应该和原数据集相差不大。因此所得到的聚类相对于抽样变异越稳定,我们越可以相信这一样的聚类代表了一个真实的子类结构。重采样的方法可以打乱原始数据集,这样对每一次重采样的样本进行聚类分析然后再综合评估多次聚类分析的结果给出一致性(Consensus)的评估。--上方描述参考自:福医大生物信息学“一致性聚类”课件
#安装ConsensusClusterPlus
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("ConsensusClusterPlus")
#加载包
library(ConsensusClusterPlus)
#browseVignettes("ConsensusClusterPlus")#查看帮助文档
ConsensusClusterPlus(d,maxK=10,reps=1000,pItem=0.8,pFeature=1,title="resultstrain",clusterAlg="km",distance="euclidean",seed=1262118388.71279,plot="pdf",writeTable=TRUE)
运行上方代码,会生成许多图和表(上方的d是你的数据矩阵)
-
你可以根据delta图来选定k,通常选择最后一个拐点,所对应的k为你的最佳k值
delta图 -
该代码还生成多个一致性聚类的图,例如下图
image.png -
同时该函数也生成了每一个k值的分组情况,
class
分组情况:
class
参考文档
http://www.bioconductor.org/packages/release/bioc/vignettes/ConsensusClusterPlus/inst/doc/ConsensusClusterPlus.pdf
参考文献:ConsensusClusterPlus: a class discovery tool with confidence
assessments and item tracking
扫描下方二维码关注生信客部落公众号:
生信客部落