【发布时间】:2019-01-28 12:05:36
【问题描述】:
对于我目前正在进行的一个项目,我需要将相对大量的 GPS 对聚集到不同的位置集群中。在 StackOverflow 中阅读了许多帖子和建议并采取了不同的方法后,我仍然遇到运行它的问题......
数据集大小:超过 20 万对 GPS 坐标
[[108.67235 22.38068 ]
[110.579506 16.173908]
[111.34595 23.1978 ]
...
[118.50778 23.03158 ]
[118.79726 23.83771 ]
[123.088512 21.478443]]
尝试的方法: 1.HDBSCAN包
coordinates = df5.values
print(coordinates)
clusterer = hdbscan.HDBSCAN(metric='haversine', min_cluster_size=15)
clusterer.fit(coordinates)
DBSCAN min_samples=15, metric= hasrsine, algorithm='ball_tree'
听从 Anony-Mousse 的建议,我也尝试了 ELKI。
所有这些方法都给了我同样的内存错误
我已阅读以下帖子: DBSCAN for clustering of geographic location data Clustering 500,000 geospatial points in python
所有这些帖子都表明数据集的大小应该不是问题。但是,不知何故,我一直收到错误消息。如果这是一个简单的答案,我很抱歉。是因为设置吗?还是仅仅因为我在 16G 内存的笔记本电脑上运行它...?
【问题讨论】:
-
内存错误没有意义。因为 DBSCAN 只需要 O(n) 内存,所以只要有足够的时间,你应该能够在树莓派上运行它。请提供内存转储和其他诊断数据,而不仅仅是模糊的“内存不足”描述。也许你有太多其他的东西打开?什么天数仍然有效?
-
仅作记录:200k 点需要大约 3.5 MB RAM。即使有一些开销,DBSCAN 也应该能够使用几兆字节的 RAM 轻松处理,而不是千兆字节。显示真正的错误信息!
-
@Anony-Mousse 嗨!你是我的幸运星!无论出于何种原因,我今天早上尝试使用 DBSCAN 运行它作为我一天的开始,它通过了! :) 谢谢!!!
-
你也许应该少开一些东西,不时检查任务管理器,看看是什么进程占用了你的内存……不时关闭你不使用的狗窝!