用Matlab实现HMM

时间:2013-04-12 12:45:02

标签: matlab machine-learning hidden-markov-models

我不熟悉HMM,但我想在Matlab中实现。我想使用此工具箱HMM Toolbox。我不确定我是否理解了实施它的方式。如果有不同类别的状态训练序列很多。所以这就是我的方式:

  1. 我计算每个序列的过渡和发射矩阵[TRANS,EMIS] = hmmestimate(seq,states)代表HMM
  2. 我用类所属的信息保存这些矩阵
  3. 我为每个训练序列执行此操作
  4. 如果我得到分类的观察序列,我使用hmmviterbi(seq,TRANS,EMIS)函数来计算我保存的每个HMM的“可能性”。
  5. 最“可能性”(最高百分比)是我寻找的HMM - >我知道班级
  6. 这是我实施HMM的方式吗?

    我希望你能给我一些提示

    顺便说一下。我知道我的英语不太好,但我希望这是可以理解的。

1 个答案:

答案 0 :(得分:0)

虽然我不知道matlab并且无法帮助您,但您的步骤听起来不错。以下是我将实施的步骤:

  • 您首先使用训练集创建一个模型来表示该集。
  • 对您希望系统识别的每种情况重复此操作(例如,每种情况下的模型)
  • 当您有输入集时,将其与每个模型进行比较并保持概率/置信度分数。
  • 比较这些分数并选择最强的结果(假设它超过您设定的任何阈值)
编辑:我从上一个问题中找到了一个很好的例子here。要回答你在评论中提供的链接是否正确,我必须说是,但是之前没有使用matlab进行HMM,所以无法确认这些函数的使用。我建议您查看上面上一个问题链接的答案并完成它,因为它是对上述简单步骤的更深入的解释。