Запуск 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)
DBSCAN min_samples=15, метрика = haversine, алгоритм ='ball_tree'
Следуя совету Anony-Mousse, я тоже попробовал ELKI.
И все эти методы дали мне ту же ошибку памяти
Я прочитал эти сообщения: 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