我有三個矩陣進行比較。他們每個人都是5x6。我最初想要使用層次聚類來對矩陣進行聚類,以便在給定相似閾值的情況下對最相似的矩陣進行分組。距離矩陣的樹形圖或其他圖
我在python中找不到任何這樣的函數,所以我實現了手動距離度量,(p-norm where p=2)。現在我有一個3x3的距離矩陣(我認爲這也是這種情況下的相似矩陣)。
我現在試圖產生樹狀圖。這是我的代碼,這是錯的。 I 想要產生顯示最相似的矩陣的聚類的圖(可能的樹形圖)。矩陣0,1,2,0和2是相同的,應該先聚集在一起,1是不同的。
的距離矩陣如下所示:
> 0 1 2
0 0.0 2.0 3.85e-16
1 2.0 0.0 2.0
2 3.85e-16 2.0 0.0
代碼:
from scipy.cluster.hierarchy import dendrogram
import matplotlib.pyplot as plt
import numpy as np
from scipy.cluster.hierarchy import linkage
mat = np.array([[0.0, 2.0, 3.8459253727671276e-16], [2.0, 0.0, 2.0], [3.8459253727671276e-16, 2.0, 0.0]])
dist_mat = mat
linkage_matrix = linkage(dist_mat, "single")
dendrogram(linkage_matrix, color_threshold=1, labels=["0", "1", "2"],show_leaf_counts=True)
plt.title=("test")
plt.show()
什麼是聯動(dist_mat的意思,「單「)?我假設輸出圖看起來像這樣,其中距離爲0和1之間的距離爲2.0(例如)。
是否有更好的方法來表示這些數據?是否有一個函數可以用幾個矩陣代替點,比較和形成距離矩陣,然後聚類?對於如何可視化這些矩陣之間的差異,我願意接受其他建議。
這似乎是正確的,那就意味着一流的0和2的分組,然後他們兩個用1分組高度是距離,並且由於(0,2)的簇具有約〜3.4的距離,所以一切正常。 – JeD
@JeD - 謝謝。是否有一個函數可以用幾個矩陣代替點,比較和形成距離矩陣,然後聚類? – amc