2017-02-16 29 views
1

我使用Bindiff計算惡意軟件文件之間的相似度,因此基於成對相似性比較建立了相似度矩陣。我想使用scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean')將結果聚類,但文檔說y應該是一個壓縮或冗餘距離矩陣。 那麼,如何將相似度矩陣(NOT距離矩陣)轉換爲所需的格式?scipy中的聯動功能應該怎麼輸入?

其中this thread這裏提到的y可以是他距離矩陣的上三角形。但我想指出的是,Bindiff中的比較順序改變了結果,因此我如何解決這個問題呢?similarity(file1,file2) != similarity(file2,file1)

那麼我該如何解決這個問題呢?

回答

0

你可以自己實現層次聚類!

還有tutorials for implementing it。你所需要做的就是使用相似度而不是距離。

但你很快就會意識到,你需要使它成爲一個對稱相似,最小值,平均值,這兩個距離,任何的最大值。

+0

但是我所擁有的相似性矩陣並不是對稱的,正如我的文章所述,這是由於計算的bindiff受文件順序的影響 – Mohannad

+0

是的,再次說明:您*需要*使其對稱以上述功能之一爲例。否則,你不能集羣。考慮兩點,但與bindiff 1 resp。 2 - 它們在哪些相似處合併?選擇一個答案。 –

相關問題