作为机器学习的新手,我有一组可能不同长度的轨迹。我希望将它们聚类,因为其中一些 实际上是相同的路径, 并且由于噪声它们的 SEEM不同 。
另外, 并不是 所有的它们都具有 相同的长度 。因此,也许虽然轨迹A与轨迹B不同,但它是轨迹B的 一部分 。我也希望在聚类之后给出 此 属性。
我只有一个位知识K-means Clustering和Fuzzy N-means Clustering。 我该如何选择两者? 还是应该采用其他方法?
K-means Clustering
Fuzzy N-means Clustering
有没有考虑“归属感”的方法? (例如,在聚类之后,我有3个聚类A, B and C。一个特定的trajectory X属于cluster A。较短的trajectory Y(尽管未聚类在其中A)被标识为的一部分trajectory B。)
A, B and C
trajectory X
cluster A
trajectory Y
A
trajectory B
===================更新======================
上述轨迹是行人的轨迹。它们可以表示为一系列(x, y)点或一系列阶跃向量(length, direction)。演示文稿表格由我控制。
(x, y)
(length, direction)
可能有点晚了,但我也在研究相同的问题。我建议您看一下 TRACLUS ,该算法由Jae-Gil Lee,Hanwei Wei和Kyu-Young Wang创建,发布于SIGMOD‘07。 http://web.engr.illinois.edu/~hanj/pdf/sigmod07_jglee.pdf
到目前为止,这是我所看到的对轨迹进行聚类的最佳方法,因为:
基本上是两个阶段的方法:
第一阶段 -分区:将轨迹划分为段,这是使用MDL优化(复杂度为O(n))完成的,其中n是给定轨迹中的点数。这里的输入是一组轨迹,输出是一组段。
第二阶段 -组:此阶段使用某些版本的基于密度的集群来发现集群,例如DBSCAN。该阶段的输入是从第一阶段获得的线段集合以及构成邻域的一些参数以及可以构成群集的最小数量的线。输出是一组群集。聚类是在段上完成的。他们定义了自己的距离量度,该量度由3个分量组成:平行距离,垂直距离和角距离。此阶段的复杂度为O(n log n),其中n是段数。
复杂度:O(n log n),其中n是集合D上的段数
最后,他们为每个簇计算一个 代表性轨迹 ,这 与在每个簇中发现的共同子轨迹 无关。
他们有很酷的例子,论文也得到了很好的解释。再一次,这不是我的算法,因此,如果您要进行研究,请不要忘记引用它们。
PS:我基于他们的工作制作了一些幻灯片,仅用于教育目的:http : //www.slideshare.net/ivansanchez1988/trajectory-clustering-traclus- algorithm