【发布时间】:2017-12-17 02:29:12
【问题描述】:
我有一个使用 Harry 创建的相似度矩阵——一个字符串相似度的工具,我想从中绘制一些树状图,看看我是否可以在数据中找到一些集群/组.我正在使用以下相似性度量:
- 归一化压缩距离 (NCD)
- Damerau-Levenshtein 距离
- Jaro-Winkler 距离
- Levenshtein 距离
- 最佳字符串对齐距离 (OSA)
("为了比较,Harry 从输入加载一组字符串,计算指定的相似性度量并将相似性值矩阵写入输出")
一开始好像是第一次用R,没太注意hclust的文档,所以用了一个相似度矩阵。我知道我应该使用 dissimilarity matrix,而且我知道,因为我的 similarity matrix 是标准化的 [0,1],我可以只做 dissimilarity = 1 - 相似度,然后使用hclust。
但是,我使用带有相似矩阵的hclust得到的组比我使用hclust得到的组要好得多,并且它是对应的不相似矩阵。
我也尝试使用proxy 包,但同样的问题发生了,我得到的组不是我所期望的。
使用相似度函数获取树状图:
plot(hclust(as.dist(""similarityMATRIX""), "average"))
使用我尝试的相异矩阵:
plot(hclust(as.dist(""dissimilarityMATRIX""), "average"))
和
plot(hclust(as.sim(""dissimilarityMATRIX""), "average"))
从 (1) 我得到了我认为非常好的树状图,因此我可以从中得到非常好的组。从(2)和(3)我得到相同的树状图,我可以从中得到的组不如我从(1)中得到的组
我是说这些组是坏/好,因为目前我要分析的数据量很少,所以我可以很容易地检查它们。
我得到的这些有意义吗?有什么可以证明这一点的吗?关于如何使用相似矩阵进行聚类的一些建议。有没有比树状图更好的方法来可视化相似度矩阵?
【问题讨论】:
-
您提到您使用了三个相似性度量,但它们都被称为
Something Distance暗示不相似性度量。 -
如果没有一些数据可以处理,就很难提供帮助。写问题时,请牢记“我怎样才能最好地让别人更容易帮助我?”。 10 次中有 9 次的答案是发布一段代码,潜在的回答者可以简单地复制/粘贴到他们自己的编辑器中,运行它,并以相同的方式重现(核心部分)您遇到的问题。
-
@G5W - 从您的评论并再次查看这些“距离”似乎工作的方式,我相信您是正确的,事实上,它们计算了两个字符串之间的差异。因为他们基本上分析了将一个字符串转换为另一个字符串需要什么(删除、插入等)。
标签: r matrix similarity dendrogram