带有GPS数据的加权K均值

时间:2016-10-05 03:22:28

标签: python numpy statistics k-means

目的

  • 汇总商店位置GPS信息(经度,纬度)

  • 周边商店区域的总人口规模(例如1,000,000 居民)

  • 使用K-means确定最佳配送中心, 给出商店GPS数据和当地人口(即配送中心) 由于价格较高,所以更靠近城市商店和农村商店 需求)。

问题

  1. 关于如何将加权变量添加到k-means算法,我一直researching,但我不确定加权变量的实际过程。例如,如果我有[lat,long和population(以千计)](例如“纽约”= [40.713, 74.005, 8406]),这不会构建三维空间中的中心点吗?如果是这样,距离是否会不正确地倾斜并错误地代表仓库配送中心的最佳位置?
  2. 其他research暗示UPGMA,“未加权配对组方法”,其中考虑了群集的大小。但是,我还没有完全回顾这种方法以及与此方法相关的复杂性。
  3. 参考

    参考文献1:http://cs.au.dk/~simina/weighted.pdf(第5页)

      

    还可以证明,其他一些类似于k均值的算法,即k-median和k-mediods也是   重量可分。详细信息见附录。观察所有这些流行的目标函数是高度的   对体重有所反应。

    参考文献2:https://www-users.cs.umn.edu/~kumar/dmbook/ch8.pdf(第39页:“处理不同群集大小的能力”

1 个答案:

答案 0 :(得分:3)

1)你只想在(经度,纬度)空间做k-means。如果将种群作为第三维添加,则会将质心偏向大型人口中心之间的中点,这些中心通常相隔很远。

2)在k-means中加入加权的最简单的方法是根据其人口权重重复一个点(经度,纬度)。

3)k-means可能不是作业的最佳聚类算法,因为旅行时间不随距离线性缩放。此外,基本上保证你不会有一个配送中心在大型人口中心爆炸,这可能不是你想要的。我会使用DBSCAN,scikit-learn有一个很好的实现: http://scikit-learn.org/stable/modules/clustering.html