Ukryte modele Markowa z algorytmem Baum-Welcha za pomocą pytona

12

Szukam implementacji Pythona (w czystym pythonie lub w opakowaniach istniejących) HMM i Baum-Welch.

Jakieś pomysły?

Właśnie przeszukałem google i znalazłem naprawdę kiepski materiał w odniesieniu do innych technik uczenia maszynowego. Czemu?

nkint
źródło

Odpowiedzi:

11

Scikit-learn ma wdrożenie HMM . Do niedawna uważano go za nieobsługiwany i odradzano jego stosowanie. Jednak poprawił się w wersji rozwojowej. Nie mogę jednak ręczyć za jego jakość, ponieważ nic nie wiem o HMM.

Oświadczenie: Jestem programistą scikit-learn.

Edycja : przenieśliśmy HMM poza scikit-learn na https://github.com/hmmlearn/hmmlearn

Gael Varoquaux
źródło
tak, decyduję się nie używać go z powodu braku utrzymania ..
nkint
Myślę, że się poprawia i że wkrótce będziemy mogli zobowiązać się do jego utrzymania.
Gael Varoquaux,
czy implementacja sklearn korzysta z Baum-Welch?
Vishal
Tak. Szczegółowe informacje _BaseHMMdotyczące implementacji znajdują się w dokumentacji.
Siergiej Lebiediew
3

Czy widziałeś NLTK?

http://www.nltk.org/

Ma kilka klas, które są odpowiednie do tego rodzaju rzeczy, ale w pewnym stopniu zależą od aplikacji.

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

Jeśli szukasz czegoś bardziej „zorientowanego na edukację”, jakiś czas temu napisałem trener zabawek:

http://pastebin.com/aJG3Ukmn

qi5d02lx
źródło
dzięki. Potrzebuję go do rozpoznawania gestów. utknąłem na tym, co może być moim alfabetem (symbole w nltk) w mojej aplikacji ..
nkint
ok, dane są etykietami, więc jeśli używam tylko 8 etykiet do grupowania współrzędnych gestu. alfabet to [1,2,3,4,5,6,7]
nkint
ale nadal nie rozumiem różnicy między stanem a symbolem w konstruktorze
HiddenMarkovModelTrainer
1
w porządku, co powiesz na to: creativedistraction.com/demos/... to demo krok po kroku z kodem budowania własnego rozpoznawania gestów za pomocą kinect. Kod jest przeznaczony dla Octave, a nie Pythona, ale wygląda na to, że utknąłeś w pomysłach / implementacji bardziej niż w szczegółach oprogramowania. oczywiście wymaga kinect ... możesz to również sprawdzić: code.google.com/p/ehci
qi5d02lx
0

Poniżej przedstawiono implementację algorytmu Baum-Welcha w Pyhton:

https://github.com/hamzarawal/HMM-Baum-Welch-Al Algorytm

Hamza Rawal
źródło