Вызов HMM для ваших данных в python.

Учитывая зависимость A(x), Скрытая марковская модель присваивает каждой точке одно из предопределенных состояний.

Например, расход топлива автомобиля зависит от заправочной станции. Представьте, что у вас есть данные о том, сколько топлива вы тратите на каждые 100 км (~62 мили). Давайте построим это.

Если мы знаем, что мы используем две заправки. Мы можем создать модель с двумя состояниями. Давайте обучим и применим его к нашим данным. Я использую пакет Python hmmlearn. При создании данных я записал наземную правду, поэтому теперь мы можем сравнить предсказание и наземную правду.

Конечно, при высоком шуме может быть трудно точно различить состояние.

То, что находится внутри?

Я упомянул, что модель содержит два состояния. Состояние соответствует нормальному распределению с четко определенным средним значением и стандартным отклонением. Это очень сильное предположение: данные внутри каждого состояния должны распределяться нормально. Кроме того, мы можем переходить из одного состояния в другое и обратно. Определяем матрицу переходов: вероятности остаться в состоянии 1, 2 и перейти 1 -> 2, 2 -> 1. На каждом шаге вычисляем, что лучше: остаться в текущем состоянии или перейти в другое. Мы минимизируем функцию потерь, повторяя эту симуляцию много раз.

Идея похожа, когда у нас есть больше состояний.

Ниже вы можете найти код Python для воспроизведения.

Также есть ссылка на блокнот, где можно найти, как воспроизводить сюжеты. https://github.com/polly-code/example_hmm/blob/main/example_call_HMM.ipynb