隐马尔可夫模型预测下一个观察

标签 hidden prediction hidden-markov-models markov

我对鸟类的运动进行了 500 次观察。我想预测鸟的第 501 次运动是什么。我在网上搜索,我想这可以通过使用 HMM 来完成,但是我在该主题上没有任何经验。谁能解释用于解决这个问题的算法的步骤?

最佳答案

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(在 HMM 上执行时称为 Baum-Welch)
  • 基于领域知识进行天真猜测(例如,如果您的隐藏状态是 DNA,您可以通过手动标记 DNA 数据上的转换并计算频率来计算给定先前状态的转换事件的频率)
  • 关于隐马尔可夫模型预测下一个观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7628696/

    相关文章:

    php - 我怎样才能从这个例子中打破框架?

    r - 理解 R 中 'predict' 的输出

    r - 马尔可夫链模型

    algorithm - 前向后向算法和维特比算法有什么区别?

    c# - 如何使用控制台隐藏样式运行 C# 控制台应用程序?

    Android - 连接到已知的隐藏 Wi-Fi 网络

    iphone - IOS UITableView contentOffSet 不再隐藏从推送的详细 View 返回时的标题

    python - 使用keras进行预测时出现错误

    r - 使用 R 中的 RMS 包预测生存?

    algorithm - hmm 转移矩阵估计