在scipy层次聚类中获取非单一群集ID

时间:2014-06-12 13:36:54

标签: python scipy cluster-analysis hierarchical-clustering

根据Scipy documentation,我们可以获得非单一群集的群集ID。我曾在stack-overflow问过同样的问题。但这似乎不是最好的解决方案,我尝试了几个。我仍然无法获得非单身人士的群集ID。

import numpy as np
import scipy.cluster.hierarchy
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage

mat = np.array([[ 0. , 1. , 3.  ,0. ,2.  ,3.  ,1.],
 [ 1. , 0. , 3. , 1.,  1. , 2. , 2.],
 [ 3.,  3. , 0.,  3. , 3.,  3. , 4.],
 [ 0. , 1. , 3.,  0. , 2. , 3.,  1.],
 [ 2. , 1.,  3. , 2.,  0. , 1.,  3.],
 [ 3. , 2.,  3. , 3. , 1. , 0. , 3.],
 [ 0. , 2.,  4. , 1. , 3.,  3. , 0.],
 [ 1. , 2.,  5. , 1. , 3.,  1. , 0.],
 [ 4. , 2.,  4. , 1. , 3.,  0. , 0.],
 [ 1. , 2.,  2. , 1. , 0.,  3. , 0.]])

n = len(mat)


linkage_matrix = linkage(mat, "complete")



D = dendrogram(linkage_matrix,
              p=4,
              color_threshold=1,
              truncate_mode='lastp',
              distance_sort='ascending')

plt.show()

如何知道谁在里面(5),(2)和(2)?这是一个非常简单的图表,但是对于许多非单一集群来说这变得更加复杂。

enter image description here

0 个答案:

没有答案