多维轨迹聚类

Clustering of multidimensional trajectories

提问人:Castell089 提问时间:11/6/2023 更新时间:11/7/2023 访问量:44

问:

我有一个包含多个飞行轨迹的大数据集。这些轨迹都有一个唯一的 ID 来识别它们。它们位于经典的 pandas Dataframe 中。轨迹的每个样本都有多个特征,如经度、纬度、高度、速度等等,如 15 个维度。

我的目标是找到一种聚类算法,该算法可以使用整个多维轨迹作为其输入,并且它仅按整个轨迹对轨迹进行聚类。

它应该是一个具有动态聚类数量的算法,因此 k-mean 将不起作用

我尝试用 DBSCAN 对它们进行聚类,但问题是,一条轨迹为其中的样本提供了不同的聚类标签。只能将每个样本送入DBSCAN,而不能将整个轨迹送入。

我也在考虑将轨迹转换为单行,但这最终会变成许多维度,我猜这些维度会以维度的诅咒告终。

我也听说过距离矩阵,但它们不是也以多个维度结束,所以它不能被输入到 DBSCAN 中吗?

我将非常感谢有用的答案!

python 机器学习 scikit-learn 深度学习 聚类分析

评论

0赞 Community 11/8/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。

答:

0赞 micans 11/7/2023 #1

如果你纯粹对轨迹聚类感兴趣,那么我假设你可以考虑(至少作为一个起点)经度、纬度和海拔高度。这听起来像是一个相当普遍的问题。搜索“轨迹之间的距离”很快就会得到。例如,轨迹距离测量和性能评估的调查。对于 R(我知道不是你想要的),我找到了 https://cran.r-project.org/web/packages/trajectories/vignettes/article.pdf。搜索“轨迹之间的距离,python”给出了几个结果,但没有一个开箱即用的3D工作解决方案。通过这些链接,也许您可以更好地掌握问题。

评论

0赞 Castell089 11/10/2023
谢谢!我读了很多关于距离测量的论文,但我仍然缺乏关于如何对它们的结果进行聚类的知识。我看到很多人使用DBSCAN进行轨迹,但找不到如何转换轨迹数据的解决方案,它可以用作DBSCAN的输入。
0赞 micans 11/10/2023
我自己没有经常使用DBSCAN,但是例如,看看 scikit-learn.org/stable/modules/generated/......他们说“从向量数组或距离矩阵执行DBSCAN聚类”,因此在该实现中,您可以自己计算距离矩阵,将其提供给DBSCAN,它将直接使用这些值,而无需推断距离本身。这通常是聚类方法提供的区别,在聚类方法中,它们允许将特征矩阵作为输入(需要距离计算)或预先计算的距离矩阵。
1赞 Castell089 11/10/2023
感谢您的帮助!我同时发现了库 HDBSCAN,它是 sklearn 对 DBSCAN 的修改,提供了更多选择。我将使用距离矩阵,尝试不同的距离指标。