使用需求进行分类的机器学习方法

我有以下场景:

我的输入是一组。每个点(经纬度坐标)对应于一个区域子部分的中心点,并且有一个对学校的需求。比如,某个社区需要为50个儿童提供学校。

在使用聚类方法(如k-means或DBscan)按邻近性聚合这些点后,我希望将需求点分配到学校,使得每个聚类的需求(该聚类中所有点需求的总和)得到满足。

换句话说,我希望在这个聚类中创建学校,并将儿童()分配到这些学校中。

学校有固定容量限制

例如:我需要3所学校(每所容量为40),来满足聚类C4中100个儿童的需求(P1, P2, P3)。

主要目标当然是了解这些学校的位置。但我可以使用逻辑来获取这些信息。

我应该使用什么方法来填充聚类的容量?这是正确的做法吗?


回答:

对于分布均匀的数据,我预期最有效的方法是从k-means聚类开始。如果每个生成的聚类都能满足学校的容量,你就得到了一个解决方案。

然而,你的“担忧”情况是至少有一所学校超过了容量。例如,你在一条宽河的北侧有20个儿童,南侧有90个儿童,学校的容量为40:你需要将南侧的至少10个儿童分配到北侧。

处理这种情况的算法方法是实现一个不同的误差函数:添加一个条款,严厉惩罚(即+无穷大成本)将第41个学生添加到该聚类中。

另一种方法是允许聚类正常聚合,但在之后进行调整。假设东南学校有46名学生,西南学校有44名:将6名和4名最靠近北部学校的学生,发送到那所学校。

这些指导对你来说足够了吗?你有学校同时超过和低于容量的情况吗?我不想过度设计解决方案。

Related Posts

为什么我们在K-means聚类方法中使用kmeans.fit函数?

我在一个视频中使用K-means聚类技术,但我不明白为…

如何获取Keras中ImageDataGenerator的.flow_from_directory函数扫描的类名?

我想制作一个用户友好的GUI图像分类器,用户只需指向数…

如何查看每个词的tf-idf得分

我试图了解文档中每个词的tf-idf得分。然而,它只返…

如何修复 ‘ValueError: Found input variables with inconsistent numbers of samples: [32979, 21602]’?

我在制作一个用于情感分析的逻辑回归模型时遇到了这个问题…

如何向神经网络输入两个不同大小的输入?

我想向神经网络输入两个数据集。第一个数据集(元素)具有…

逻辑回归与机器学习有何关联

我们正在开会讨论聘请一位我们信任的顾问来做机器学习。一…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注