6

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

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

谢谢。

编辑:

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

编辑:

希望这会让它更清楚

这是我的数据外观的示例:

轨迹一:

lat1,lon1 在 time1
lat2,lon2 在 time2
...
lat55,lon55 在 time55
轨迹2:

lat343,lon343 在 time343
lat344,lon344 在 time344
...
lat376,lon376 在 time376

一直在继续(更多的轨迹)。

所以说我有 200 条这样的轨迹,我想把它们分成两组。我应该如何处理这个?

我应该为此使用 kmeans/HAC 还是应该看看另一种方法?

编辑:

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

简单地说,我只是试图将轨迹聚集成不同方向的组。我不担心他们的距离相似性。

所以说最后我想找到这样的东西:

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

...

方向 10:
轨迹 17
轨迹 8

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

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

编辑:

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

轨迹和最终结果

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

4

3 回答 3

4

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

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

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

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

于 2013-02-26T20:48:28.323 回答
2

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

于 2013-02-27T15:40:39.477 回答
1

动态时间规整(DTW) 会产生一个相似性指标,该指标通常与时间序列数据(这就是您所拥有的)一起使用。然后,您可以将这些 DTW 相似性用作许多基于相似性的聚类算法中的任何一种的输入。

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

于 2013-03-01T18:18:59.197 回答