我有大量的 3D 点数据,我希望像这样对它们进行聚类:
- 每个簇包含所有点的距离最大从集群中的另一个点。
- 两个不同簇中的所有点至少距离从彼此。
使用的距离是欧几里得距离。
这是一个众所周知的聚类算法吗?如果有,叫什么?谢谢。
我有大量的 3D 点数据,我希望像这样对它们进行聚类:
使用的距离是欧几里得距离。
这是一个众所周知的聚类算法吗?如果有,叫什么?谢谢。
创建一个图,其中点是节点并且两个点与边连接当且仅当它们位于距离内彼此的。在这些条款中,您的标准变为
由两个或多个节点组成的集群中的每个节点都连接到该集群中的至少一个其他节点。
任何不相交的集群中的任何两点都不能相互连接。
简而言之,您想要计算该图的连通分量。线性时间算法众所周知且易于执行,如Wikipedia 文章中所述。
要对 3D 中的许多点有效地执行此操作,您需要限制执行的距离计算量。八叉树之类的数据结构,甚至更简单的数据结构(例如利用点的字典排序)都可以很好地工作。