美文网首页R语言
时间序列分析Mfuzz

时间序列分析Mfuzz

作者: nnlrl | 来源:发表于2019-08-11 16:49 被阅读18次

    介绍

    Mfuzz采用了一种新的聚类算法fuzzy c-means algorithm的软聚类算法,相比K-means等hard clustering算法,一定程度上降低了噪声对聚类结果的干扰。

    虽然流程中包含标准化步骤,但是再导入数据之前我们也需要对数据提前进行标准化,聚类时需要用一个数值来表征不同基因间的距离,Mfuzz中采用的是欧式距离,由于普通欧式距离的定义没有考虑不同维度间量纲的不同。

    代码

    首先读入数据,并进行预处理

    
    rt <- read.table('fpkm.csv',header = T,sep = ',',row.names = 1)
    #转化为矩阵格式
    rt <- as.matrix(rt )
    
    #构建对象
    eset <- new("ExpressionSet",exprs = rt )
    
    # 根据标准差去除样本间差异太小的基因
    eset <- filter.std(eset,min.std=0)
    

    随后进行标准化以及参数的选择

    eset <- standardise(eset)
    
    # 聚类个数
    c <- 6
    #  评估出最佳的m值
    m <- mestimate(eset)
    # 聚类
    cl <- mfuzz(eset, c = c, m = m)
    

    后续分析,包括可视化以及基因集的提取

    
    # 查看每个cluster中的基因个数
    cl$size
    # 提取某个cluster下的基因
    cl$cluster[cl$cluster == 1]
    # 查看基因和cluster之间的membership
    cl$membership
    
    mfuzz.plot(
    eSet,
    cl,
    mfrow=c(2,3),
    new.window= FALSE)
    
    

    相关文章

      网友评论

        本文标题:时间序列分析Mfuzz

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