scipy中联动函数的输入应该是什么?

What should be the input of the linkage function in scipy?

我使用Bindiff计算了恶意软件文件之间的相似度,据此构建了一个基于两两相似度比较的相似度矩阵。我想使用 scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean') 对结果进行聚类,但文档说 y 应该是一个压缩或冗余距离矩阵。 那么,如何将相似度矩阵(不是距离矩阵)转换为所需的格式?

this thread 中提到的 y 可以是距离矩阵的上三角。但我想指出 Bindiff 中的比较顺序会改变结果,因此 similarity(file1,file2) != similarity(file2,file1)

那么我该如何解决这个问题呢?

您可以自己实现层次聚类!

tutorials for implementing it个。您需要做的就是使用相似度而不是距离。

但是您很快就会意识到,您需要使其成为对称相似性,两个距离的最小值、平均值、最大值,等等。