¿Qué biblioteca estable de Python puedo usar para implementar modelos ocultos de Markov? Necesito que esté razonablemente bien documentado, porque nunca antes había usado este modelo.
Alternativamente, ¿existe un enfoque más directo para realizar un análisis de series de tiempo en un conjunto de datos utilizando HMM?
python
time-series
markov-process
usuario140323
fuente
fuente
Respuestas:
Para otro enfoque alternativo, puede echar un vistazo a la biblioteca PyMC. Hay una buena idea https://gist.github.com/fonnesbeck/342989 creada por Fonnesbeck que te guía a través de la creación de HMM.
Y si está realmente ansioso por el PyMC, hay un increíble libro de código abierto sobre Modelado Bayesiano: https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers . No describe explícitamente los procesos ocultos de Markov, pero ofrece un muy buen tutorial sobre la propia biblioteca con muchos ejemplos.
fuente
Como actualización de esta pregunta, creo que la respuesta aceptada no es la mejor a partir de 2017.
Como se sugiere en los comentarios de Kyle,
hmmlearn
actualmente es la biblioteca para HMM en Python.Varias razones para esto:
La documentación actualizada , que es muy detallada e incluye un tutorial.
La
_BaseHMM
clase de la que la subclase personalizada puede heredar para implementar variantes HMMCompatible con las últimas versiones de Python 3.5+
Uso intuitivo
Frente a esto, la
ghmm
biblioteca no es compatible con Python 3.x de acuerdo con la documentación actual. La mayoría de las páginas de documentación se han generado en 2006. No parece a primera vista una biblioteca de elección ...Editar: Todavía válido en 2018.
fuente
La biblioteca de granadas tiene soporte para HMM y la documentación es realmente útil. Después de probar con muchas bibliotecas hmm en python, creo que esto es bastante bueno.
fuente
Para un enfoque alternativo, tal vez incluso para ayudar a fomentar la comprensión, probablemente encontrará alguna utilidad al hacer algunos análisis a través de R. Abundan los tutoriales basados en series de tiempo simples para quants [aspirantes] que deberían proporcionar un arranque. Parte 1 , Parte 2 , Parte 3 , Parte 4 . Estos proporcionan fuentes para la generación / admisión de datos, así como la manipulación, lo que le permite omitir gran parte del trabajo para poder ver los métodos HMM reales en el trabajo. Hay análogos directos a las implementaciones de Python.
Como nota al margen, para una introducción más teórica, quizás Rabiner podría proporcionar algunas ideas
fuente
La biblioteca ghmm podría ser la que está buscando.
Como se dice en su sitio web:
También tiene una buena documentación y un tutorial paso a paso para mojarse los pies.
fuente