gpt4 book ai didi

matlab - 在 Matlab 中对序列进行分类的隐马尔可夫模型

转载 作者:太空宇宙 更新时间:2023-11-03 20:25:22 25 4
gpt4 key购买 nike

我是机器学习的新手,我读过 Matlab 的隐马尔可夫模型统计工具箱,我想使用它对给定的信号序列进行分类。我在矩阵 P 中有 3D 坐标,即 [501x3],我想以此为基础训练模型。 Evert 完整的轨迹结束于一组特定的点,即在 (0,0,0) 处它实现了它的目标。

根据我的场景,什么是合适的伪代码/方法。

我的伪代码:

  1. 501x3 矩阵 P 是发射矩阵,其中每个坐标都是状态
  2. 随机 NxN 转换矩阵值(但我对此感到困惑)
  3. 使用函数 hmmgenerate 生成测试序列
  4. 使用 hmmtrain(sequence,old_transition,old_emission) 进行训练
  5. 使用未知序列将最终转换和发射矩阵提供给 hmmdecode 以给出概率(也令人困惑)

编辑 1:简而言之,我想用 HMM 对每个 [501x3] 的 10 类轨迹进行分类。我想为每个轨迹采样 50 行,即 [50x3] 以构建模型。但是,对于此类随机序列,我有 HMM 的 murphyk 的 工具箱。

最佳答案

以下是使用隐马尔可夫模型对 d 维序列进行分类的方法的一般概述:

1) 培训:

对于每个类 k:

  • 准备一个 HMM 模型。这包括初始化以下内容:
    • 一个转换矩阵:Q-by-Q 矩阵,其中 Q 是状态数
    • 先验概率向量:Q-by-1 向量
    • 排放模型:在您的情况下,观测值是 3D 点,因此您可以使用 mutlivariate normal distribution (具有指定的均值向量和协方差矩阵)或 Guassian mixture model (一堆使用混合系数组合的 MVN 分布)
  • 正确初始化上述参数后,您训练 HMM 模型,将属于此类的序列集提供给它(EM 算法)。

2) 预测

接下来对新序列X进行分类:

  • 使用每个模型 log P(X|model_k)
  • 计算序列的对数似然
  • 然后您选择概率最高的类别。这是类(class)预测。

正如我在评论中提到的,Statistics Toolbox只实现离散观察 HMM 模型,所以你将不得不找到另一个库或自己实现代码。 Kevin Murphy 的工具箱(HMM toolboxBNTPMTK3)是该领域的热门选择。

以下是我过去使用 Kevin Murphy 的工具箱发布的一些答案:

以上答案与您在这里尝试做的有些不同,但这是一个很好的起点。

关于matlab - 在 Matlab 中对序列进行分类的隐马尔可夫模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23654578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com