DBSCAN со строками в качестве входных данных

Я новичок как в машинном обучении, так и в Python, и моя цель - поэкспериментировать с предсказанием маршрутов с помощью кластеризации.

Я только начал использовать DBSCAN, и мне удалось получить результаты, заданные массивом координат в качестве входных данных для процедуры соответствовать, например [[1,1], [2,2], [3,3], ...], который включает в себя все координаты всех маршрутов.

Однако я действительно хочу предоставить DBSCAN набор, содержащий все маршруты / линии, вместо набора, содержащего все координаты всех маршрутов. Поэтому мой вопрос: возможно ли это (имеет ли это вообще смысл?), И если да, то как я могу этого добиться?

Спасибо за ваше время.

Если маршруты имеют фиксированную длину, скажем, каждый маршрут состоит из 4 участков (то есть в маршруте 5 точек), тогда просто укажите маршрут как 10-мерную точку, то есть [[x0,y0,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5], ...]. Если у маршрутов слишком много участков, вы всегда можете выбрать общее число, разделить их и скормить как несколько точек.

Giacomo Alzetta 06.09.2018 16:29

действительно, каждый маршрут состоит из слишком большого количества точек. Что касается вашего предложения, не потеряем ли мы данные? Что касается 10-мерных точек, будет ли это правильно интерпретировано (например, четные числа присваиваются оси y, а нечетные - оси x)?

João Matos 06.09.2018 16:43

Это зависит. Вы можете использовать 1-миллиардную точку данных, и для всех более коротких маршрутов просто повторите конечную точку, чтобы получить это количество измерений. Конечно, вы потеряете информацию, разделив маршруты, однако я понятия не имею, что вы пытаетесь сделать. может быть или не быть важным в зависимости от того, чего именно вы хотите достичь. Разделение последовательностей - обычная практика, например, при использовании LSTM вам нужно выбрать определенное количество временных шагов и разделить более длинные последовательности в соответствии с этим. Если вы сделаете это хорошо, вы потеряете очень мало информации.

Giacomo Alzetta 06.09.2018 16:45
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
310
1

Ответы 1

Как вы думаете, почему кластеризация на основе плотность - хороший выбор для кластеризации маршруты? Какое понятие плотность вы бы использовали здесь?

Я бы предпочел иерархическую кластеризацию с правильным расстоянием маршрута.

Но если у вас все равно есть матрица расстояний, вы, конечно же, может просто попробуете DBSCAN на нем "бесплатно" (вычисление расстояний будет на способ дороже, чем DBSCAN на матрице расстояний).

Я решил, что это хороший выбор, потому что я прочитал несколько статей, в которых он используется для прогнозирования маршрута. Например. здесь используется для прогнозирования маршрута корабля: researchgate.net/profile/Erico_Souza/publication/…

João Matos 06.09.2018 18:37

Изначально моя интуиция привела меня к иерархической кластеризации, но я не уверен, как с этим справиться, если набор данных не включает начальные координаты, точнее говоря, участники передают свое местоположение только спустя долгое время после отъезда (следовательно, мне не хватает деревьев '' корень)

João Matos 06.09.2018 18:41

Они группируют точки (положение, направление и скорость), а не маршруты. Итак, какой подход вы хотите использовать? Сначала нужно определиться с этим, затем с расстоянием, затем с алгоритмом.

Has QUIT--Anony-Mousse 06.09.2018 23:08

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