Libreria Python per implementare Hidden Markov Models


15

Quale libreria Python stabile posso usare per implementare i modelli nascosti di Markov? Ho bisogno che sia ragionevolmente ben documentato, perché non ho mai usato questo modello prima d'ora.

In alternativa, esiste un approccio più diretto per eseguire un'analisi delle serie temporali su un set di dati utilizzando HMM?


C'è un'implementazione alternativa di sklearn HMM che sembra avere contributi attivi che possono essere trovati qui: github.com/hmmlearn/hmmlearn Non l'ho mai usato prima, quindi non posso parlare di quanto sia buono, ma, guardando a gli esempi, sembra essere abbastanza semplice.
Kyle.

Risposte:


10

Per un altro approccio alternativo, puoi dare un'occhiata alla libreria PyMC. C'è una buona idea https://gist.github.com/fonnesbeck/342989 creata da Fonnesbeck che ti guida attraverso la creazione di HMM.

E se diventi davvero entusiasta del PyMC, c'è un fantastico libro open source sulla modellazione bayesiana - https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers . Non descrive esplicitamente i processi nascosti di Markov, ma offre un ottimo tutorial sulla libreria stessa con molti esempi.


8

Come aggiornamento su questa domanda, credo che la risposta accettata non sia la migliore dal 2017.

Come suggerito nei commenti di Kyle, hmmlearn è attualmente la libreria con cui scegliere gli HMM in Python.

Diversi motivi per questo:

  • La documentazione aggiornata , che è molto dettagliata e include tutorial

  • La _BaseHMMclasse da cui la sottoclasse personalizzata può ereditare per l'implementazione di varianti HMM

  • Compatibile con le ultime versioni di Python 3.5+

  • Uso intuitivo

Di fronte a questo, la ghmm libreria non supporta Python 3.x secondo la documentazione corrente. La maggior parte delle pagine di documentazione è stata generata nel 2006. A prima vista non sembra una biblioteca di scelta ...

Modifica: ancora valido nel 2018.


5

la libreria di melograni ha il supporto per HMM e la documentazione è davvero utile. Dopo aver provato con molte librerie hmm in Python, trovo che questo sia abbastanza buono.


2

Per un approccio alternativo, forse anche per favorire la comprensione, probabilmente troverai qualche utilità nel fare alcune analisi tramite R. Esercitazioni basate su serie temporali semplici abbondano per richieste [aspiranti] che dovrebbero fornire un bootstrap. Parte 1 , Parte 2 , Parte 3 , Parte 4 . Questi forniscono fonti per la generazione / acquisizione dei dati e la manipolazione, consentendo di ignorare gran parte del lavoro per poter vedere i metodi HMM effettivi al lavoro. Esistono analoghi diretti alle implementazioni di Python.

Come nota a margine , per un'introduzione più teorica, forse Rabiner potrebbe fornire alcuni spunti


2

La libreria ghmm potrebbe essere quella che stai cercando.

Come si dice nel loro sito Web:

È utilizzato per l'implementazione di strutture dati e algoritmi efficienti per HMM di base ed estesi con emissioni discrete e continue. Viene fornito con involucri Python che forniscono un'interfaccia molto più bella e funzionalità aggiuntive.

Ha anche una bella documentazione e un tutorial passo-passo per bagnare i piedi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.