【发布时间】: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