Уменьшите размер набора пространственных данных с помощью HDBSCAN - PullRequest
1 голос
/ 12 февраля 2020

Я пытаюсь уменьшить размер набора пространственных данных путем их кластеризации и поиска центральной точки для кластеров. Я ссылался на эту статью (в которой используется DBSCAN), и это отчасти помогло, за исключением того, что теперь размер набора данных увеличился, теперь я не могу go пересылать b / c ошибок памяти , Итак, я переключился на следующую лучшую вещь HDBSCAN. Но я получаю некоторые странные результаты. Во-первых, я использую следующее:

clusterer = hdbscan.HDBSCAN(min_samples=1, min_cluster_size=25, algorithm='prims_balltree', metric='haversine')

Это может обеспечить кластеры, но когда я копаюсь в этих кластерах, они практически одинаковы. например, два кластера, состоящие из одинаковых географических местоположений. Моя идея состоит в том, что это должен был быть один кластер.

Во-вторых, чтобы решить такую ​​проблему, я попытался использовать cluster_selection_epsilon=0.1/6371 для кластеризации географических местоположений в пределах 100m в том же кластере.

clusterer = hdbscan.HDBSCAN(min_samples=5, min_cluster_size=10, metric='haversine',cluster_selection_epsilon=0.1/6371)

Но затем я получаю этот один большой кластер с более чем сотней тысяч точек, и пока я строил графики на фолиевом слое, я обнаружил, что эти точки не находятся в пределах 100m, а скорее являются отдельными группами точек, которые 100 м друг от друга. Я, вероятно, не использую min_cluster_size в терминах haversine metri c. Может кто-нибудь объяснить, что происходит. Как я могу достичь своей цели кластеризации подобных географических местоположений. и сузить кластер до одной центральной точки?

...