Versteckte Markov-Modelle mit Baum-Welch-Algorithmus unter Verwendung von Python

11

Ich suche nach einer Python-Implementierung (in reinem Python oder in Wrapping vorhandener Materialien) von HMM und Baum-Welch.

Einige Ideen?

Ich habe gerade in Google gesucht und in Bezug auf andere Techniken des maschinellen Lernens wirklich schlechtes Material gefunden. Warum?

nkint
quelle

Antworten:

11

Das Scikit-Learn hat eine HMM-Implementierung . Es wurde bis vor kurzem als nicht gewartet angesehen und von seiner Verwendung wurde abgeraten. Es hat sich jedoch in der Entwicklungsversion verbessert. Ich kann jedoch nicht für seine Qualität bürgen, da ich nichts von HMMs weiß.

Haftungsausschluss: Ich bin ein Scikit-Learn-Entwickler.

Bearbeiten : Wir haben die HMMs außerhalb von scikit-learn auf https://github.com/hmmlearn/hmmlearn verschoben

Gael Varoquaux
quelle
Ja, ich beschließe, es wegen Unmainainement nicht zu verwenden.
Nkint
Ich denke, dass es sich verbessert und wir uns bald dazu verpflichten können, es aufrechtzuerhalten.
Gael Varoquaux
Verwendet die sklearn-Implementierung Baum-Welch?
Vishal
Ja tut es. _BaseHMMEinzelheiten zur Implementierung finden Sie in der Dokumentation.
Sergei Lebedev
3

Hast du NLTK gesehen?

http://www.nltk.org/

Es gibt einige Klassen, die für diese Art von Dingen geeignet sind, aber etwas anwendungsabhängig.

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

Wenn Sie auf der Suche nach etwas "Bildungsorientierterem" sind, habe ich vor einiger Zeit einen Spielzeugtrainer geschrieben:

http://pastebin.com/aJG3Ukmn

qi5d02lx
quelle
Vielen Dank. Ich brauche es für die Gestenerkennung. Ich bin festgefahren, was mein Alphabet (Symbole in nltk) in meiner Anwendung sein könnte ..
nkint
@nkint Überprüfen Sie dies aus: ri.cmu.edu/pub_files/pub3/yang_jie_1994_1/yang_jie_1994_1.pdf
qi5d02lx
ok, die Daten sind die Beschriftungen. Wenn ich also nur 8 Beschriftungen verwende, um die Koordinaten einer Geste zu gruppieren. Das Alphabet ist [1,2,3,4,5,6,7]
nkint
aber verstehe immer noch nicht den Unterschied zwischen Zustand und Symbol im HiddenMarkovModelTrainer-Konstruktor
nkint
1
Okay, wie wäre es damit: creativedistraction.com/demos/… es ist eine Schritt-für-Schritt-Demo mit Code, wie Sie mit dem Kinect Ihren eigenen Gestenerkenner erstellen. Code ist für Octave nicht Python, aber es scheint, als ob Sie mehr an den Ideen / Implementierungen als an den Einzelheiten der Software festhalten. Natürlich ist ein Kinect erforderlich ... Sie können dies auch überprüfen: code.google.com/p/ehci
qi5d02lx
0

Es folgt eine Pyhton-Implementierung des Baum-Welch-Algorithmus:

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

Hamza Rawal
quelle