Modelli Markov nascosti con algoritmo Baum-Welch che usa Python


11

Sto cercando un'implementazione di Python (in puro Python o avvolgendo roba esistente) di HMM e Baum-Welch.

Qualche idea?

Ho appena cercato su Google e ho trovato materiale molto scarso rispetto ad altre tecniche di apprendimento automatico. Perché?

Risposte:


11

Lo scikit-learn ha un'implementazione HMM . Fino a poco tempo fa era considerato non mantenuto e il suo utilizzo era scoraggiato. Tuttavia è migliorato nella versione di sviluppo. Non posso garantire la sua qualità, tuttavia, poiché non so nulla degli HMM.

Disclaimer: sono uno sviluppatore di scikit-learn.

Modifica : abbiamo spostato gli HMM all'esterno di scikit-learn, su https://github.com/hmmlearn/hmmlearn


Sì, decido di non usarlo a causa di unmanteinement ..
nkint

Penso che stia migliorando e che presto saremo in grado di impegnarci a mantenerlo.
Gael Varoquaux,

l'implementazione di sklearn usa Baum-Welch?
Vishal,

Sì lo fa. Vedere la _BaseHMMdocumentazione per i dettagli di implementazione.
Sergei Lebedev,

3

Hai visto NLTK?

http://www.nltk.org/

Ha alcune classi adatte a questo genere di cose, ma in qualche modo dipendenti dall'applicazione.

http://www.nltk.org/api/nltk.tag.html#nltk.tag.hmm.HiddenMarkovModelTrainer

Se stai cercando qualcosa di più "orientato all'istruzione", qualche tempo fa ho scritto addestratore di giocattoli:

http://pastebin.com/aJG3Ukmn


Grazie. ne ho bisogno per il riconoscimento dei gesti. sono bloccato su quello che potrebbe essere il mio alfabeto (simboli in nltk) nella mia applicazione ..
nkint


ok i dati sono le etichette quindi se uso solo 8 etichette per raggruppare le coordinate di un gesto .. l'alfabeto è [1,2,3,4,5,6,7]
nkint

ma ancora non capisco la differenza tra stato e simbolo nel costruttore
HiddenMarkovModelTrainer

1
va bene, che ne dici di questo: creativedistraction.com/demos/… è una demo passo-passo con il codice di come costruire il tuo riconoscimento dei gesti con il Kinect. il codice è per Octave non per Python, ma sembra che tu sia bloccato sulle idee / sull'implementazione più che sui dettagli del software. ovviamente richiede un Kinect ... potresti anche dare un'occhiata: code.google.com/p/ehci
qi5d02lx




0

Segue un'implementazione Pyhton dell'algoritmo Baum-Welch:

https://github.com/hamzarawal/HMM-Baum-Welch-Algorithm

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.