Давайте представим, что у вас есть способ узнать, какой раздел k-средних представляет какое настроение, вы можете построить круговую диаграмму следующим образом:
print(model.labels_) # For illustration, you can see which sentence is in which cluster
# Here we get the proportions
nb_samples = [sum(model.labels_ == j) for j in range(true_k)]
# On the next line the order is RANDOM. I do NOT know which cluster represents what.
# The first label should represent samples in cluster 0, and so on
labels = 'positive', 'neutral', 'negative'
colors = ['gold', 'red', 'lightblue'] # Same size as labels
# Pie chart
plt.pie(nb_samples, labels=labels, colors=colors, autopct='%1.1f%%')
plt.axis('equal')
plt.show()
Кроме того, несколько прогонов дадут вам разныерезультаты с точки зрения того, какой кластер представляет какую категорию.
Этого можно избежать, задав числовое случайное начальное число.
import numpy as np
np.random.seed(42) # Or any other integer