【问题标题】:Weighted K-means with GPS Data带 GPS 数据的加权 K 均值
【发布时间】:2017-02-13 08:45:05
【问题描述】:

目标

  • 聚合商店位置 GPS 信息(经度、纬度)

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

  • 使用 K-means 确定最佳配送中心, 给定商店 GPS 数据和当地人口(即配送中心 与农村商店相比,它们更靠近城市商店,因为更高 需求)。

问题

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

参考文献

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

也可以看出,其他几个类似k-means的算法,即k-median和k-mediods也是 重量可分离。详细信息见附录。观察到所有这些流行的目标函数都是高度 对体重有反应。

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

【问题讨论】:

    标签: python numpy statistics k-means


    【解决方案1】:

    1) 你只想在 (longitude, latitude) 空间中做 k-means。如果您将人口添加为第 3 维,您的质心会偏向大人口中心之间的中点,这些人口中心通常相距甚远。

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

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

    【讨论】:

    • 对于您的第 2 点,x,y 坐标的复制(作为权重的替代)不会对质心没有影响,因为 x,y 点在二维平面,因此类似于单个未加权的点?关于您的第 3 点,似乎 DBscan 可能是一个不错的候选者,因为可以考虑密度。需要更多研究。
    • 简短的回答是否定的。长答案是它取决于您的数据结构。如果您在列表或数组中跟踪您的点(以及适当的点的倍数),那么任何 k-means 实现(当然是 scikit-learn 中的那个)都会做正确的事情,即赋予该位置更多的权重。如果您将积分存储在一个集合中,则会丢弃重复项,在这种情况下,您将恢复为未加权的情况。
    • 感谢您的澄清!答案被接受,因为它符合原始问题的要求。
    猜你喜欢
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2013-05-02
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多