背景介绍
机器学习的聚类算法在很多场景中都有应用,比如用户群体的聚类,地址聚类等。但是,在实际问题中,我们的聚类问题常常是有类的规模限制的,比如我们需要创建几个等大的类,或者有最小类大小的限制等。
虽然在很多学习算法和初入机器学习的同学们看来,聚类相关算法是机器学习中无监督学习中常见的一种,但从另一个角度看,聚类其实是求解一个组合优化问题,属于NP-hard问题。
应用场景
- 员工/外卖员等任务分配:我们给员工分配具体的工作区域或者工作任务量。因为我们分配对象的任务是人,所以我们需要考虑人性,考虑任务量的公平。因此,可以考虑等大聚类获得不同的等大类的区域结果分配给员工。当然,我们考虑员工的能力差异,也可以考虑按能力比例进行区域的聚类。
- 前置仓的选取:我们知道电商的前置仓是要选取离消费者近的地方的,能够提高实效,提升服务质量。但是前置仓选取太多,或者面向消费者的需求点太少,这样会导致仓的成本太高。因此,有的时候是基于消费者需求空间分布进行聚类选点。从这个角度来说,我们可以考虑最小最大限制的聚类方式进行初步选点。
- 路径规划:路径规划中有一种启发式算法是Cluster-first-Route-second。我们要考虑同种车型的可服务的需求点是有限的,且一致的,所以在做Cluster的时候考虑有空间规模限制的聚类。
- 选址规划:类比路径规划,我们在做门店选址/工厂选址等问题的时候,也得考虑空间聚类问题选取候选点,也可以缩小问题求解的规模。
- 其它在生物/化学/工程实际问题中的一些应用。
Size Constrained Clustering轮子介绍
Github地址:
https://github.com/jingw2/size_constrained_clusteringgithub.com/jingw2/size_constrained_clustering
PyPI地址: