1

Предположим, что существует последовательность наблюдений, например. [1,2,3,5,5,5,2,3,2,3, ..., 3, 4]. Я пытаюсь использовать текущую реализацию HMM в Scikit-learn, чтобы предсказать следующее значение этой последовательности наблюдения. У меня есть 2 вопроса.Использование модели HIdden Markov для прогнозирования

  1. Учитывая последовательность наблюдений, как я могу предсказать следующее наблюдение (как упоминалось выше)?

  2. Учитывая множество последовательностей n наблюдений и n + 1 наблюдений этих последовательностей, можно ли использовать HMM для прогнозирования (n + 1) -го наблюдения новой последовательности n наблюдений? Если да, то как?

Я не мог этого понять из документации.

Я нашел вероятный duplicate, но в нем не указано, как использовать HMM в Scikit-learn, чтобы предсказать следующее значение в последовательности.

ответ

9

HMM не подходят для этой проблемы. Они умеют предсказать метки (скрытые состояния) полностью наблюдаемой последовательности, а не для завершения последовательности. Попробуйте изучить классификатор или регрессионную модель на окнах наблюдений, а затем используйте это для прогнозирования. То есть во время обучения дайте модельные наблюдения (i, ..., i + k) как функции и наблюдения i + k + 1 в качестве цели для всех позиций i в каждой из ваших последовательностей. Во время тестирования загрузите последние наблюдения k как функции.

+0

Да. Я понял, что HMM не будет работать здесь. Спасибо за совет. – maheshakya

1

scikit очень понятно о подготовке модели СММ, проверить это http://scikit-learn.org/stable/modules/hmm.html

СММ может использоваться для выборки списка значений, в то время как каждый прогноз зависит только от предыдущего состояния.

+0

Я изучил это. Как мне подготовить модель с помощью последовательности значений и получить этот список значений? – maheshakya

+0

При использовании метода fit(), [X] должен быть в форме (n_i, n_features). Здесь каковы значения для n_features, если мы просто хотим обучить модель с помощью последовательности наблюдений? – maheshakya

+0

Если мы хотим предоставить скрытые состояния как функции, как мы можем заранее знать эти скрытые состояния? – maheshakya

4

Это задача временного ряда, нет оснований полагать, что HMM будут работать здесь.

Я предлагаю вам взглянуть на методы временных рядов --- существует семейство методов, называемых ARIMA, которые должны хорошо работать.

Смежные вопросы