线(行进路径)聚类机器学习算法

use*_*024 5 python classification machine-learning line scikit-learn

我有一系列的线数据(2-3个连接点)。我能用来将线分类到它们的位置相似性的最佳机器学习算法是什么?(下图)

最好是python库,例如SciKit-Learn。

单击此处查看图像

编辑: 我已经尝试过DBSCAN,但是我面临的问题是,如果有两条线彼此相交,即使它们完全朝着不同的方向,有时DBSCAN也会将它们视为一组。

这是我到目前为止找到的解决方案:

GeoPath聚类算法

这里的想法是将彼此非常相似的地理路径归为一组。

脚步:

1-基于斜率的聚类线

2-在第1步的每个聚类中,找到线的中心,并使用k-mean算法将它们聚成较小的组

3-在步骤2的每个地理组中,计算在定义的长度阈值内的每条线和每组线的长度

结果将是几组具有相似斜率,彼此靠近且具有相似行进距离的线。

这是可视化的屏幕截图:黄线是所有线,红线是一起行进的路径簇。在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

bpa*_*hev 0

您试图解决的问题称为聚类问题。有关 sklearn 中聚类算法的概述,请参阅http://scikit-learn.org/stable/modules/clustering.html#clustering。

编辑 2:当我第一次看到你的帖子时,我想到的是 KMeans,但根据评论的反馈,它看起来不太合适。您可能想尝试 sklearn 的DBSCAN。

您可以添加的潜在转换或额外功能是将直线拟合到每组点,然后使用(斜率,截距)对。您可能还想使用每条线的质心。