Скрытая Марковская Модель

Я являюсь домашним пользователем Matlab, поэтому у меня нет доступа ко всем наборам инструментов MatLab, но я не против покупать один раз в какое-то время. В настоящее время я использую другое бесплатное программное обеспечение (VarScreen) для генерации скрытых марковских моделей. Этот инструмент использует несколько векторов в качестве входных данных, а также число состояний, которые, я думаю, могут существовать в состоянии HMM. В этом случае я дал ему 5 входных векторов, целевой вектор и сказал ему создать модель из 3 состояний, используя 2 вектора. Он выбрал 2 лучших вектора, сгенерировал модель и вернул следующее:

Specifications of the best HMM model correlating with RETURN_1D...

Means (top number) and standard deviations (bottom number)

State         CCMA_13           CCMA_89

   1        -11.96117          -7.22653
             21.46392          23.05265

   2         18.24447           7.26517
             18.36591          21.69893

   3          2.75350          12.63285
             20.37755          17.43237

Transition probabilities...

         1        2        3
  1   0.9913   0.0087   0.0000
  2   0.0073   0.9843   0.0084
  3   0.0015   0.0032   0.9952

Further properties of each state...
  Percent of cases state is highest (tied cases are ignored)
  Correlation of state probability with target
  Mean of target when in this state (tied cases are ignored)
  Standard deviation of target when in this state (tied cases are ignored)

State     Percent    Correlation   Target mean   Target StdDev

  1         26.92      -0.08378      -0.18628        2.27240
  2         26.11       0.06865       0.24341        1.53242
  3         46.98       0.01524       0.09744        1.52846

Как я понимаю, бесплатный инструмент HMM генерируется с использованием только векторов. Корреляции создаются с учетом соответствия состояний целевому вектору. Эти результаты являются, по крайней мере, потенциально разумным представлением финансовых данных, которые я предоставил (27% -ый медвежий, 26% -ый бычий, 47% -ый устойчивый), но я фактически нигде не пытался использовать модель, чтобы проверить, действительно ли она дает какую-либо ценность.

В любом случае, вопрос здесь заключается в том, как бы я сделал нечто подобное с самим MatLab или с Toolbox для статистики и машинного обучения? (Или любой другой набор инструментов) Я мог бы сделать выбор из 2 из 5 векторов в цикле, но читал файлы онлайн-справки для таких вещей, как hmmgenerate/hmmtrain/ и т.д. еще не нажал на меня о том, как генерируется модель.

Спасибо!

1 ответ

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

Сам Matlab в настоящее время не имеет встроенного набора инструментов для HMM. Он включает только некоторые основные функции, такие как hmmtrain, hmmestimate или hmmviterbi. Однако, как только вы захотите немного настроить свою модель, этих функций недостаточно.

При этом существует отличный набор инструментов Matlab, разработанный профессором Кевином Мерфи, который вы можете найти в его более ранней версии здесь: http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.html, который включает в себя "Как использовать", который довольно хорошо сделан. Этот набор инструментов был улучшен позже, и все файлы можно найти по адресу: https://github.com/probml/pmtk3

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

Надеюсь это поможет!

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