R:具有相似性或相异性矩阵的聚类?并可视化结果

时间:2017-07-12 15:06:29

标签: r matrix similarity dendrogram

我有一个相似矩阵,我使用 Harry - 一个字符串相似性工具创建,我想绘制一些树状图,看看我是否能在数据中找到一些簇/组。我使用以下相似性度量:

  • 标准化压缩距离(NCD)
  • Damerau-Levenshtein距离
  • Jaro-Winkler距离
  • Levenshtein距离
  • 最佳字符串对齐距离(OSA)

("为了比较,Harry从输入中加载一组字符串,计算指定的相似性度量并将相似值矩阵写入输出")

起初,就像我第一次使用R一样,我没有注意到^的文档,所以我将它用于相似度矩阵 。我知道我应该使用相异矩阵,我知道,因为我的相似性矩阵被归一化[0,1],我可以做 difimilarity = 1 - 相似性然后使用[\s,.;]{pattern}(?:[\s,.;]|$)

但是,我使用hclust使用相似度矩阵获得的群组比使用hclust使用hclust及其对应的群体要好得多>不相似矩阵

我也尝试使用hclust软件包和同样的问题,我得到的组不是我预期的,发生了。

使用相似度函数得到树形图:

  1. proxy
  2. 我尝试了不相似矩阵:

    1. plot(hclust(as.dist(""similarityMATRIX""), "average"))
      1. plot(hclust(as.dist(""dissimilarityMATRIX""), "average"))
      2. 从(1)我得到了我认为非常好的树形图,因此我可以从中获得非常好的群体。从(2)和(3)我得到相同的树状图,我可以得到的组不是我得到的组(1)

        我说这些群体不好/好,因为目前我的数据量很少,无法分析,所以我可以很容易地检查它们。

        这对我来说是否有意义?有什么可以证明这一点吗?关于如何使用相似性matrizx进行聚类的一些建议。是否有更好的方法可视化相似性矩阵而不是树状图?

1 个答案:

答案 0 :(得分:0)

您可以使用热图可视化相似性矩阵(例如,使用heatmaply R包)。 您可以使用dendextend R包函数foreach (var column in dgwCustomTableSelected.Columns) { if (column is DataGridTextColumn) { ((DataGridTextColumn)column).Binding = new Binding() { Converter = new NullValueConverter((string)column.Header) }; } } 检查树形图是否合适(使用github中的最新版本)。

基于距离的聚类可以使用hclust完成,但也可以使用cluster :: pam(k-medoids)。