我一直在运行sci-kit learn的DBSCAN实现,以便通过lat / long对一组带地理标记的照片进行聚类。在大多数情况下,它运作得很好,但我遇到了一些令人费解的例子。例如,有两组照片,用户输入的文本字段指定照片是在中央公园拍摄的,但这些照片的纬度/长度没有聚集在一起。照片本身证实他们两组观察都来自中央公园,但是纬度/长度实际上比epsilon
更远。
经过一番调查后,我发现原因是因为拉/长地理标记(由手机的GPS产生)非常不精确。当我查看每张照片的位置精确度时,我发现它们的范围很广(我看到的误差范围高达600米),当你考虑到位置精度时,这两组照片都在以纬度/经度为单位的近距离。
有没有办法在你做DBSCAN时考虑lat / long的误差范围?
(注意:我不确定这个问题是否应该如此清晰,所以如果有什么我可以做的更清楚,请告诉我。)
答案 0 :(得分:1)
请注意, DBSCAN实际上并不需要距离。
查找广义DBSCAN:它真正使用的只是“是邻居”的关系。
如果您确实需要纳入不确定性,请查看各种DBSCAN变体和扩展,以明确处理不精确的数据。但是,通过选择一个合理的epsilon阈值,您可能得到几乎相同的结果。你可以选择一个你认为足够大的epsilon的空间:如果你想使用epsilon = 1km,你认为你的数据在100m的范围内是不精确的,那么就用1100m作为epsilon。