我首选的算法是 scikit-learn 中的 DBSCAN。但是,我不确定是否(以及如何)将半径与我已经使用的纬度和经度结合起来。我的第二个问题是如何计算新集群的中心。有任何想法吗?
问问题
1714 次
2 回答
1
DBSCAN 使用 epsilon 半径查询。这是您使用纬度和经度的地方。
我不知道 scikit-learn 是否允许您使用任意距离。我看过一篇关于使用 OPTICS(DBSCAN 的继任者)使用纬度和经度对 2300 万条推文进行聚类的博客文章;但它使用 ELKI 而不是 scikit-learn。
DBSCAN 不使用质心。所以你根本不需要在球体上计算它们。事实上,质心对 DBSCAN 没有意义。如果不是凸的,它们可能在集群之外;DBSCAN 可以找到非凸簇。考虑一个中心有一个湖的城市。质心可能就在湖中。或者海湾中的城市 - 质心将在海湾内。湾区的中心(旧金山、奥克兰……)可能在金银岛附近……等等。
于 2014-12-12T23:15:38.270 回答
0
计算质心的一种方法是对每个集群的经度求和(每个点的经度之和)并计算平均值,这将为您的质心提供粗略的经度。对纬度做同样的事情。这是一个很好的例子,在我看来是公平的
于 2015-04-14T11:43:50.050 回答