Python质心中的KMeans位置不正确,我如何“取消缩放”它们?
Posted
技术标签:
【中文标题】Python质心中的KMeans位置不正确,我如何“取消缩放”它们?【英文标题】:KMeans in Python centroids not in correct position, how do I "unscale" them? 【发布时间】:2020-04-28 14:21:44 【问题描述】:我有一个小脚本可以在 jupyter 笔记本中运行。 Kmeans 似乎工作正常,但我的质心按比例缩小。如何让它们在我的绘图上正确显示?我的 x 和 y 范围从 0 到每边大约 500。
from pandas import DataFrame
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.preprocessing import scale
import pandas as pd
plt.figure(figsize=(8, 6))
df = pd.read_csv("sales-by-week-4.csv")
df2 = DataFrame(df,columns=["Average Sale Price", "Average Weekly"])
plt.figure(figsize=(8, 6))
kmeans = KMeans(n_clusters=5).fit(scale(df2))
centroids = kmeans.cluster_centers_
print(centroids)
plt.scatter(df2["Average Weekly"], df2["Average Sale Price"], c= kmeans.labels_.astype(float), s=50, alpha=0.5)
plt.scatter(centroids[:, 0], centroids[:, 1], c='red', s=50)
这是我的质心打印。
[[ 2.65044538 -0.37653707]
[-0.64002758 -0.25885017]
[-0.39559393 5.26965425]
[ 0.91316601 -0.29410492]
[-0.5276885 0.8949181 ]]
【问题讨论】:
【参考方案1】:您在缩放的数据框上安装了 KMeans。尝试仅适合df2
【讨论】:
以上是关于Python质心中的KMeans位置不正确,我如何“取消缩放”它们?的主要内容,如果未能解决你的问题,请参考以下文章
在 python / pyspark 中获取 k-means 质心和异常值
如何使用 tSNE 和 kmeans 质心找到质心对应的原始数据点?
python - 如何在python中使没有簇质心的簇不可见?
如何使用 skleans 的 KMeans 查看 n_init 每次迭代的集群质心
详解聚类算法Kmeans-重要参数init & random_state & n_init:初始质心怎么放更好菜菜的sklearn课堂笔记