#python #pandas #data-science #k-means
#python #pandas #наука о данных #k-means
Вопрос:
Я пытаюсь сгруппировать данные о продажах продукции различных компаний. Обратите внимание, что я сопоставил любые строки в своих столбцах с числовыми значениями, чтобы я мог использовать кластеризацию k-средних. У меня есть следующий код, в котором я выполняю k-средние значения для своих данных
FeaturesDf=FeaturesDf[['company_value','Date_value','product_value']]
# Convert DataFrame to matrix
mat = FeaturesDf.values
#Using sklearn
km = sklearn.cluster.KMeans(n_clusters=5)
km.fit(mat)
# Get cluster assignment labels
labels = km.labels_
# Format results as a DataFrame
results = pd.DataFrame(data=labels, columns=['cluster'], index=orderFeaturesDf.index)
как мне построить график кластеризации k-mean этого? Я пытался
plt.scatter(results.index,results['cluster'], c='black')
plt.plot(results)
но есть ли лучший способ сделать это?
Комментарии:
1. В чем проблема с тем, как вы это сделали? Вы должны указать свою проблему, иначе этот вопрос, скорее всего, будет закрыт как основанный на мнениях (в python существует много способов построения данных).
Ответ №1:
То же самое, что вы сделали, но вы можете вызвать plot.scatter
сам DataFrame:
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
n = 1000
d = pd.DataFrame({
'x': np.random.randint(0,100,n),
'y': np.random.randint(0,100,n),
})
m = KMeans(5)
m.fit(d)
d['cl'] = m.labels_
d.plot.scatter('x', 'y', c='cl', colormap='gist_rainbow')
Вывод: