kmeans scatter plot: traza diferentes colores por grupo
Estoy tratando de hacer un diagrama de dispersión de una salida de kmeans que agrupe oraciones del mismo tema juntas. El problema que estoy enfrentando es trazar puntos que pertenecen a cada grupo de un color determinado.
sentence_list=["Hi how are you", "Good morning" ...] #i have 10 setences
km = KMeans(n_clusters=5, init='k-means++',n_init=10, verbose=1)
#with 5 cluster, i want 5 different colors
km.fit(vectorized)
km.labels_ # [0,1,2,3,3,4,4,5,2,5]
pipeline = Pipeline([('tfidf', TfidfVectorizer())])
X = pipeline.fit_transform(sentence_list).todense()
pca = PCA(n_components=2).fit(X)
data2D = pca.transform(X)
plt.scatter(data2D[:,0], data2D[:,1])
km.fit(X)
centers2D = pca.transform(km.cluster_centers_)
plt.hold(True)
labels=np.array([km.labels_])
print labels
Mi problema está en el código inferior paraplt.scatter (); ¿Qué debo usar para el parámetro?c?
cuando usoc=labels
en el código, me sale este error:number in rbg sequence outside 0-1 range
2.Cuando configuroc= km.labels_
en cambio, me sale el error:
ValueError: Color array must be two-dimensional
plt.scatter(centers2D[:,0], centers2D[:,1],
marker='x', s=200, linewidths=3, c=labels)
plt.show()