Запуск DBSCAN для данных GPS: ошибка памяти

Для проекта, над которым я сейчас работаю, мне нужно сгруппировать относительно большое количество пар GPS в разные кластеры местоположения. После прочтения множества постов и предложений здесь, в Stackru, и применения различных подходов, у меня все еще остается проблема с его запуском...

Размер набора данных: чуть более 200 тысяч пар 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)
  1. DBSCAN min_samples=15, метрика = haversine, алгоритм ='ball_tree'

  2. Следуя совету Anony-Mousse, я тоже попробовал ELKI. ELKI UI SETTING

И все эти методы дали мне ту же ошибку памяти

Я прочитал эти сообщения: DBSCAN для кластеризации данных о географическом местоположении Кластеризация 500 000 геопространственных точек в Python

Все эти посты предполагали, что размер набора данных не должен быть проблемой. Однако почему-то я продолжал получать сообщение об ошибке. Извините, если это будет простой ответ. Это из-за настроек? или просто потому, что я запускаю его на своем ноутбуке с памятью 16G...?

0 ответов

Для sklearn: я столкнулся с той же проблемой, когда использовал старую версию на sklearn 0.19.1, потому что сложность была O(N^2).

Но теперь проблема была решена в новой версии 0.20.2 и больше нет ошибок памяти, и сложность становится O(nd), где d - это среднее число соседей. это не сложность идола, но намного лучше, чем старые версии.

Проверьте примечания в этом выпуске, чтобы избежать высокого использования памяти: https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html

Другие вопросы по тегам