Я пытаюсь кластеризовать 2 распределения с помощью K-средних и использовать косинусное сходство в качестве метрики для определения сходства.Я написал следующий код.Но выдает ошибку:
Error: no centroid defined for empty cluster.
Try setting argument 'avoid_empty_clusters' to True
Я не мог понять причину этого.Мне нужно создать 2 кластера.
import numpy as np
from nltk.cluster.kmeans import KMeansClusterer
import nltk as nltk
np.random.seed(1)
distr_1 = np.sin(2 * np.random.randn(100) + np.random.randn())
distr_2 = (3 * np.random.randn(100)) + np.random.randn()
x = list(range(0,100))
X_train = np.concatenate((distr_1, distr_2))
X_train = X_train.reshape(200,1)
kclusterer = KMeansClusterer(2, distance=nltk.cluster.util.cosine_distance, repeats=100)
assigned_clusters = kclusterer.cluster(X_train.flatten(), assign_clusters=True)
print(assigned_clusters)