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?

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


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


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.