Скрытые марковские модели с алгоритмом Баума-Уэлча с использованием питона

11

Я ищу некоторую реализацию Python (в чистом Python или обертывание существующих материалов) HMM и Baum-Welch.

Некоторые идеи?

Я только что искал в Google, и я нашел очень плохой материал в отношении других методов машинного обучения. Зачем?

nkint
источник

Ответы:

11

Scikit учиться имеет внедрение СММ . До недавнего времени он считался необслуживаемым, и его использование не поощрялось. Однако это улучшилось в версии разработки. Я не могу ручаться за его качество, так как я ничего не знаю о HMM.

Отказ от ответственности: я разработчик scikit-Learn.

Изменить : мы переместили HMM за пределы scikit-learn, на https://github.com/hmmlearn/hmmlearn

Gael Varoquaux
источник
да, я решил не использовать его из-за неуправляемости ..
nkint
Я думаю, что это улучшается, и что мы скоро сможем поддерживать его.
Gael Varoquaux
В реализации sklearn используется Baum-Welch?
Вишал
Да. Смотрите _BaseHMMдокументацию для деталей реализации.
Сергей Лебедев
3

Вы видели НЛТК?

http://www.nltk.org/

У него есть несколько классов, подходящих для такого рода вещей, но в некоторой степени зависящих от приложения.

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

Если вы ищете что-то более «ориентированное на образование», я недавно написал игрушечный тренажер:

http://pastebin.com/aJG3Ukmn

qi5d02lx
источник
Спасибо. Мне это нужно для распознавания жестов. я застрял на том, что может быть моим алфавитом (символы в nltk) в моем приложении ..
nkint
@nkint Проверьте это: ri.cmu.edu/pub_files/pub3/yang_jie_1994_1/yang_jie_1994_1.pdf
qi5d02lx
Хорошо, данные являются метками, поэтому, если я использую только 8 меток для кластеризации координат жеста. Алфавит будет [1,2,3,4,5,6,7]
nkint
но до сих пор не понимаю разницу между состоянием и символом в конструкторе
HiddenMarkovModelTrainer
1
хорошо, как насчет этого: creativedistraction.com/demos/… это пошаговая демонстрация с кодом того, как создать свой собственный распознаватель жестов с помощью Kinect. Код для Octave не Python, но кажется, что вы застряли на идеях / реализации больше, чем на деталях программного обеспечения. конечно, это требует kinect ... вы также можете проверить это: code.google.com/p/ehci
qi5d02lx
2

Вы можете найти реализации Python на:

Кстати: см. Пример реализации Baum-Welch по переполнению стека - ответ оказывается в Python.

Петр Мигдаль
источник
0

Ниже приведена реализация алгоритма Баума-Уэлча в Pyhton:

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

Хамза Равал
источник