在numpy中实现KMedoids:medoids选择步骤

2024-09-30 22:14:31 发布

您现在位置:Python中文网/ 问答频道 /正文

作为this question的作者,我尝试使用numpy实现K-Medoids。然而,我更感兴趣的是如何实现medoidividualization步骤(第二步,在[2]),包括一个一个簇地选择一个样本,使与属于同一个簇的其他样本的距离之和最小化。 假设我们有相同的结构描述在[1]:

# Number of samples
n_samples = 5
# Distance square matrix
D = np.array([[ 0.,  3.04959014,  4.74341649,  3.72424489,  6.70298441],
              [ 3.04959014,  0.        ,  5.38516481,  4.52216762,  6.16846821],
              [ 4.74341649,  5.38516481,  0.        ,  1.02469508,  8.23711114],
              [ 3.72424489,  4.52216762,  1.02469508,  0.        ,  7.69025357],
              [ 6.70298441,  6.16846821,  8.23711114,  7.69025357,  0.        ]])
# Medoids
medoids = np.array([0, 3])
# Cluster membership array
cl = np.array([0, 0, 1, 1, 0])

我不能用numpy实现它。。。有人能帮我吗?在

[编辑] 我目前的最佳解决方案是:

^{pr2}$

Tags: numpy距离numbernp步骤作者this结构