最近从事一个空间分析项目,我需要一种将一系列点分配给集群的方法,其中集群中的所有点都必须在合理的步行距离内。为了使这一点更加具体,我将使用一个假设的场景。 Alexa 是一位富有进取心的企业家,他预测随着气候变化的日益临近,冰淇淋的需求将会增加。她计划在一个地区设立多辆冰淇淋车,但担心有些面包车可能会用完冰淇淋,因此她需要服务员足够快地在面包车之间转移冰淇淋,以免冰淇淋融化。
如果 Alexa 有聚类经验,她可能会立即想到的一种方法是基于密度的聚类或 DBSCAN,因为使用 DBSCAN,???? 参数控制新点与聚类之间允许的最大距离,以便将该点添加到聚类中。簇。然而,对于非常宽的集群,集群两端的两个点将距离太远,服务员将无法在他们的货车之间转移冰淇淋。因此,分层方法可能更合适。但是,由于层次聚类还依赖于第一次迭代后点和簇之间的距离,根据所选择的树切割,它要么产生太多的小簇,要么将许多货车聚集在一起,这些距离可能太远,并且无法提供中间立场冰淇淋业务所需的解决方案。
Alexa的业务需求,是让每辆货车属于多个集群;换句话说,