如何执行lat / lon数据点的聚类

时间:2014-12-12 14:51:00

标签: python scikit-learn cluster-analysis dbscan

我首选的算法是scikit-learn中的DBSCAN。然而,我不确定是否(以及如何)除了我已经使用的纬度和经度之外还要包含半径。关于如何计算新集群中心的第二个问题。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

DBSCAN使用epsilon radius查询。这是你使用纬度和长度的地方。

我不知道scikit-learn是否允许你使用任意距离。我见过blog post使用OPTICS(DBSCAN的继任者)使用纬度和经度聚集2300万条推文;但它使用了ELKI而不是scikit-learn。

DBSCAN不使用质心。所以你根本不需要在球体上计算它们。 事实上,质心对DBSCAN 没有意义。如果它不是凸的,它们可能在集群中;和DBSCAN可以找到非凸簇。考虑一个中心有湖泊的城市。质心可能就在湖中。或者是一个海湾中的城市 - 然后质心将在海湾内。海湾地区的质心(旧金山,奥克兰,......)可能就在宝岛附近......等等。

答案 1 :(得分:0)

计算质心的一种方法是将每个星团的经度(每个点的经度之和)计算出来并计算平均值,这将为你的质心提供一个粗略的经度。对纬度做同样的事情。 这是一个很好的example,这在我的观点中是公平的