【发布时间】:2021-09-15 00:47:25
【问题描述】:
我在网格上有一组 3D 点,我想知道如何对它们进行聚类,以使给定聚类中的每个点与该聚类中的至少一个点至多有一定的距离(欧几里得距离)。
例如,假设有 5 个点:{A, B, C, D, E}。如果点A距离B最多1.414个单位,那么它们属于同一个簇,如果点C距离A或B最多1.414个单位,那么它也属于那个簇.另一方面,如果 D 与 A、B 或 C 之间的距离超过 1.414 个单位,则它不属于该集群,依此类推。
输入数据可以找到here.
我需要的输出是每个集群的大小、每个集群的中心(质心)以及特定集群中的哪些点。
虽然这不是严格意义上的聚类问题,但我尝试了 k-means、DBSCAN 聚类方法,但无法获得最佳结果。
关于如何进行的任何想法?
【问题讨论】:
标签: python numpy scikit-learn scipy cluster-analysis