Python 在GPS数据上运行DBSCAN:内存错误

Python 在GPS数据上运行DBSCAN:内存错误,python,gps,dbscan,elki,Python,Gps,Dbscan,Elki,对于我目前正在进行的一个项目,我需要将相对大量的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

对于我目前正在进行的一个项目,我需要将相对大量的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 最小样本数=15,度量值=haversine,算法为“球树”

  • 我听从了阿诺尼·莫斯的建议,也试过埃尔基。

  • 所有这些方法都给了我同样的记忆错误

    我读过这些帖子:

    所有这些帖子都表明数据集的大小不应该是个问题。然而,不知何故,我一直收到错误消息。如果这是一个简单的答案,我很抱歉。是因为设置的原因吗?或者仅仅是因为我在笔记本电脑上使用16G内存运行它…?

    对于sklearn: 当我在sklearn 0.19.1上使用旧版本时,我遇到了同样的问题,因为复杂性是O(N^2)

    但是现在这个问题已经在新版本0.20.2中得到了解决,不再有内存错误,复杂性变成了O(n.d),其中d是邻居的平均数量。 这不是偶像的复杂性,而是比旧版本好得多

    请查看本版本中的注意事项,以避免高内存使用率:

    内存错误没有意义。因为DBSCAN只需要O(n)内存,所以如果有足够的时间,您应该能够在raspberry pi上运行它。请提供内存转储和其他诊断数据,而不仅仅是模糊的“内存不足”描述。也许你打开的东西太多了?什么天的大小仍然有效?只是为了记录:200k点需要大约3.5MB内存。即使有一些开销,DBSCAN也应该能够用几兆字节的RAM(而不是千兆字节)轻松地处理这个问题。显示真正的错误消息@Anony Mousse嗨!!你是我的幸运星!不管出于什么原因,今天早上我试着用DBSCAN运行它,作为我一天的开始,它成功了!:)谢谢你也许应该少打开一些东西&不时检查任务管理器,看看是什么进程耗尽了你的内存。。。不时关闭你不使用的狗舍!