Modèles de Markov cachés avec algorithme Baum-Welch utilisant python

11

Je cherche une implémentation de python (en python pur ou en encapsulant des trucs existants) de HMM et Baum-Welch.

Quelques idées?

Je viens de chercher dans google et j'ai trouvé du matériel vraiment médiocre par rapport aux autres techniques d'apprentissage automatique. Pourquoi?

nkint
la source

Réponses:

11

Le scikit-learn a une implémentation HMM . Il était jusqu'à récemment considéré comme non entretenu et son utilisation était découragée. Cependant, il s'est amélioré dans la version de développement. Je ne peux cependant pas garantir sa qualité, car je ne connais rien aux HMM.

Avertissement: je suis un développeur scikit-learn.

Edit : nous avons déplacé les HMM en dehors de scikit-learn, vers https://github.com/hmmlearn/hmmlearn

Gael Varoquaux
la source
ouais je décide de ne pas l'utiliser à cause d'un manque de confiance ..
nkint
Je pense qu'il s'améliore et que nous pourrons bientôt nous engager à le maintenir.
Gael Varoquaux
l'implémentation sklearn utilise-t-elle Baum-Welch?
Vishal
Oui. Voir la _BaseHMMdocumentation pour les détails d'implémentation.
Sergei Lebedev
3

Avez-vous vu NLTK?

http://www.nltk.org/

Il a quelques classes qui conviennent à ce genre de choses, mais quelque peu dépendantes de l'application.

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

Si vous cherchez quelque chose de plus «axé sur l'éducation», j'ai écrit il y a quelque temps un entraîneur jouet:

http://pastebin.com/aJG3Ukmn

qi5d02lx
la source
Merci. j'en ai besoin pour la reconnaissance des gestes. je suis bloqué sur ce que pourrait être mon alphabet (symboles en nltk) dans mon application ..
nkint
ok les données sont les étiquettes donc si j'utilise seulement 8 étiquettes pour regrouper les coordonnées d'un geste .. l'alphabet est [1,2,3,4,5,6,7]
nkint
mais je ne comprends toujours pas la différence entre l'état et le symbole dans le constructeur
HiddenMarkovModelTrainer
1
bien, que pensez-vous de cela: creativedistraction.com/demos/… c'est une démo étape par étape avec le code de la façon de construire votre propre reconnaissance de gestes avec le kinect. le code est pour Octave pas python, mais il semble que vous êtes plus coincé sur les idées / implémentations que sur les détails du logiciel. bien sûr, cela nécessite un kinect ... vous pouvez également vérifier ceci: code.google.com/p/ehci
qi5d02lx
0

Voici une implémentation Pyhton de l'algorithme Baum-Welch:

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

Hamza Rawal
la source