我的首选算法是scikit-learn中的DBSCAN。但是,我不确定除了我已经使用的纬度和经度之外,是否(以及如何)合并半径。我的第二个问题是如何计算新集群的中心。有什么想法吗?
DBSCAN 使用 epsilon 半径查询。这是使用纬度和纵向的地方。
我不知道scikit-learn是否允许你使用任意距离。我看过一篇关于使用 OPTICS(DBSCAN 的继任者)使用纬度和经度聚类 2300 万条推文的博客文章;但它使用了ELKI而不是scikit-learn。
DBSCAN 不使用质心。因此,您根本不需要在球体上计算它们。事实上,质心对DBSCAN没有意义。如果不是凸的,它们可能位于集群之外;DBSCAN 可以找到非凸簇。考虑一个中心有湖泊的城市。质心可能就在湖中。或者海湾中的城市 - 然后质心将在海湾内。湾区的质心(旧金山,奥克兰等)可能靠近金银岛......等。
计算质心的一种方法是将每个簇的经度(每个点的经度之和)相和并计算平均值,这将为您提供质心的粗略经度。对纬度做同样的事情。这是一个很好的例子,在我的viw观点中是公平