一尘不染

轨迹聚类:哪种聚类方法?

algorithm

作为机器学习的新手,我有一组可能不同长度的轨迹。我希望将它们聚类,因为其中一些 实际上是相同的路径, 并且由于噪声它们的 SEEM不同

另外, 并不是 所有的它们都具有 相同的长度 。因此,也许虽然轨迹A与轨迹B不同,但它是轨迹B的 一部分 。我也希望在聚类之后给出
属性。

我只有一个位知识K-means ClusteringFuzzy N-means Clustering我该如何选择两者?
还是应该采用其他方法?

有没有考虑“归属感”的方法? (例如,在聚类之后,我有3个聚类A, B and C。一个特定的trajectory X属于cluster A。较短的trajectory Y(尽管未聚类在其中A)被标识为的一部分trajectory B。)

===================更新======================

上述轨迹是行人的轨迹。它们可以表示为一系列(x, y)点或一系列阶跃向量(length, direction)。演示文稿表格由我控制。


阅读 1342

收藏
2020-07-28

共1个答案

一尘不染

可能有点晚了,但我也在研究相同的问题。我建议您看一下 TRACLUS ,该算法由Jae-Gil Lee,Hanwei Wei和Kyu-Young
Wang创建,发布于SIGMOD‘07。
http://web.engr.illinois.edu/~hanj/pdf/sigmod07_jglee.pdf

到目前为止,这是我所看到的对轨迹进行聚类的最佳方法,因为:

  • 可以发现共同的 子轨迹
  • 专注于线段而不是点(因此可以 滤除噪声异常值 )。
  • 它适用于 不同长度的 轨迹。

基本上是两个阶段的方法:

  1. 第一阶段 -分区:将轨迹划分为段,这是使用MDL优化(复杂度为O(n))完成的,其中n是给定轨迹中的点数。这里的输入是一组轨迹,输出是一组段。

    • 复杂度:O(n),其中n是轨迹上的点数
    • 输入:一组轨迹。
    • 输出:段D
    • 第二阶段 -组:此阶段使用某些版本的基于密度的集群来发现集群,例如DBSCAN。该阶段的输入是从第一阶段获得的线段集合以及构成邻域的一些参数以及可以构成群集的最小数量的线。输出是一组群集。聚类是在段上完成的。他们定义了自己的距离量度,该量度由3个分量组成:平行距离,垂直距离和角距离。此阶段的复杂度为O(n log n),其中n是段数。

    • 复杂度:O(n log n),其中n是集合D上的段数

    • 输入:段的集合D,参数E设置邻域阈值,参数MinLns是最小行数。
    • 输出:集群C的集合C,它是段的集群(轨迹集群)。

最后,他们为每个簇计算一个 代表性轨迹 ,这 与在每个簇中发现的共同子轨迹 无关。

他们有很酷的例子,论文也得到了很好的解释。再一次,这不是我的算法,因此,如果您要进行研究,请不要忘记引用它们。

PS:我基于他们的工作制作了一些幻灯片,仅用于教育目的:http :
//www.slideshare.net/ivansanchez1988/trajectory-clustering-traclus-
algorithm

2020-07-28