我有一个包含X和Y轴值的数据框
它们没有任何标签
它们看起来如下所示
X坐标 | Y坐标 |
---|---|
12 | 34 |
99 | 42 |
90 | 27 |
49 | 64 |
是否可以使用KMeans来聚类这些数据?
如何获得标签并为每个聚类绘制数据图表?
回答:
是的,即使没有标签,你也可以使用K-Means,因为K-Means是一种无监督方法,但是…
首先,你需要缩放你的数据,因为K-Means是一种基于距离的算法,它使用数据点之间的距离来确定它们的相似性。更多相关信息请点击这里。我发现这个教程对聚类非常有用,你可以从那里开始。它还描述了如何首先使用轮廓图或肘部图来绘制你的数据,以确定最佳聚类数量。
它应该看起来像这样:
from sklearn.cluster import KMeanskmeans_model = KMeans(n_clusters=n_clusters) # 你可以从轮廓图/肘部图中获取n_clusters,或者尝试不同的数量kmeans_model.fit(your_dataframe)labels = kmeans_model.predict(your_dataframe)print(labels)
K-Means并非总是表现完美,如果你想获得更好的结果,你也可以尝试其他算法,如DBSCAN, HDBSCAN, 层次聚类…。选择哪一种总是取决于你的数据。