无监督一致性聚类

作者: 米开朗巨魔 | 来源:发表于2020-06-17 15:37 被阅读0次
    Consensus Clustering(一致性聚类),无监督聚类方法,可根据不同组学数据集将样本区分成几个亚型,从而发现新的疾病亚型或者对不同亚型进行比较分析。
    Consensus Clustering的思路是:采用重抽样方法抽取一定样本的数据集,指定聚类数目k并计算不同聚类数目下的合理性(PAC方法)

    NOTE : PAC可用来优化聚类模型选择最优的K值

    代码如下:

    
    # 这里不建议使用模拟数据,结果会很差
    # 1.获取示例数据
    library(ALL)
    data(ALL)
    df <- exprs(ALL) 
    
    # 2.筛选基因(通过中位数绝对偏差度量,MAD)
    mads <- apply(df,1,mad) # MAD测度
    df <- df[rev(order(mads))[1:5000],] #提取前5000个基因
    
    # 3.标准化
    df <-  sweep(df,1, apply(df,1,median,na.rm=T)) # 在行的方向上减去最小值,默认是减法
    
    # 4.运行ConsensusClusterPlus
    library(ConsensusClusterPlus)
    maxK <-  6 # 选一个K值进行尝试
    results <-  ConsensusClusterPlus(df,
                                   maxK = maxK,
                                   reps = 1000,              # 抽样次数(一般1000或更多)
                                   pItem = 0.8,              # 抽样比例
                                   pFeature = 1,
                                   clusterAlg = "pam",       # 聚类方法
                                   distance="pearson",       # 距离计算方法
                                   title="~/test_ty/Rtest/", # 结果保存路径
                                   innerLinkage="complete",  # 这里不建议使用默认的方法"average"
                                   plot="png")               # 结果保存形式
    

    主要结果图如下:

    结果.png

    可以看出,K值为4的时候,聚类结果最好。

    当然,PAC方法可以计算出最佳的K值,代码如下:

    # 5.用PAC的方法确定最佳聚类数
    #   面积最小值对应K为最佳K
    Kvec = 2:maxK
    x1 = 0.1; x2 = 0.9        # threshold defining the intermediate sub-interval
    PAC = rep(NA,length(Kvec)) 
    names(PAC) = paste("K=",Kvec,sep="")  # from 2 to maxK
    for(i in Kvec){
    M = results[[i]]$consensusMatrix
    Fn = ecdf(M[lower.tri(M)])          # M 为计算出共识矩阵
    PAC[i-1] = Fn(x2) - Fn(x1)
    } 
    
    optK = Kvec[which.min(PAC)]  # 理想的K值
    
    
    icl = calcICL(results,
                title="~/test_ty/Rtest/",
                plot="pdf")
    

    结果如下:

    最佳K.png

    最佳的K就是4

    包括从icl的图中可以看出,K=4时稳定性最好

    结果.png

    相关文章

      网友评论

        本文标题:无监督一致性聚类

        本文链接:https://www.haomeiwen.com/subject/ondsxktx.html