Biblioteca de Python para implementar modelos ocultos de Markov

15

¿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?

usuario140323
fuente
Hay una implementación alternativa de sklearn HMM que parece tener contribuciones activas que se pueden encontrar aquí: github.com/hmmlearn/hmmlearn No lo he usado antes, así que no puedo hablar de lo bueno que es, pero, mirando En los ejemplos, parece ser bastante sencillo.
Kyle.

Respuestas:

10

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.

Snejana Shegheva
fuente
8

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, hmmlearnactualmente es la biblioteca para HMM en Python.

Varias razones para esto:

  • La documentación actualizada , que es muy detallada e incluye un tutorial.

  • La _BaseHMMclase de la que la subclase personalizada puede heredar para implementar variantes HMM

  • Compatible 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.

Eskapp
fuente
5

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.

Kirubakumaresh
fuente
2

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

Shawn Mehan
fuente
2

La biblioteca ghmm podría ser la que está buscando.

Como se dice en su sitio web:

Se utiliza para implementar estructuras y algoritmos de datos eficientes para HMM básicos y extendidos con emisiones discretas y continuas. Viene con envoltorios de Python que proporcionan una interfaz mucho mejor y funcionalidad adicional.

También tiene una buena documentación y un tutorial paso a paso para mojarse los pies.

Dawny33
fuente