美文网首页绘图
R:层次聚类分析-dist、hclust、heatmap等

R:层次聚类分析-dist、hclust、heatmap等

作者: 小米羊爱学术 | 来源:发表于2019-03-06 09:48 被阅读0次

    1、常规聚类过程:

    (2)首先用dist()函数计算变量间距离

    dist.r = dist(data, method=" ") 

    其中method包括6种方法,表示不同的距离测度:"euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski"。相应的意义自行查找。

    (2)再用hclust()进行聚类

    hc.r = hclust(dist.r, method = “ ”) 

    其中method包括7种方法,表示聚类的方法:"ward", "single", "complete","average", "mcquitty", "median" or "centroid"。相应的意义自行查找。

    (3)画图

    plot(hc.r, hang = -1,labels=NULL) 或者plot(hc.r, hang = 0.1,labels=F)

    hang 等于数值,表示标签与末端树杈之间的距离,

    若是负数,则表示末端树杈长度是0,即标签对齐。

    labels 表示标签,默认是NULL,表示变量原有名称。labels=F :表示不显示标签。

    2、热图聚类过程:

    (1)首先用dist()函数计算变量间距离

    dist.r = dist(data, method=" ")

    (2)用heatmap()函数进行热点图聚类

    对于heatmap中具体参数,这里不做过多介绍,可在帮助文档中找说明。除此heatmap函数之外,gplots包中的heatmap.2()函数,也可以做热点图聚类。

    heatmap(as.matrix(dist.r))

    3、多维标度和聚类的结果:

    MDS方法对距离矩阵进行降维,用不同的颜色来表示聚类的结果。

    dist.r = dist(data, method=" ")

    hc.r = hclust(dist.r)

    #cutree函数提取每个样本所属的类别

    result = cutree(hc.r,k=4)

    #cmdscale数据降维

    temp = cmdscale(dist.r, k=2)

    x = temp[,1]

    y = temp[,2]

    #作图

    library(ggplot2)

    p = ggplot(data.frame(x,y),aes(x,y))

    p+geom_point(size=3,alpha=0.8,aes(colour = factor(result)))

    相关文章

      网友评论

        本文标题:R:层次聚类分析-dist、hclust、heatmap等

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