轨迹聚类

kie*_*lam 6 python gis modeling cluster-analysis data-mining

我有大量的时间lat/lon.

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

谢谢.

编辑:

为了使用kmeans /层次聚类,我应该如何为我的数据生成功能(lat/lon + time)?

编辑:

希望这会使它更清晰

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

Trajectory 1:

lat1,lon1 at time1
lat2,lon2 at time2
...
lat55,lon55 at time55
Trajectory 2:

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

并且不断(更多的轨迹).

所以说我有200条这样的轨迹,我想把它们分成两组.我该怎么做呢?

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

编辑:

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

简单地说,我只是想将轨迹聚类成不同方向的组.我并不担心他们的距离相似.

所以说结束我想找到这样的东西:

Direction 1:
Trajectory 4
Trajectory 5
Trajectory 7
Direction 2:
Trajectory 44
Trajectory 2
Trajectory 27

...

Direction 10:
Trajectory 17
Trajectory 8

注意:轨迹的形状主要是线条(不是直线),有些是环形的.
注意:lat/lon是一个区域的超本地,所以我可以使用平地近似.

方向非常粗糙.如何计算轨迹之间的相似性以将其聚类以实现此目的?

编辑:

这是一个例子(尽我所能):

轨迹和最终结果

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

Ano*_*sse 4

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

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

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

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