如何解决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 举报,一经查实,本站将立刻删除。