我想为一组大约预先进行聚类。 500,000点。
我还没有开始,但这是我以为我会做的事情:
这应该非常有效,因为只有100个主要城市,SOLR查询非常快。但是更多的想法表明这是错误的:
还有其他方法:
我想我正在寻找一种通用的地理聚类算法(或 idea ),而且似乎无法找到任何算法。
编辑以回答Geert-Jan的评论
我想构建“自然”集群,是的,是的,我担心如果我使用任意网格,它将无法反映数据的实际情况。例如,如果在两个矩形交叉点处或附近的点周围发生了许多事件,我应该只得到一个簇,但实际上会构建两个(每个矩形中有一个)。
最初我想出于性能原因使用localSOLR(因为我知道它,并且有更好的经验将大量数据索引到SOLR中,而不是将其加载到传统数据库中);但由于我们谈论的是预聚类,因此性能可能并不那么重要(尽管可视化新聚类实验的结果不需要花费数天时间)。我根据一组预定义的“大点”查询大量积分的第一种方法显然是有缺陷的,这是我提到最强的第一个原因:群集应该反映数据的真实性,而不是其他官僚定义(他们会肯定会明显重叠,但数据应该先行。)
有一个很棒的群集用于实时群集,已添加到核心Google Maps API中:Marker Clusterer。我想知道是否有人试图“脱机”运行它:运行它需要的任何时间,然后存储结果?
或者是否有一个聚类器,它会逐点检查每个点,并输出包含其坐标和点数的聚类,并在合理的时间内完成这一点?
答案 0 :(得分:0)
您可能希望研究一些高级聚类算法,例如OPTICS。
拥有良好的数据库索引,它应该相当快。