R:使用相似性或相异性矩阵进行聚类?并将结果可视化
R: clustering with a similarity or dissimilarity matrix? And visualizing the results
我有一个使用 Harry 创建的相似度矩阵——一种字符串相似度工具,我想从中绘制一些树状图,看看是否能找到一些聚类/ 数据中的组。我正在使用以下相似性度量:
- 归一化压缩距离 (NCD)
- Damerau-Levenshtein 距离
- Jaro-Winkler 距离
- 编辑距离
- 最佳字符串对齐距离 (OSA)
("For comparison Harry loads a set of strings from input, computes the specified similarity measure and writes a matrix of similarity values to output")
一开始好像是第一次用R,没怎么注意hclust
的文档,所以用了一个相似度矩阵。我知道我应该使用 差异矩阵 ,而且我知道,因为我的 相似矩阵 是标准化的 [0,1],所以我可以做 dissimilarity = 1 - similarity 然后使用 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)
我说分组是bad/good是因为目前我要分析的数据量有点少,所以我可以很容易地检查它们。
我得到的这些有意义吗?有什么可以证明这一点?关于如何使用相似矩阵进行聚类的一些建议。有没有比树状图更好的可视化相似度矩阵的方法?
我有一个使用 Harry 创建的相似度矩阵——一种字符串相似度工具,我想从中绘制一些树状图,看看是否能找到一些聚类/ 数据中的组。我正在使用以下相似性度量:
- 归一化压缩距离 (NCD)
- Damerau-Levenshtein 距离
- Jaro-Winkler 距离
- 编辑距离
- 最佳字符串对齐距离 (OSA)
("For comparison Harry loads a set of strings from input, computes the specified similarity measure and writes a matrix of similarity values to output")
一开始好像是第一次用R,没怎么注意hclust
的文档,所以用了一个相似度矩阵。我知道我应该使用 差异矩阵 ,而且我知道,因为我的 相似矩阵 是标准化的 [0,1],所以我可以做 dissimilarity = 1 - similarity 然后使用 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)
我说分组是bad/good是因为目前我要分析的数据量有点少,所以我可以很容易地检查它们。
我得到的这些有意义吗?有什么可以证明这一点?关于如何使用相似矩阵进行聚类的一些建议。有没有比树状图更好的可视化相似度矩阵的方法?