我如何从熊猫绘制 k 均值聚类?

Posted

技术标签:

【中文标题】我如何从熊猫绘制 k 均值聚类?【英文标题】:How do i plot k-mean clustering from pandas? 【发布时间】:2019-07-29 16:10:59 【问题描述】:

我正在尝试对来自不同公司的产品销售数据进行聚类。请注意,我将列中的任何字符串都映射为数值,因此我可以使用 k-means 聚类。我有以下代码,我在我的数据上做 k-means

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 均值聚类图?我试过了

plt.scatter(results.index,results['cluster'], c='black')
plt.plot(results)

但是有没有更好的方法呢?

【问题讨论】:

你的做法有什么问题?你应该指定你的问题,否则这个问题很可能会被关闭为基于意见(在 python 中有很多绘制数据的方法)。 【参考方案1】:

和你做的一样,但你可以在 DataFrame 本身上调用plot.scatter

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')

输出:

【讨论】:

以上是关于我如何从熊猫绘制 k 均值聚类?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Ruby 进行一维 k 均值聚类?

如何在python中绘制重叠簇

如何使用 MapReduce 进行 k 均值空间聚类

如何获得一维数据的k均值聚类?

如何根据条件获取给定数据的 k 聚类平均值?

如何对时间序列数据执行 K-means 聚类?