问题描述
我使用Bindiff计算了恶意软件文件之间的相似性,因此根据成对相似性比较建立了相似性矩阵。
我想使用scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean')
对结果进行scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean')
,但是文档说y应该是压缩或冗余距离矩阵。
那么,我如何将相似度矩阵(NOT距离矩阵)转换为所需的格式?
在它提到y
可以是距离矩阵的上三角形。
但我想指出Bindiff中的比较顺序会改变结果,因此similarity(file1,file2) != similarity(file2,file1)
那我怎么能克服这个问题呢?
1楼
您可以自己实现层次聚类!
有 。 您需要做的就是使用相似度而不是距离。
但是你会很快意识到,你需要使它成为两个距离的对称相似度,最小值,平均值,最大值,无论如何。