Учет времени в DBSCAN

#python #dbscan

#питон #dbscan

Вопрос:

Я хочу сгруппировать некоторые точки GPS с помощью алгоритма DBSCAN, и я выбираю eps: 20 м и min_samples: 4. Алгоритм отлично работает с моими данными, однако мне нужно также учитывать время точки в процессе кластеризации. Предположим, что в кластере есть 10 точек, однако 4 из них находятся между 8 утра и 8:30 утра, а другие продолжительностью от 11 до 11:15 утра. Чего я хочу, так это чтобы алгоритм обнаружил здесь 2 кластера, один со временем 8 баллов и один со временем 11 баллов. Я имею в виду, что мне нужно иметь другие критерии для моего алгоритма DBSCAN, а не eps и min_samples.

Комментарии:

1. Нет, вы создали трехмерную точку (широта, длина, время) и пытаетесь сгруппироваться на основе этого

2. @DaniMesejo Я думал об этом, однако мне интересно, какова будет единица измерения расстояния в трехмерной точке (широта, длина, время)? так как я хочу, чтобы eps был 20 метров.

3. Каковы критерии для определения времени?

4. @DaniMesejo Мне нужно, чтобы алгоритм учитывал не только расстояние между точками, но и время возникновения… соседние точки также должны находиться в определенном временном диапазоне.

5. Да, я это понял, но вы сказали, что вам нужно 20 метров для расстояния между точками, каким должно быть значение для этого конкретного временного диапазона

Ответ №1:

Используйте обобщенный DBSCAN.

Затем определите соседей как оба

  1. в пределах расстояния maxneighborhordistance км
  2. в течение максимум нескольких минут