【发布时间】:2015-02-11 07:31:20
【问题描述】:
我首选的算法是 scikit-learn 中的 DBSCAN。但是,我不确定是否(以及如何)将半径与我已经使用的纬度和经度结合起来。我的第二个问题是如何计算新集群的中心。有什么想法吗?
【问题讨论】:
标签: python scikit-learn cluster-analysis dbscan
我首选的算法是 scikit-learn 中的 DBSCAN。但是,我不确定是否(以及如何)将半径与我已经使用的纬度和经度结合起来。我的第二个问题是如何计算新集群的中心。有什么想法吗?
【问题讨论】:
标签: python scikit-learn cluster-analysis dbscan
dbscan使用epsilon radius查询。这是您使用纬度和长足的地方。
我不知道scikit-seature是否允许您使用任意距离。我在使用光学(DBSCAN的后续人员)上看到了一个blog post使用纬度和经度纳入2300万推文;但它使用的是 ELKI 而不是 scikit-learn。
DBSCAN 不使用质心。所以你根本不需要在球体上计算它们。 事实上,质心对dbscan 没有意义。如果不是凸出的话,它们可以在 em>群集之外;而DBSCAN可以找到非凸簇。考虑中心有一个湖的城市。质心可能在湖中。或者一个海湾的城市 - 质心将在海湾内部。湾区的质心(旧金山,奥克兰,......)可能是靠近金银岛...等。
【讨论】:
计算质心的一种方法是对每个集群的经度求和(每个点的经度之和)并计算平均值,这将为您的质心提供粗略的经度。对纬度做同样的事情。 这是一个很好的example,在我看来是公平的
【讨论】: