我的首选算法是scikit-learn中的DBSCAN。但是,我不确定是否(以及如何)除了已经使用的经度和纬度之外还包括半径。我的第二个问题是如何计算新集群的中心。有任何想法吗?
最佳答案
DBSCAN使用epsilon半径查询。在这里您可以使用纬度和经度。
我不知道scikit-learn是否允许您使用任意距离。我已经看过blog post关于使用OPTICS(DBSCAN的后继产品)使用纬度和经度来聚类2300万条推文的信息。但是它使用ELKI而不是scikit-learn。
DBSCAN不使用质心。因此,您根本不需要在球上进行计算。
实际上,质心对于DBSCAN没有意义。如果它们不是凸的,它们可能在簇的外面; DBSCAN可以找到非凸簇。考虑一个以湖为中心的城市。重心可能正好在湖中。还是海湾中的城市-重心将在海湾内。海湾地区(旧金山,奥克兰等)的质心可能在宝岛附近...等等。
关于python - 如何执行经纬度数据点的聚类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27446171/