【问题标题】:clustering for trajectories轨迹聚类
【发布时间】:2013-02-11 17:09:50
【问题描述】:

我有大量的时间纬度/经度。

我正在尝试从这些数据中找到轨迹的 k 簇。最好的方法是什么?

谢谢。

编辑:

我应该如何为我的数据生成特征(纬度/经度 + 时间)以使用 kmeans/层次聚类?

编辑:

希望这会让它更清楚

以下是我的数据外观示例:

轨迹一: lat1,lon1 在 time1 lat2,lon2 在 time2 ... lat55,lon55 在 time55 轨迹2: lat343,lon343 在 time343 lat344,lon344 在 time344 ... lat376,lon376 在 time376

不断(更多的轨迹)。

假设我有 200 条这样的轨迹,我想将它们分成 2 组。我应该如何处理?

我应该为此使用 kmeans/HAC 还是应该使用其他方法?

编辑:

这样做的目的是将轨迹分类为 k 个簇,代表轨迹的 k 个不同方向。

简单地说,我只是想将轨迹聚集成不同方向的组。我不担心它们的距离相似之处。

所以说完我想找这样的东西:

方向一: 轨迹4 轨迹5 轨迹 7 方向2: 弹道44 轨迹2 轨迹 27

...

方向 10: 轨迹 17 轨迹 8

注意:轨迹的形状大多是直线(不是直线),有些是环形的。
注意:纬度/经度对于一个地区来说是超级本地的,所以我可以使用平地近似值。

方向是非常粗略的。我如何计算轨迹之间的相似度以对它们进行聚类以实现这一目标?

编辑:

这是一个插图(尽我所能):

我想将轨迹分成这样的方向。

【问题讨论】:

  • 我没有完全理解你的意思。你要的是特征提取吗?如果是这样,那么它与集群无关。
  • 不,我不是在问特征提取。我在问如何对每个纬度/经度给定纬度/经度+时间的轨迹进行聚类。假设我知道集群的数量为 2,我将如何将轨迹聚类为 2 个集群?我不能做一些天真的事情,比如使用结束纬度/经度并减去开始纬度/经度。
  • 好吧,我在这里不能 100% 确定,因为这个案例对我来说不是那么清楚(无论如何,很难在几行内描述一个 DM 案例)。但是你有没有为你提到的那三个维度(纬度/经度+时间)尝试过k-means。欧几里得距离将帮助您处理带有centroids 和其他所有内容的 k 均值。我现在离您的观点更近了吗?
  • @mamdouhalramadan:希望我的编辑能让它更清晰
  • 好的,我看你这里不需要使用集群。因为你只有一个区域。聚类旨在将所有相似的观察结果聚类到一个组中。这被称为inner-cluster,并且集群之间的相似性应该最小化(不相似)。我认为你需要让分类算法在这里工作。毕竟这只是一个建议:)

标签: python gis data-mining cluster-analysis modeling


【解决方案1】:

Dynamic time warping (DTW) 生成一个相似性度量,该度量通常用于时间序列数据(这就是您所拥有的)。然后,您可以将这些 DTW 相似性用作许多基于相似性的聚类算法中的任何一种的输入。

对于您的数据集,我只会提取方向序列,因为如果以不同的速度遍历路径或以不同的时间间隔采集样本,包含距离分量可能会导致问题。

【讨论】:

  • 感谢您的建议,将研究它:)
【解决方案2】:

您描述问题的方式听起来好像您可以将所有轨迹表示为相对于赤道的角度。然后归结为分段;这不是真正的聚类;参见例如https://en.wikipedia.org/wiki/Jenks_natural_breaks_optimization。在您的情况下,这些值会循环播放,因此它将在一个圆上(使用度数/角度)而不是在一条直线上分割值。当然,如果这描述了您的问题,它也提供了一种很好的可视化方式。

【讨论】:

  • 不,我不能将轨迹表示为一个角度,因为它们不是直线。目前尚不清楚我将如何对我的数据使用 Jenks 自然中断优化。你能进一步解释一下吗?
  • 好吧,你写“方向是非常粗略的。所以方向 1 可能像北到南,而方向 2 可能是从南到北等等......”。这当然可以表示为直线/角度。我知道这描述了您想要的结果,但是将您的输入抽象到同一级别似乎是合乎逻辑的。如果您确实想将输入压缩为如此粗略的表示,那么就会出现问题:如何计算轨迹之间的相似性?这似乎是问题的症结所在。
【解决方案3】:

K-means 是围绕最小化方差设计的。

将其应用于纵向数据时,会出现一些错误,除非您始终靠近赤道并远离 180 经线。因为地球大约是一个球面,而不是一个无限的欧几里得向量空间。

例如,尝试使用基于距离或密度的聚类算法来使用大圆距离。分层聚类也可能是比 k-means 更好的选择。

大圆距离就在两点之间。所以接下来要做的就是弄清楚如何将这些距离和时间分量组合成适合你的轨迹的相似性度量。这完全取决于使用情况,并且没有我们可以与您分享的通用解决方案。 相似度函数越好,聚类结果越好!

【讨论】:

  • 我不确定你想表达什么。我不是对纯粹的纬度/经度数据进行聚类。我正在尝试将轨迹聚类到由 lat/lon + 时间分量给出的 k-clusters 中。
  • 是的,集群是否有意义,因为 k-means 不理解“纬度”、“经度”、“时间”及其关系?看,它假设一个欧几里得向量空间。但地球表面近似于一个球面。
  • 我明白您为什么担心将 kmeans 用于纬度/经度。我仍然认为这并不重要,因为纬度/经度对于一个地区来说是超级本地的,所以我可以假设一个平地近似值。
  • 嗯,不适合我,我有包含阿拉斯加的数据集。此外,在欧洲,失真已经像 1/3 - 平坦的地球是一个非常糟糕的近似值。 Equirectangular 易于使用,但您可以选择最差的地图投影。它既不保留角度,也不保留距离或面积。
  • 所以说即使我不使用平地近似,为什么我不能使用k-means?我可以将纬度/经度转换为笛卡尔坐标 (x,y,z) 并使用它。但同样,我怀疑这个或你的建议是否有助于对轨迹进行聚类。
猜你喜欢
  • 2013-09-20
  • 2017-08-27
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
相关资源
最近更新 更多