В этом блоге вы можете получить интуитивное представление о скрытых марковских моделях и их применении в данных временных рядов. Кроме того, я также упомянул пакеты R и код R для скрытой марковской модели для справки.

Эта работа была проделана во время моего обучения в бизнес-школе Praxis Business School (в качестве студента). А теперь приступим ...

Скрытые марковские модели были разработаны математиком Л. Э. Баум и соавторы. Скрытые марковские модели - это повсеместный инструмент для моделирования данных временных рядов. Они используются практически во всех современных системах распознавания речи и других областях искусственного интеллекта и распознавания образов.

Скрытая марковская модель - это инструмент для представления распределения вероятностей по последовательности наблюдений. Предполагается, что наблюдение в момент времени t было создано некоторым процессом, состояние которого скрыто от наблюдателя.

Возьмем пример:

Предположим, есть два друга по имени Алиса и Боб. Итак, у Боба настроение меняется в зависимости от погоды, поэтому, если солнечно, Боб в основном счастлив, и теперь он говорит Алисе по телефону, что он счастлив (Наблюдения), поэтому она делает вывод из этой информации, что это солнечно (скрытое состояние), а если дождливо (скрытое состояние), то Боб в основном сварливый (Наблюдение). Обратите внимание, что здесь погода в доме Боба скрыта от Алисы (Наблюдатель), и единственная информация, которая у нее есть, исходит от Боба (то есть довольна или сварлива). Допустим, мы наблюдали, что если на улице солнечно, то вероятность того, что следующий день будет солнечным, равна 0,8, а вероятность того, что следующий день будет дождливым, равна 0,2. А если сегодня дождливый день, то вероятность того, что следующий день будет дождливым, равна 0,6, поэтому вероятность того, что следующий день будет солнечным, станет 0,4. Эти вероятности называются вероятностями перехода.

В приведенном выше наборе данных мы видим, что вероятность быть счастливым, учитывая солнечный день, составляет 0,8, а вероятность быть сварливым в солнечный день составляет 0,2. Точно так же вероятность того, что Боб будет сварливым в дождливый день, составляет 0,6, а вероятность быть счастливым в дождливый день - 0,4. Эти вероятности называются вероятностями выбросов.

Мы рассчитываем априорные вероятности. P (S) = 0,67 и P (R) = 0,33.

Теперь предположим, что в течение трех дней Боб счастлив, сварлив, счастлив, тогда какая была погода в эти три дня, другими словами, какова была последовательность погоды (скрытое состояние) в течение этих трех дней. Мы знаем, что для каждого дня у нас есть два возможных сценария (Солнечный и Дождливый), поэтому в течение трех дней, скажем, среда, четверг, пятница, у нас есть в общей сложности 8 возможных последовательностей (2 * 2 * 2 = 8). Мы возьмем каждый из них и вычислим, какова вероятность с учетом этих погодных условий (последовательность скрытых состояний), что Боб был счастлив, затем сварлив, а затем счастлив, и выберем ту, которая дала нам наибольшую вероятность. Это называется максимальной апостериорной оценкой.

Для простоты (демонстрации) возьмем 2 дня (среда, четверг). Модель HMM будет выглядеть как на картинке ниже. У нас есть априорная вероятность P (S) = 0,67, вероятность перехода 0,2, вероятность того, что Боб будет счастлив при солнечной погоде P (H | S) = 0,8 и вероятность того, что Боб будет сварливым при погоде дождливой P (G | R) = 0,2. Обратите внимание, что наблюдаемая последовательность - это Happy → Grumpy, а одна из четырех возможных последовательностей скрытого состояния - Sunny → Rainy. Вероятность наблюдения последовательности является произведением всех этих вероятностей, поскольку согласно свойству Маркова дает состояние в момент времени t, наблюдение в момент времени t не зависит от состояний и наблюдения по всем остальным временным индексам.

P (hidden_state_sequence (солнечный → дождливый), наблюдаемый_sequence (счастливый → сварливый)) = P (предшествующий (солнечный)) * Transition_probability (солнечный → дождливый ) * P (счастливый | солнечный) * P (сварливый | дождливый) = 0,67 * 0,2 * 0,8 * 0,6 = 0,064

Если вы вычислите это для всех 4 возможных сценариев, вы обнаружите, что для скрытой последовательности состояний Sunny → Sunny совместная вероятность максимальна. Итак, эта модель делает Happy → Grumpy наиболее вероятным для последовательности Sunny → Sunny.

Есть 3 типа проблем, которые можно решить с помощью HMM:

  1. Оценка → Нахождение вероятностей наблюдаемой последовательности с учетом модели HMM. (Алгоритм вперед / назад)
  2. Декодирование → Нахождение последовательности скрытых состояний, которая с наибольшей вероятностью породила наблюдаемую последовательность. (именно то, что мы сделали в приведенном выше примере). (Алгоритм Витерби)
  3. Обучение → Создание скрытой марковской модели с учетом последовательности наблюдений. (Оценка Бауха-Уэлча)

Теперь давайте посмотрим, как мы можем реализовать скрытую марковскую модель в R, используя образцы данных.

Пакет depmixS4 можно использовать для реализации HMM в R studio (моя версия 3.6). Я взял образец примера из блога, где данные представляют собой значения рецептов врача в зависимости от времени.

Здесь мы изучаем параметры скрытой марковской модели (вероятности перехода и вероятности эмиссии). Инициализация количества состояний как 2 в приведенной выше модели.

На приведенном выше рисунке мы можем видеть матрицу перехода и значения каждого состояния. Из параметров ответа мы видим два скрытых состояния: высокое и низкое: высокое (114,73–27,23,114,73 + 27,23) и низкое (40,92–20,96,40,92 + 20,96 ). Давайте посмотрим на апостериорные вероятности ..

Мы можем видеть на рисунке скрытое состояние, отмеченное в данных. И это скрытая последовательность наших данных.

Скрытая марковская модель по данным фондового рынка:

Прогнозирование фондового рынка было одной из наиболее активных областей исследования в прошлом, учитывая очевидный интерес многих крупных компаний. Исторически сложилось так, что различные алгоритмы машинного обучения применялись с разной степенью успеха. Однако прогнозирование запасов по-прежнему сильно ограничено из-за его нестационарного, сезонного и непредсказуемого характера. Предсказание прогнозов только на основе предыдущих данных об акциях - еще более сложная задача, поскольку при этом игнорируются несколько внешних факторов.

HMM способны моделировать скрытые переходы между состояниями из последовательных наблюдаемых данных. Проблема прогнозирования запасов также может рассматриваться как следствие той же модели. Цена акций зависит от множества факторов, которые обычно остаются невидимыми для инвестора (скрытые переменные). Переход между основными факторами меняется в зависимости от политики и решений компании, ее финансовых условий и управленческих решений, и они влияют на цену акций (наблюдаемые данные). Таким образом, HMM естественным образом подходят для решения проблемы прогнозирования цен. Набор данных был удален из WWW с помощью библиотеки Quantmod в R и содержит информацию, относящуюся к производительности конкретной акции. Цель состоит в том, чтобы найти состояния и параметры Hidde модели HMM, используя эти данные.

Мы извлекаем информацию, относящуюся к TWII, набор данных содержит информацию, относящуюся к цене открытия и закрытия акций на данный день, максимальной и минимальной цене и объему запасов. Мы заинтересованы в моделировании с помощью нашей HMM разницы между ценой закрытия и стоимостью открытия текущего дня. Я выделил данные только за 2 года.

После нахождения модели HMM для 5 скрытых состояний мы получаем указанную выше матрицу перехода.

На приведенном выше рисунке мы видим, как наши скрытые состояния отображаются на графике фондового рынка. Это дает нам представление о различных последовательностях скрытых состояний в данных и может сделать некоторые выводы из полученных скрытых состояний, если мы обладаем достаточным объемом знаний в предметной области.

Вывод:

Мы увидели, что такое скрытые марковские модели, и применили их к различным наборам данных, получили интуитивное представление о скрытых марковских моделях и построили HMM на данных фондового рынка.

В следующем блоге я напишу о скрытых марковских моделях с непрерывным временем и алгоритмах в HMM для сокращения сложных вычислительных задач. В будущем появятся новые обучающие сообщения, так что, чтобы проверять их, подпишитесь на меня на Medium и следите за обновлениями !!

Дополнительные ресурсы и ссылки:

  1. Https://www.youtube.com/watch?v=kqSzLo9fenk → Обязательно посмотрите, очень хорошее объяснение, большая часть контента для блога взята отсюда.
  2. Https://rubikscode.net/2018/10/29/stock-price-prediction-using-hidden-markov-model/ → Блог.
  3. Https://blog.revolutionanalytics.com/2014/03/r-and-hidden-markov-models.html
  4. Http://mlg.eng.cam.ac.uk/zoubin/papers/ijprai.pdf → Это замечательная статья для чтения.
  5. Https://www.youtube.com/watch?v=j3r9a75zOvM → Я сослался на это видео на YouTube для своего блога.