kmeans对于地理空间坐标无法正常工作 - 即使将距离函数更改为如所述here所述的半径也是如此。
我看了DBSCAN但没有 让我设置固定数量的集群。
它不一定非常准确,但如果它会好的话会很好。
答案 0 :(得分:3)
当您的地理数据跨越大面积时,仅使用纬度和经度会导致问题。特别是因为经度之间的距离较小。为了解释这一点,最好先将lon和lat转换为笛卡尔坐标。
如果您的地理数据跨越美国,例如您可以定义一个原点,从中计算距离作为连续美国的中心。我相信它位于北纬39度50分钟,经度98度35分钟。
将lat lon转换为CARTESIAN坐标 - 使用hasrsine计算距离,从数据集中的每个位置到定义的原点。我建议Latitude 39度50分钟,经度98度35分钟。
您可以在python中使用hasrsine来计算这些距离:
from haversine import haversine
origin = (39.50, 98.35)
paris = (48.8567, 2.3508)
haversine(origin, paris, miles=True)
现在你可以使用k-means对这些数据进行聚类,假设地球的哈尔辛模型足以满足你的需要。如果您正在进行数据分析而不是计划发射卫星,我认为这应该没问题。
答案 1 :(得分:2)