Я новичок как в машинном обучении, так и в Python, и моя цель - поэкспериментировать с предсказанием маршрутов с помощью кластеризации.
Я только начал использовать DBSCAN, и мне удалось получить результаты, заданные массивом координат в качестве входных данных для процедуры соответствовать, например [[1,1], [2,2], [3,3], ...], который включает в себя все координаты всех маршрутов.
Однако я действительно хочу предоставить DBSCAN набор, содержащий все маршруты / линии, вместо набора, содержащего все координаты всех маршрутов. Поэтому мой вопрос: возможно ли это (имеет ли это вообще смысл?), И если да, то как я могу этого добиться?
Спасибо за ваше время.
действительно, каждый маршрут состоит из слишком большого количества точек. Что касается вашего предложения, не потеряем ли мы данные? Что касается 10-мерных точек, будет ли это правильно интерпретировано (например, четные числа присваиваются оси y, а нечетные - оси x)?
Это зависит. Вы можете использовать 1-миллиардную точку данных, и для всех более коротких маршрутов просто повторите конечную точку, чтобы получить это количество измерений. Конечно, вы потеряете информацию, разделив маршруты, однако я понятия не имею, что вы пытаетесь сделать. может быть или не быть важным в зависимости от того, чего именно вы хотите достичь. Разделение последовательностей - обычная практика, например, при использовании LSTM вам нужно выбрать определенное количество временных шагов и разделить более длинные последовательности в соответствии с этим. Если вы сделаете это хорошо, вы потеряете очень мало информации.






Как вы думаете, почему кластеризация на основе плотность - хороший выбор для кластеризации маршруты? Какое понятие плотность вы бы использовали здесь?
Я бы предпочел иерархическую кластеризацию с правильным расстоянием маршрута.
Но если у вас все равно есть матрица расстояний, вы, конечно же, может просто попробуете DBSCAN на нем "бесплатно" (вычисление расстояний будет на способ дороже, чем DBSCAN на матрице расстояний).
Я решил, что это хороший выбор, потому что я прочитал несколько статей, в которых он используется для прогнозирования маршрута. Например. здесь используется для прогнозирования маршрута корабля: researchgate.net/profile/Erico_Souza/publication/…
Изначально моя интуиция привела меня к иерархической кластеризации, но я не уверен, как с этим справиться, если набор данных не включает начальные координаты, точнее говоря, участники передают свое местоположение только спустя долгое время после отъезда (следовательно, мне не хватает деревьев '' корень)
Они группируют точки (положение, направление и скорость), а не маршруты. Итак, какой подход вы хотите использовать? Сначала нужно определиться с этим, затем с расстоянием, затем с алгоритмом.
Если маршруты имеют фиксированную длину, скажем, каждый маршрут состоит из 4 участков (то есть в маршруте 5 точек), тогда просто укажите маршрут как 10-мерную точку, то есть
[[x0,y0,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5], ...]. Если у маршрутов слишком много участков, вы всегда можете выбрать общее число, разделить их и скормить как несколько точек.