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

我有以下场景:

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

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

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

学校有固定容量限制

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

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

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


回答:

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

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

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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