У меня есть проект кластеризации текста, использующий алгоритм k-средних. Мой набор данных - это политические настроения комментариев Facebook, так что каждый комментарий имеет положительный, отрицательный и нейтральный ярлык.
В моей прикладной программе я сделал следующее:
1. Normalize text and delete stopwords.
2. Term weighting using tf-idf.
3. Constructing a matrix of vectors for each comment data.
4. Set the number of clusters to 3 (based on the number of labels).
5. Choose centroid randomly based on the label. So each label contributes 1 comment as a centroid.
6. Calculate the distance of each comment's vector with each centroid, assign to the closest centroid.
7. Calculate the vector's average of each cluster as a new centroid.
8. Repeat steps 6 and 7 until the centroid does not change.
9. The final cluster results.
В результатах кластеризации, которые я получил, есть кластеры, в которых нет участников. Например, я установил число кластеров равным 3, но в результате только 2 кластера имеют членов, а 1 другой кластер пуст.
Возможно ли это для алгоритма k-средних? Как решить эту проблему? Или, может быть, в моей прикладной программе есть ошибки?