sklearn BayesianGaussianMixture Назначение кластера на основе более чем одной точки данных

Я пытаюсь использовать sklearn.mixture.BayesianGaussianMixture, чтобы соответствовать набору траекторий.

Каждая траектория состоит из набора точек данных, например,

t_i = {x_i1, y_i1, x_i2, y_i2, ... , x_iN, y_iN},

где t_i это i-я траектория и (x_ik, y_ik) является k-й точкой на траектории. Например, x_ik может представлять состояние робота на этапе k, а y_ik может представлять действие, предпринятое роботом. Каждый компонент GP будет отображаться из x_ik -> y_ik. Это вполне стандартно для изучения GP с использованием sklearn.

Однако, если вы хотите изучить модель гауссовой смеси с помощью процесса Дирихле, вам необходимо решить, когда будет добавлен новый компонент GP.

Класс BayesianGaussianMixture предоставляет только интерфейс для назначения кластера на основе одной точки данных. Другими словами, принадлежит ли новая точка данных новому кластеру или нет.

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

1 ответ

Я бы пошел со следующим подходом.

Сначала попробуйте преобразовать ваши непрерывные координаты в набор дискретных значений. Например, вы можете разделить вашу карту на ячейки и назначить каждой точке (x_i, y_i) метку на основе ячейки. В этом случае каждая траектория становится последовательностью меток

traj_1: cell_id_0 -> cell_id_1 -> ... -> cell_id_n
traj_2: cell_id_3 -> cell_id_6 -> ... -> cell_id_m
...

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

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