#python #scipy #k-means
Вопрос:
Я не уверен, как работает назначение кластера scipy-я попытался вручную назначить кластеры сам, используя центры кластеров, и не смог получить точно такое же назначение:
np.random.seed(0)
data = np.random.randn(10000, 10)
num_clusters = 64
cluster_centers, cluster_assignments = scipy.cluster.vq.kmeans2(data, num_clusters, minit='points', seed=0)
assignments = []
for i in tqdm(range(10000)):
feat = data[i]
min_cluster_idx, min_dist = 0, 1e10
for cluster_idx in range(64):
dist = np.sum(np.square(cluster_centers[cluster_idx] - feat))
if dist < min_dist:
min_cluster_idx = cluster_idx
min_dist = dist
assignments.append(min_cluster_idx)
print((cluster_assignments == assignments).sum())
# ^ prints 9718
Есть идеи, почему это 9718, а не 10000?