【问题标题】:R and Matlab Dendograms StructuresR 和 Matlab 树状图结构
【发布时间】:2016-01-18 20:48:28
【问题描述】:

我对R知之甚少,但我需要将matlab中层次聚类产生的树状图转换为R树状图结构。下表显示了matlab函数中层次聚类得到的树状图;其中第一列和第二列是对象或分支的 ID,第三列是距离。

有没有办法将此表(或 matlab 树状图)映射到 R 树状图?

【问题讨论】:

    标签: r matlab hierarchical-clustering dendrogram


    【解决方案1】:

    我认为,在 R 中创建树状图的最简单方法是使用 matlab 分析的一些中间结果,而不是使用最终表格。

    假设您有一个称为 Diss_Mat 的相异矩阵(您绝对应该在 matlab 算法的某个时间点对其进行评估),您可以执行以下操作

    DIST_Mat=as.dist(Diss_Mat) #create a dist type object
    dendro=as.dendrogram(hclust(DIST_Mat)) 
    

    第二行在 R 中执行层次聚类,然后创建树状图类型对象。

    【讨论】:

    • Diss_Mat 矩阵的结构应该是什么?
    • 它是一个相异矩阵,就像你可以使用pdist函数得到的一样。 link 这样的矩阵应该是正值且对称的(至少如果您使用适当的距离)并且包含与每对点之间的距离相关的信息。
    • 我正在使用“自定义距离”来衡量数据点之间的相似性。假设我们有 3 个点(a,b,c)。我假设矩阵应该是这样的: m = [D(a,b); D(a,c); D(b,c)] 。然后,我找到 DIST_Mat=as.dist(m)。对吗?
    • 你的矩阵应该是这样的:[0, D(a,b), D(a,c); D(b,a),0,D(b,c); D(c,a),D(c,b),0] 通过在 R 中调用 as.dist(),您将获得 hclust 函数所需的 dist 类型,如上所述。希望你会发现它有用。
    猜你喜欢
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多