微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python中矩形簇的聚类

如何解决python中矩形簇的聚类

我有一个二维点的数据库,我想将它们聚集成矩形簇,如下图所示。

我想最小化簇表面的总和,不要有太多簇。

你知道任何相关的python实现吗?

解决方法

所以我找到了解决方案:具有切比雪夫距离的 kmeans 聚类效果很好。

您可以在下面找到一个实现,使用 2d pandas 数据框 df

from scipy.cluster.hierarchy import fclusterdata 

n_clusters = 10 #To choose (elbow method,...)

def chebychev_dist(v1,v2): 
    return max([abs(v1[i]-v2[i]) for i in range(len(v1))])

cluster_data = fclusterdata(df,t=n_clusters,criterion='maxclust',metric=chebychev_dist)

df['c'] = cluster_data

plt.scatter(df['x'],df['y'],c=df['c'],s=50,cmap='viridis')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。