Modelos ocultos de Markov com o algoritmo Baum-Welch usando python


11

Estou procurando alguma implementação python (em python puro ou empacotando materiais existentes) do HMM e Baum-Welch.

Algumas ideias?

Acabei de pesquisar no google e encontrei material muito ruim em relação a outras técnicas de aprendizado de máquina. Por quê?

Respostas:


11

O scikit-learn possui uma implementação do HMM . Até recentemente, era considerado não mantido e seu uso era desencorajado. No entanto, ele melhorou na versão de desenvolvimento. Não posso garantir sua qualidade, pois não conheço nada dos HMMs.

Disclaimer: Eu sou um desenvolvedor de scikit-learn.

Edit : movemos os HMMs para fora do scikit-learn, para https://github.com/hmmlearn/hmmlearn


sim eu decidir não usá-lo por causa de unmantainement ..
nkint

Eu acho que está melhorando e que em breve poderemos nos comprometer a mantê-lo.
Gael Varoquaux 11/03/12

a implementação do sklearn usa Baum-Welch?
Vishal

Sim. Consulte a _BaseHMMdocumentação para obter detalhes da implementação.
Sergei Lebedev 01/03

3

Você já viu o NLTK?

http://www.nltk.org/

Tem algumas classes que são adequadas para esse tipo de coisa, mas um pouco dependentes do aplicativo.

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

Se você está procurando algo mais "orientado para a educação", escrevi um treinador de brinquedos há um tempo:

http://pastebin.com/aJG3Ukmn


obrigado. Eu preciso disso para reconhecimento de gestos. eu estou encravada no que poderia ser o meu alfabeto (símbolos em nltk) em minha aplicação ..
nkint


ok, os dados são os rótulos, por isso, se eu usar apenas 8 rótulos para agrupar as coordenadas de um gesto .. o alfabeto é [1,2,3,4,5,6,7]
nkint

mas ainda não entendo a diferença entre estado e símbolo no construtor
HiddenMarkovModelTrainer

1
tudo bem, que tal isso: creativedistraction.com/demos/… é uma demonstração passo a passo com o código de como criar seu próprio reconhecedor de gestos com o kinect. O código é para Octave, não para python, mas parece que você está preso às idéias / implementação mais do que às particularidades do software. é claro que requer um kinect ... você também pode verificar isso: code.google.com/p/ehci
qi5d02lx




0

A seguir, é apresentada uma implementação em Pyhton do algoritmo Baum-Welch:

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.