У меня есть последовательность из 500 наблюдений за движениями птицы. Я хочу предсказать, каким будет 501-е движение птицы. Я искал в Интернете, и я думаю, что это можно сделать с помощью HMM, однако у меня нет никакого опыта в этом вопросе. Может ли кто-нибудь объяснить шаги алгоритма, используемого для решения этой проблемы?
Скрытая модель Маркова, предсказывающая следующее наблюдение
comment
Я бы сказал, что у некоторых уже есть... подробно... en.wikipedia.org/wiki/Hidden_Markov_model
- person Gleno   schedule 02.10.2011
Ответы (1)
x1-x2-x3-x4-x5......x500-x501
| | | | | |
y1 y2 y3 y4 y5 y500
x - actual state
y - observations
P(y_i|x_i) - how you think the observation depends on the actual state
P(x_i|x_(i-1)) - how you think the actual state evolves
for i = 1,2,3...,501:
write down best-guess of x_i based on y_i* and x_(i-1)**
you have your solution, since you only care about the last state
* missing in step 1
** missing in step 501
Вышеизложенное известно как алгоритм прямого-обратного действия ( http://en.wikipedia.org/wiki/Forward-backward_algorithm ) и является частным случаем алгоритма суммы-произведения (на деревьях байесовских сетей и деревьях марковских сетей) на этом конкретном типе дерева (простая цепь с висящими узлами). Вы можете игнорировать шаг «назад», потому что он вам не нужен, так как вас интересует только последнее состояние.
Если вероятности перехода в вашем HMM неизвестны, вы должны:
- выполнить алгоритм обучения, такой как EM (известный как Baum-Welch при выполнении на HMM)
- сделать наивное предположение, основанное на знании предметной области (например, если вашими скрытыми состояниями является ДНК, вы можете подсчитать частоты событий перехода, учитывая предыдущее состояние, вручную пометив переходы в данных ДНК и вычислив частоты)
person
ninjagecko
schedule
02.10.2011
извините, я не мог понять ваш ответ. У меня есть только последовательность из 500 чисел от 0 до 8. (например, 5, 4, 6, 6, ..., 0, 2) И я хочу получить максимально возможное 501-е число.
- person user975733; 02.10.2011
сначала подумайте над этими вопросами: 1)
"What is the range of my real/hidden states? (It may not be 0-8, it could be for example 0-100 or even non-numeric like {'high','low'})"
2) "If I observe a 5, what does that mean about what the real/hidden state?"
3) "If the real state at time=t is [something], what do I think the state at time=t+1 will be? (For example, if x500='high', how probable is it that the bird will switch to flying 'low'?)"
- person ninjagecko; 03.10.2011