加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用scikit包在Python中绘制集群区域的边界

发布时间:2020-12-16 22:46:51 所属栏目:Python 来源:网络整理
导读:这是我在3属性(x,y,value)中处理数据聚类的简单示例.每个样本代表其位置(x,y)及其所属变量. 我的代码发布在这里: x = np.arange(100,200,1)y = np.arange(100,1)value = np.random.random(100*100)xx,yy = np.meshgrid(x,y)xx = xx.reshape(100*100)yy = yy

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

我的代码发布在这里:

x = np.arange(100,200,1)
y = np.arange(100,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,vb,cmap = plt.cm.Accent)

这个数字如下:

enter image description here

如何识别每个聚类区域的边界并勾画它们以加强可视化效果.

PS

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

enter image description here

PPS

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

enter image description here

更新

我尝试了子程序后:

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

完成!

enter image description here

最佳答案
群集区域实际上只是群集中心的Voronoi图. Scipy有一些工具可以在给定一组点的情况下计算Voronoi单元. This page有一些关于如何做到这一点的例子.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读