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?

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


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


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


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.