【问题标题】:Plotting the boundaries of cluster zone in Python with scikit package使用 scikit 包在 Python 中绘制集群区域的边界
【发布时间】:2016-10-09 00:18:31
【问题描述】:

这是我在 3 个属性(x,y,值)中处理数据聚类的简单示例。每个样本代表其位置(x,y)及其所属变量。

我的代码在这里发布:

x = np.arange(100,200,1)
y = np.arange(100,200,1)
value = np.random.random(100*100)

xx,yy = np.meshgrid(x,y)
xx = xx.reshape(100*100)
yy = yy.reshape(100*100)
j = np.dstack((xx,yy,value))[0,:,:]

fig = plt.figure(figsize =(12,4))
ax1 = plt.subplot(121)
xi,yi = np.meshgrid(x,y)
va    = value.reshape(100,100)
pc = plt.pcolormesh(xi,yi,va,cmap = plt.cm.Spectral)
plt.colorbar(pc)

ax2 = plt.subplot(122)
y_pred = KMeans(n_clusters=12, random_state=random_state).fit_predict(j)
vb = y_pred.reshape(100,100)
plt.pcolormesh(xi,yi,vb,cmap = plt.cm.Accent)

图在这里展示:

如何识别每个聚类区域的边界并勾勒出来,以加强可视化效果。

PS

这是我手动绘制的插图。我需要识别聚类边界并用线条描绘它们。

PPS

我发现了一个有趣的问题here试图在R中绘制聚类区域的边界

更新

我尝试子程序后如下:

for i in range(n_cluster):
    plt.contour(vb ==i contours=1,colors=['b']) 

完成了!

【问题讨论】:

    标签: python matplotlib scikit-learn cluster-analysis k-means


    【解决方案1】:

    集群区域实际上只是集群中心的 Voronoi 图。 Scipy 有一些工具可以计算给定一组点的 Voronoi 单元。 This page 提供了一些关于如何做到这一点的示例。

    【讨论】:

      猜你喜欢
      • 2017-08-10
      • 2019-04-22
      • 2021-09-27
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      • 2018-12-20
      相关资源
      最近更新 更多