Python 如何解释k Medoids输出

Python 如何解释k Medoids输出,python,cluster-analysis,Python,Cluster Analysis,我找到了K-Medoids的实现,并决定在我的代码中尝试它 我的原始数据集是一个21x6矩阵 要生成我正在使用的距离矩阵,请执行以下操作: import scipy.spatial.distance as ssd distanceMatrix = ssd.squareform(ssd.pdist(matr, 'cosine')) 然后我决定了一些集群: clusters = int(np.sqrt(len(matr.data)/2)) 最后: clusters, medoids = self

我找到了K-Medoids的实现,并决定在我的代码中尝试它

我的原始数据集是一个21x6矩阵

要生成我正在使用的距离矩阵,请执行以下操作:

import scipy.spatial.distance as ssd
distanceMatrix = ssd.squareform(ssd.pdist(matr, 'cosine'))
然后我决定了一些集群:

clusters = int(np.sqrt(len(matr.data)/2))
最后:

clusters, medoids = self.cluster(distanceMatrix,clusters)
print(clusters)
print(medoids)
对于给定的输入,我得到以下输出:

[12 12 12 12 12 12 12  7  7  7  7 11 12 12 12 12 12 12 11 12 12]
[12  7 11]
当我期待一个类似于矩阵中每个点都有一个标签的输出时。
如果我想使用结果分散簇元素,我应该如何处理这种输出,如下图所示(我使用的是k-Means)

k-medoids使用数据点作为中心,因此
print(medoids)
将为您提供输入数据集中的中心索引,
print(clusters)
将为您提供数据点所属的组

图中的星星是数据集[12]、数据集[11]和数据集[7]

这段代码不是kMedoids(PAM)。这是另外一回事儿。@Anony Mouse谢谢你指出这一点,我根本不是聚类专家。这样的实施会更好吗?与L.Kaufman和P.Rousseeuv《基于L1范数和相关方法的统计数据分析》中的“通过Medoids进行聚类”相比,该算法看起来也不一样,Y.Dodge,Ed.Elsevier,1987,第405–416页。