空间点离群点聚类方法
我想实现无监督聚类来检测空间点的网格(垂直/水平线)。
我尝试过 DBSCAN,但结果不佳。它能够挑选出网格,如下图红色所示:
但是,它无法完全挑选出形成垂直/水平线的所有点,如果我放宽 epsilon 的参数,它会错误地将更多点分类为噪声(例如左下角)的 图片)。
我想知道是否有 DBSCAN 的修改模型使用椭圆而不是圆形?或者为此推荐的任何其他不需要预先指定聚类数量的聚类方法?
或者有没有更好的方法来识别这些构成网格的点?任何帮助表示赞赏。
I would like to implement an unsupervised clustering to detect grids (vertical/horizontal lines) for spatial points.
I have tried DBSCAN and it gives subpar results. It is able to pick out the grids as seen in red below:
However, it is not able to completely pick out all the points that form the vertical/horizontal lines and if i relax the parameters of epsilon, it will incorrectly classify more points as noisy (e.g. the bottom left of the picture).
I was wondering if maybe there is a modification model of DBSCAN that uses ellipse instead of circles? Or any other clustering methods recommended for this that does not need to prespecify the number of clusters?
Or is there a better method to identify these points that make the grid? Any help is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过以下方式修改数据来使用各向异性 DBSCAN:各向异性值 >1 将找到垂直聚类,值 <1 将找到水平聚类。
这是一个完整的数据示例:
您得到垂直集群:

现在将参数更改为
db = anisotropical_DBSCAN(X, anisotropy = 10, eps = 1, min_samples = 10)
我必须更改 eps 值,因为水平比例和垂直比例不同,但在您的情况下,您应该能够保持相同的(eps, min example)
来检测线条并且您会得到水平集群:

还有各向异性 DBSCAN 的实现,它们可能更清晰https://github.com/gissong/ADCN
You can use an anisotropical DBSCAN by modifying your data this way : value of anisotropy >1 will find vertical clusters and values <1 will find horizontal clusters.
Here is a full example with data :
You get vertical clusters :

Now change the parameters to
db = anisotropical_DBSCAN(X, anisotropy = 10, eps = 1, min_samples = 10)
I had to change eps value because the horizontal scale and vertical scale arent the same, but in your case, you should be able to keep the same(eps, min sample)
for detecting linesAnd you get horizontal clusters :

There are also implementations of anisotropical DBSCAN that are probably a lot cleaner https://github.com/gissong/ADCN