У меня есть некоторые 2D-данные (данные GPS) с кластерами (места остановки), которые, как я знаю, напоминают гауссианцы с характерным стандартным отклонением (пропорциональным присущему шуму образцов GPS). На рисунке ниже представлен пример, который, как я полагаю, имеет два таких кластера. Изображение имеет ширину 25 метров и высоту 13 метров.
Модуль sklearn
имеет функцию sklearn.mixture.GaussianMixture
, которая позволяет сопоставлять смесь гауссианов с данными. Функция имеет параметр covariance_type
, который позволяет вам принимать разные вещи о форме гауссовых. Например, вы можете считать их равномерными с помощью аргумента 'tied'
.
Однако не представляется возможным непосредственно предположить, что матрицы ковариации остаются постоянными. Исходный код sklearn
кажется тривиальным сделать модификацию, которая позволяет это, но он чувствует себя немного чрезмерно, чтобы сделать запрос на перенос с обновлением, которое позволяет это (также я не хочу случайно добавлять ошибки в sklearn
), Есть ли лучший способ подгонки смеси к данным, где фиксирована матрица ковариации каждого гауссова?
Я хочу предположить, что SD должен оставаться постоянным на расстоянии около 3 метров для каждого компонента, так как это примерно соответствует уровню шума моих образцов GPS.