Biblioteca Python para implementar modelos ocultos de Markov

15

Que biblioteca Python estável posso usar para implementar modelos de Markov ocultos? Eu preciso que ele esteja razoavelmente bem documentado, porque eu nunca usei esse modelo antes.

Como alternativa, existe uma abordagem mais direta para executar uma análise de séries temporais em um conjunto de dados usando o HMM?

user140323
fonte
Existe uma implementação alternativa do sklearn HMM que parece ter contribuições ativas que podem ser encontradas aqui: github.com/hmmlearn/hmmlearn Eu não o usei antes, então não posso falar sobre como é bom, mas, olhando para Nos exemplos, parece ser bastante direto.
Kyle.

Respostas:

10

Para outra abordagem alternativa, você pode dar uma olhada na biblioteca PyMC. Existe uma boa essência https://gist.github.com/fonnesbeck/342989 criada por Fonnesbeck, que o orienta na criação do HMM.

E se você ficar realmente ansioso com o PyMC, há um livro de código aberto incrível sobre Modelagem Bayesiana - https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers . Ele não descreve explicitamente os processos Hidden Markov, mas fornece um ótimo tutorial sobre a própria biblioteca, com muitos exemplos.

Snejana Shegheva
fonte
8

Como uma atualização sobre esta questão, acredito que a resposta aceita não seja a melhor a partir de 2017.

Conforme sugerido nos comentários de Kyle, hmmlearnatualmente é a biblioteca para HMMs em Python.

Várias razões para isso:

  • A documentação atualizada , muito detalhada e inclui tutorial

  • A _BaseHMMclasse da qual a subclasse customizada pode herdar para implementar variantes do HMM

  • Compatível com as últimas versões do Python 3.5+

  • Uso intuitivo

Ao contrário disso, a ghmm biblioteca não suporta o Python 3.x de acordo com a documentação atual. A maioria das páginas da documentação foi gerada em 2006. Não parece à primeira vista uma biblioteca de escolha ...

Editar: ainda válido em 2018.

Eskapp
fonte
5

biblioteca de romã tem suporte para HMM e a documentação é realmente útil. Depois de tentar com muitas bibliotecas hmm em python, acho que isso é muito bom.

Kirubakumaresh
fonte
2

Para uma abordagem alternativa, talvez até para ajudar a promover o entendimento, você provavelmente encontrará alguma utilidade ao fazer algumas análises via R. Os tutoriais simples baseados em séries temporais são abundantes para os [pretendentes] que devem fornecer um bootstrap. Parte 1 , Parte 2 , Parte 3 , Parte 4 . Eles fornecem fontes para geração / entrada de dados, bem como manipulação, permitindo que você ignore grande parte do trabalho para poder ver os métodos HMM reais em funcionamento. Existem análogos diretos para as implementações do Python.

Como uma observação lateral, para uma introdução mais teórica, talvez Rabiner possa fornecer algumas idéias

Shawn Mehan
fonte
2

A biblioteca ghmm pode ser a que você está procurando.

Como é dito em seu site:

É usado para implementar estruturas e algoritmos de dados eficientes para HMMs básicos e estendidos com emissões discretas e contínuas. Ele vem com invólucros Python, que oferecem uma interface muito melhor e funcionalidades adicionais.

Ele também possui uma boa documentação e um tutorial passo a passo para molhar os pés.

Dawny33
fonte