了解R中的热图树状图聚类

时间:2013-03-13 14:26:35

标签: r cluster-analysis heatmap

我很感激R的热图功能的树形图(Colv,Rowv)上的任何信息材料。比如聚类是如何工作的(它是欧几里德的距离吗?)。你不必发表冗长的解释,我已经很高兴看到一些可以让我走上正轨的关键词,所以我可以做一些在线研究。

以下是帮助手册的摘录,让我感到困惑。在这种情况下,“荣幸”意味着什么?它与重新排序有何不同?

  

如果Rowv或Colv是树形图,那么它们就会受到尊重(而不是   重新排序)。

3 个答案:

答案 0 :(得分:3)

RowvColv控制是否应重新排序数据集的行和列,以及如何重新排序。

它们的可能值包括TRUENULLFALSE,整数向量或树形图对象。

  • 在默认模式TRUE中,heatmap.2使用hclustfundistfun参数执行群集。默认情况下,使用欧氏距离度量完成链接聚类。然后使用行/列装置重新排序树形图。您可以通过为hclustfundistfun指定不同的功能来控制此操作。例如,要使用曼哈顿距离而不是欧几里德距离:

    heatmap.2(x,...,distfun=function (y) dist(y,method = "manhattan") )
    

    结帐?dist?hclust。如果您想了解有关聚类的更多信息,可以从“距离测量”和“聚集方法”开始。

  • 如果Rowv / ColvNULLFALSE,则不会进行重新排序或群集,并按原样绘制矩阵。

  • 如果Rowv / Colv是一个数值向量,则计算聚类为TRUE,并使用提供给{{的向量完成树形图的重新排序。 1}} / Rowv

  • 如果Colv / Rowv是树形图对象,则此树形图将用于重新排序矩阵。例如,可以通过以下方式生成树形图对象:

    Colv

    在曼哈顿距离上生成完整的聚类,按行排序。您现在可以将rowDistance = dist(x, method = "manhattan") rowCluster = hclust(rowDistance, method = "complete") rowDend = as.dendrogram(rowCluster) rowDend = reorder(rowDend, rowMeans(x)) 传递给rowDend

    Rowv

    这可能很有用,例如,如果您想以不同的方式对行和列进行聚类,或者使用其他人给您的聚类,或者您想要做一些无法通过指定hclustfun来解决的问题和distfun。这就是“树形图得到尊重”的含义:它用于代替hclustfun和distfun指定的内容。

答案 1 :(得分:2)

要了解它如何准确处理Rowv / Colv,您还可以使用body(heatmap)来显示其来源。

答案 2 :(得分:0)

从手册:

  

distfun:用于计算距离(相异度)的函数   行和列。默认为dist。

     

hclustfun:用于计算层次聚类的函数   Rowv或Colv不是树状图。默认为hclust。应该采取   参数是distfun的结果并返回一个对象   as.dendrogram可以应用。

dist()默认为欧氏距离,hclust()为完整的联动方式。

相关问题