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?
python
time-series
markov-process
user140323
fonte
fonte
Respostas:
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.
fonte
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,
hmmlearn
atualmente é a biblioteca para HMMs em Python.Várias razões para isso:
A documentação atualizada , muito detalhada e inclui tutorial
A
_BaseHMM
classe da qual a subclasse customizada pode herdar para implementar variantes do HMMCompatí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.
fonte
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.
fonte
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
fonte
A biblioteca ghmm pode ser a que você está procurando.
Como é dito em seu site:
Ele também possui uma boa documentação e um tutorial passo a passo para molhar os pés.
fonte