Biblioteka Python do implementacji ukrytych modeli Markowa

15

Jakiej stabilnej biblioteki Python mogę użyć do implementacji ukrytych modeli Markowa? Potrzebuję go w miarę dobrze udokumentować, ponieważ nigdy tak naprawdę nie korzystałem z tego modelu.

Alternatywnie, czy istnieje bardziej bezpośrednie podejście do przeprowadzania analizy szeregów czasowych na zbiorze danych przy użyciu HMM?

użytkownik140323
źródło
Istnieje alternatywna implementacja sklearn HMM, która wydaje się mieć aktywny wkład, który można znaleźć tutaj: github.com/hmmlearn/hmmlearn Nie korzystałem z niej wcześniej, więc nie mogę powiedzieć, jak dobra jest, ale patrząc na przykłady wydają się dość proste.
Kyle.

Odpowiedzi:

10

Aby uzyskać inne alternatywne podejście, możesz spojrzeć na bibliotekę PyMC. Istnieje dobra treść https://gist.github.com/fonnesbeck/342989 stworzona przez Fonnesbeck, która przeprowadzi cię przez proces tworzenia HMM.

A jeśli naprawdę zainteresujesz się PyMC, istnieje niesamowita książka open source o modelowaniu bayesowskim - https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers . Nie opisuje on wyraźnie Ukrytych Procesów Markowa, ale daje bardzo dobry samouczek na temat samej biblioteki z dużą ilością przykładów.

Snejana Shegheva
źródło
8

Jako aktualizację tego pytania uważam, że przyjęta odpowiedź nie jest najlepsza od 2017 r.

Jak zasugerowano w komentarzach Kyle'a, hmmlearnobecnie jest to biblioteka, w której można używać HMM w Pythonie.

Kilka powodów:

  • Dokumentacja up-to-date , że jest bardzo szczegółowy i zawiera samouczek

  • _BaseHMMKlasa, z której niestandardowych podklasa może dziedziczyć dla realizacji warianty hmm

  • Kompatybilny z ostatnimi wersjami Python 3.5+

  • Intuicyjne użytkowanie

Przeciwnie, ghmm biblioteka nie obsługuje Python 3.x zgodnie z bieżącą dokumentacją. Większość stron z dokumentacją została wygenerowana w 2006 roku. Na pierwszy rzut oka nie wygląda na bibliotekę z wyboru ...

Edycja: Nadal obowiązuje w 2018 r.

Eskapp
źródło
5

biblioteka granatów ma obsługę HMM, a dokumentacja jest naprawdę pomocna. Po wypróbowaniu wielu bibliotek hmm w Pythonie uważam, że jest to całkiem dobre.

Kirubakumaresh
źródło
2

Dla alternatywnego podejścia, być może nawet w celu ułatwienia zrozumienia, prawdopodobnie znajdziesz jakąś użyteczność w przeprowadzaniu analizy za pośrednictwem R. Proste samouczki oparte na szeregach czasowych obfitują w kwanty [wannabe], które powinny zapewnić bootstrap. Część 1 , Część 2 , Część 3 , Część 4 . Zapewniają one źródła do generowania / pobierania danych, a także manipulacji, co pozwala ominąć większość pracy, aby móc zobaczyć rzeczywiste metody HMM w pracy. Istnieją bezpośrednie analogie do implementacji języka Python.

Na marginesie, dla bardziej teoretycznego wprowadzenia, być może Rabiner może dostarczyć pewnych spostrzeżeń

Shawn Mehan
źródło
2

Ghmm biblioteka może być ten, który szukasz.

Jak powiedziano na ich stronie internetowej:

Służy do wdrażania wydajnych struktur danych i algorytmów dla podstawowych i rozszerzonych HMM o dyskretnych i ciągłych emisjach. Jest wyposażony w otoki Pythona, które zapewniają znacznie ładniejszy interfejs i dodatkową funkcjonalność.

Ma również ładną dokumentację i samouczek krok po kroku, jak zmoczyć stopy.

Dawny33
źródło