如何绘制一维 K 均值聚类

How to plot a 1D K-means cluster

我有一个向量 (X2),我想调查它们可以形成的组。 我已经执行了 K-means 分析,有 2 个集群: 形状 X2 = (19,1)

kmeans = KMeans(n_clusters=2,random_state=123)                 
kmeans.fit(X2)                                                
label = kmeans.fit_predict(X2)
 
print(label)
[0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0]

现在我想绘制这两个集群的散点图。 有人可以帮我看剧情吗

我不确定如何将标签与我的矢量 (X2) 相关联以及在 x 轴和 y 轴上放置什么。

我想要这样的东西:

但我不知道如何组织绘图,因为标签不是 x 轴。我现在是 y 轴 (X2),缺少的是 x 轴以及如何将标签与颜色关联到 X2

您显示的绘图是 3 维图形,space X (x,y) 和 class。

如果我理解你的问题,你正在对一维样本进行聚类。您不需要 3 维图形,而是 2 维图形。可以忘记图形的颜色,用y轴表示class(-1,1).

如果需要,您可以将它们投影到二维 space 上,方法是添加一个假维度 (y=0),并使用 matplotlib 的颜色参数和 class 预测值。

您可以将 x 点绘制为索引,将 y 点绘制为实际值 (X2)。如果我们到了你想要关联颜色的地步,你可以使用 matplotlib 散点法的 'c' 关键字。

举个例子:

plt.scatter([i for i in range(len(X2))], X2, c=labels)

color(c) = labels,将具有相同颜色的相同对应标签的索引分散。您也可以使用 c="red" 使每个点都变成红色。