• 每R一点:层次聚类分析实例实战-dist、hclust、heatmap等(转)


    聚类分析:对样品或指标进行分类的一种分析方法,依据样本和指标已知特性进行分类。本节主要介绍层次聚类分析,一共包括3个部分,每个部分包括一个具体实战例子。

    1、常规聚类过程:


    一、首先用dist()函数计算变量间距离
    dist.r = dist(data, method=" ")
    其中method包括6种方法,表示不同的距离测度:"euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski"。相应的意义自行查找。

    二、再用hclust()进行聚类
    hc.r = hclust(dist.r, method = “ ”)
    其中method包括7种方法,表示聚类的方法:"ward", "single", "complete","average", "mcquitty", "median" or "centroid"。相应的意义自行查找。

    三、画图
    plot(hc.r, hang = -1,labels=NULL) 或者plot(hc.r, hang = 0.1,labels=F)
    hang 等于数值,表示标签与末端树杈之间的距离,
    若是负数,则表示末端树杈长度是0,即标签对齐。
    labels 表示标签,默认是NULL,表示变量原有名称。labels=F :表示不显示标签。

    实例介绍:

    特殊情况用法:

    当用已知距离矩阵进行聚类时,即变量间的距离已经计算完,只是想用
    已知的距离矩阵进行聚类。这时,需将距离矩阵转成dist类型。
    然后再执行hclust()聚类和plot()画图。

    # mydata作为距离矩阵,且为正方矩阵
    mydata<-matrix(1:25,ncol=5);
    class(mydata);
     
    # 把mydata变成dist类型
    mydist<-as.dist(mydata);
    class(mydist);
    [1] "dist"
     
    myhc<-hclust(mydist,method="complete");
    myhc;
     
    Call:
    hclust(d = mydist, method ="complete")
     
    Cluster method   : complete
    Number of objects: 5
     
    plot(myhc,hang=0.1)

    2、热图聚类过程:


    一、首先用dist()函数计算变量间距离
    dist.r = dist(data, method=" ")

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


    其中参数不做过多描述。若有需求,请分享并回复:heatmap.2

    即可得到答案。

    实战例子:

    require(graphics);
    dist.r<-dist(USArrests,method="euclidean") # 方法:欧氏距离
    dist.r
    
     
    #聚类并画图
    heatmap(as.matrix(dist.r))

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


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

    例子:

    转自:http://mp.weixin.qq.com/s?__biz=MzA3NDUxMjYzMA==&mid=209248280&idx=2&sn=c0ec5d9a9b060654ffdaad3d6911a812#rd

    ---------------------------------------------------------------------------------- 数据和特征决定了效果上限,模型和算法决定了逼近这个上限的程度 ----------------------------------------------------------------------------------
  • 相关阅读:
    linux设置docker阿里云镜像
    RapidJSON使用代码片段
    从输入URL到浏览器显示页面发生了什么
    基于vue发布npm插件时 引入插件时 控制台报错“Cannot read property 'toLowerCase' of undefined”
    通过git、gitHub将本地代码上传至gitHub上
    360浏览器长时间不访问或卡顿时容易自动切换到兼容模式下
    Linux 系统目录结构
    Linux 系统启动过程
    The Best Place for Error Messages on Forms
    BEST PRACTICES FOR FORM DESIGN
  • 原文地址:https://www.cnblogs.com/payton/p/4240824.html
Copyright © 2020-2023  润新知