【发布时间】:2018-12-07 21:49:24
【问题描述】:
我有以下场景:
我的输入是一组points。每个点(Long_Lat 坐标)对应一个区域的子部分的质心,并且对学校有需求。就像 50 个需要在附近上学的孩子一样。
在使用集群方法(like k-means or DBscan)按邻近度聚合这些点后,我想将需求点分配给学校,以使集群需求(该集群上所有点需求的总和)得到满足.
换句话说,我想在该集群上创建学校并将孩子(积分)分配给这些学校。
学校有固定容量限制。
即:我需要 3 所学校(可容纳 40 人),以供应集群 C4 的 100 名儿童需求(P1、P2、P3)。
主要目标当然是了解这些学校的位置。但我可以使用逻辑检索它。
我应该使用什么方法来填充集群的容量? 这是正确的方法吗?
【问题讨论】:
-
“应该”在很大程度上取决于您的健康标准——您未能提供这些标准。看来您已经用 k-means 解决了大部分分配问题。例如,当您设置 k=3(对于您拥有的三所学校)并运行 k-means 时会发生什么?这怎么不能很好地解决你的问题?我们需要您专注于特定问题,以使其适合 Stack Overflow。
-
对不起,如果不能更具体。 K-means 和 Dbscan 仅使用欧几里得距离。如何将 需求 限制添加到集群化中?
-
“使用欧几里得距离”驱动聚类。我仍然不清楚:这是否也推动了你的学生安置?您是否试图尽量减少所有学生上学的总距离?您需要最佳解决方案,还是一个近似的“好”解决方案就足够了?
-
我真正需要的是为 3 个学校规模创建所有可能的学校配置。之后,我可以解决最佳使用设施位置(使用 gurobi)。但首先我需要初始点。以为我可以使用 ML 来创建它们。
标签: python machine-learning scikit-learn geojson