在逆时针方向上获得DBSCAN算法中发现的簇的边界点

问题描述 投票:0回答:1

我正在尝试获取在DBSCAN算法中找到的每个聚类的边界点。这些点应沿逆时针方向。

“

例如,对于群集,我需要按点标签的时间顺序排列的点。(例如:对于群集2,我需要A-> B-> C-> D-> E-> F-> G-> H-> I-> J-> K)

上述代码的Python实现将非常有用。如果它不可用,能否请您为我提供有效的算法,以解决上述问题?

python dbscan
1个回答
1
投票

此问题定义不明确。

哪个簇的形状像香蕉,甚至更不规则的非凹形?

只要您的数据是二维的高斯玩具数据-计算与聚类平均值的角度,然后按角度对值进行排序。实际上,一种流行的凸包hul算法(Graham扫描)正是这样做以获取处理顺序。格雷厄姆(Graham)的技巧可能对您来说效果不佳:选择y坐标最大的点作为参考点,并按与该点的角度对点进行排序。可以很容易地看到,与更中心的点相比,所得的点有时可能不按顺序排列,但这对于找到凸包来说并不重要。

© www.soinside.com 2019 - 2024. All rights reserved.