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

2023-12-14

我对机器学习非常陌生,我读过 Matlab 的隐马尔可夫模型统计工具箱,我想使用它对给定的信号序列进行分类。 Iv 矩阵中的 3D 坐标P即 [501x3],我想基于它来训练模型。 Evert 完整轨迹结束于一组特定的点,即到达目标的 (0,0,0)。

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

我的伪代码:

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

EDIT 1:简而言之,我想对 10 类轨迹进行分类,每类轨迹具有[501x3]与隐马尔可夫模型。我想对 50 行进行采样,即[50x3]为每个轨迹建立模型。然而,我murphyk's用于此类随机序列的 HMM 工具箱。


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

1)培训:

每个班级k:

  • prepare an HMM model. This includes initializing the following:
    • 转移矩阵:Q×Q 矩阵,其中 Q 是状态数
    • 先验概率向量:Q×1 向量
    • 发射模型:在您的情况下,观察结果是 3D 点,因此您可以使用多元正态分布(具有指定的均值向量和协方差矩阵)或高斯混合模型(使用混合系数组合的一堆 MVN 分布)
  • 正确初始化上述参数后,训练 HMM 模型,为其提供属于此类的序列集(EM 算法)。

2)预测

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

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

正如我在评论中提到的,统计工具箱仅实现离散观察 HMM 模型,因此您必须寻找其他库或自己实现代码。凯文·墨菲的工具箱(隐马尔可夫模型工具箱, BNT, PMTK3)是该领域的流行选择。

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

  • 训练隐马尔可夫模型的问题和分类的使用
  • BNT gaussian_CPD 的简单示例/用例

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab 中的隐马尔可夫模型对序列进行分类 的相关文章

  • 在提供给 sklearn 管道中的分类器之前获取所选特征的名称和数量

    我在用sel SelectFromModel ExtraTreesClassifier 10 threshold mean 选择我的数据集中最重要的特征 然后我想将这些选定的特征提供给我的 keras 分类器 但是我的基于 keras 的神
  • 在 C/C++ 中调用 MATLAB API

    我刚刚从某处听说 对于数值计算 MATLAB 确实提供了一些用户友好的 API 如果你在 C C 代码中调用这些 API 你可以显着加快计算速度 但我在MATLAB文档中没有找到这样的信息 例如http www mathworks com
  • 白色像素簇提取

    我正在研究指纹毛孔提取项目 并陷入毛孔 白色像素簇 提取的最后阶段 我有两个输出图像 我们可以从中获取毛孔 但不知道该怎么做 这两个图像的尺寸不同 image1 的尺寸为 240 320 image2 的尺寸为 230 310 这是我的图像
  • 将组合字符串和数字输入的元胞数组写入文本文件

    考虑以下 DateTime 2007 01 01 00 00 2007 02 01 00 00 2007 03 01 00 00 Headers Datetime Data Dat 100 200 300 Data DateTime num
  • 估算缺失数据,同时强制相关系数保持不变

    考虑以下 excel 数据集 m r 2 0 3 3 0 8 4 0 1 3 2 1 5 2 2 3 1 9 2 5 1 2 3 0 2 0 2 6 我的目标是使用以下条件填充缺失值 将上述两列之间的成对相关性表示为 R 大约 0 68 将
  • PyTorch 中的连接张量

    我有一个张量叫做data形状的 128 4 150 150 其中 128 是批量大小 4 是通道数 最后 2 个维度是高度和宽度 我有另一个张量叫做fake形状的 128 1 150 150 我想放弃最后一个list array从第 2 维
  • 在 Matlab 中显示有理数

    我有两个整数 m n 它们一起形成 m n 形式的有理数 现在我只想以这种理性的形式在 Matlab 中显示它们 我可以通过这样做来做到这一点 char sym m n 所以 如果 例如m 1 n 2 Matlab将显示1 2 然而 如果m
  • 在 MATLAB 中定义其他中缀运算符

    有没有办法在 MATLAB 中定义额外的中缀运算符 具体来说 我想定义两个中缀运算符 gt and lt gt 这些符号是理想的 但如果需要 它可以是单个字符 它调用函数implies and iff以同样的方式 calls and and
  • Matlab Solve():未给出所有解决方案

    我试图找到两条曲线的交点 syms x y g x 20 exp x 30 3 5 1 sol x sol y solve x 22 3097 2 y 16 2497 2 25 y g x x y Real true 它只提供一种解决方案
  • Keras 中的损失函数和度量有什么区别? [复制]

    这个问题在这里已经有答案了 我不清楚 Keras 中损失函数和指标之间的区别 该文档对我没有帮助 损失函数用于优化您的模型 这是优化器将最小化的函数 指标用于判断模型的性能 这仅供您查看 与优化过程无关
  • 将 mat3 转换为 mat4 的最简单方法

    我提取了 mat4 的左上角 3x3 旋转矩阵 glm mat4 model glm mat3 rot glm mat3 model 现在我想要单位矩阵 左上角是我的新 mat3 最简单的方法是什么 glm mat4 result resu
  • python 中的基本矩阵转置

    我尝试了 python 中矩阵转置的最基本方法 但是 我没有得到所需的结果 接下来是代码 A 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 print A def TS A B A for i in range len A
  • LSTM 批次与时间步

    我按照 TensorFlow RNN 教程创建了 LSTM 模型 然而 在这个过程中 我对 批次 和 时间步长 之间的差异 如果有的话 感到困惑 并且我希望得到帮助来澄清这个问题 教程代码 见下文 本质上是根据指定数量的步骤创建 批次 wi
  • 作为动画的八度情节点

    我有以下八度脚本 TOTAL POINTS 100 figure 1 for i 1 TOTAL POINTS randX rand 1 randY rand 1 scatter randX randY hold on endfor 当我运
  • 使用 SqlBulkCopy 和 F# 在 SQL 中导出矩阵

    我想将大量数据从 F 传输到 SQL 表 基本上我的 F 代码创建了一个三列矩阵 UserID ProductID and price 和N行 我想将其 复制 粘贴 到数据库中 我尝试了多种选择 但最终 从 F 传输数据非常慢 10000
  • 如何在Matlab中将世界坐标转换为像素索引

    我有 512x512x313 体积的 dicom 图像 并且我有一个以世界坐标表示的点 57 7475 63 4184 83 1515 我如何在 Matlab 中获得该世界坐标的相应像素坐标 我不想戳破你的幻想 但你所要求的是不可能的 我能
  • 如何反转 dropout 来补偿 dropout 的影响并保持期望值不变?

    我正在学习神经网络中的正则化deeplearning ai课程 在dropout正则化中 教授说 如果应用dropout 计算出的激活值将比不应用dropout时 测试时 更小 因此 我们需要扩展激活以使测试阶段更简单 我理解这个事实 但我
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 使用 sapply 的列表和矩阵

    我有一个也许是基本的问题 我在网上搜索过 我在读取文件时遇到问题 尽管如此 我还是按照 Konrad的建议设法读取了我的文件 我很欣赏这一点 How to get R to read in files from multiple subdi
  • R 和 Python 中 LU 分解结果不一致

    我有以下矩阵A in R 1 2 3 4 1 1 1527778 0 4444444 0 375 0 3333333 2 0 5555556 1 4888889 0 600 0 3333333 3 0 6250000 0 4000000 1

随机推荐

  • 将 java.sql.Timestamp 转换为即时时间

    从我的数据库中我检索值如下 20 DEC 17 10 15 53 000000000 AM 我想要上面的java sql Timestamp转换为即时时间 2017 12 20T10 15 53Z 我尝试使用当前时间戳 Timestamp
  • rasa_nlu如何使用lookup_tables进行实体提取?

    我正在尝试使用 rasa nlu 和 rasa core 开发一个聊天机器人 但我没有得到 rasa nlu 如何使用 Lookup tables 进行实体提取的链接 我已经经历过 http blog rasa com improving
  • 使用 WMI 枚举音频输入设备

    我在我的 C 项目中使用 NAudio 我正在寻找一种枚举音频输入设备 麦克风等 的方法 这样我就可以获得它们的全名 不仅仅是我可以从 NAudio 获得的 31 个字符的长名称 我浏览了一些帖子 其中人们使用 WMI 枚举音频输出设备 M
  • 为什么这有效?删除多个 from 无子查询

    我不确定这是否是 SQL Server 2012 中的错误 我有一个简单的查询 DELETE FROM TABLE1 FROM TABLE2 WHERE TABLE1 COL1 1 在SSMS中 这段代码解析没有错误 并从Table1没有错
  • 如何在 WPF 中操作另一个类的窗口对象

    我是 WPF 和 C 新手 我了解很多 VB NET 并且习惯了调用文本框等表单对象的方式 我从另一个表单调用它 现在 我正在使用WPF 我很困惑 因为我有一个主窗口 我想从类将项目添加到主窗口中的列表框 在VB Net中 就是这样 IN
  • 当不在 python 中的正确包中时,不会捕获异常

    编辑 好的 我成功地隔离了该错误以及重现该错误的准确 完整的代码 但它要么是设计使然 要么是 python 中的错误 创建两个兄弟包 admin General 每个都有自己的 init py 当然 包装内admin将以下代码放入文件 te
  • 轻松使用 ASP.NET Identity 作为角色提供者

    我刚刚花了两天时间研究并使用现有数据库实现新的 ASP NET Identity 系统 更多信息请参见这里 将 ASP NET Identity 集成到现有的 DbContext 中 现在 我有一份工作UserStore and RoleS
  • 从 Kafka 消费失败迭代器处于失败状态

    我在使用来自 kafka 的消息时遇到异常 org springframework messaging MessagingException Consuming from Kafka failed nested exception is j
  • 每日查询计数,并具有多周的日期限制

    我正在尝试每天查找 个活跃用户 用户在创建后即处于活动状态多于每周 10 个请求 共 4 个连续几周 IE 2014 年 10 月 31 日 如果用户在以下时间段内每周发出的请求总数超过 10 个 则该用户处于活动状态 2014年10月24
  • 如何同步 JMeter 线程组

    我用 JMeter 填充数据库 有 2 个线程组并行填充 2 个表 填充这两个表后 我需要启动最后一个线程组来填充第三个表 我该怎么做 是否可以同步 JMeter 线程组 您可以为第三个线程组创建一个 while 控制器 并执行如下操作 线
  • 通常大数会变成负数

    自从我开始使用 eclipse 进行 euler 项目以来 我注意到大数字有时会变成看似随机的负数 我想这与传递类型的边界有关 如果您能向我解释这些负数是如何生成的以及其背后的逻辑是什么 我将很高兴 另外 我怎样才能避免它们 最好不要使用
  • 是否可以像 dcast 一样在 tidyr 中的多列上使用扩展? [复制]

    这个问题在这里已经有答案了 我有以下虚拟数据 library dplyr library tidyr library reshape2 dt lt expand grid Year 1990 2014 Product LETTERS 1 8
  • Delphi反编译[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 与使用其他编程语言 编译器构建的其他可执行文件相比 为什么反编译 delphi exe 如此容易 有一些东西可以帮助逆向delphi程序 您可以获得完整的表单数据 包括事件处理程
  • 如何在 IIS 中仅使用特定参数重定向 url

    我有一个如下所示的网址 www mywebsite com page aspx code 1 a 我想通过 IIS 将此 URL 重定向到 www mywebsite com page aspx code 1 b 我想通过 IIS 而不是在
  • INET6_ATON 和 NTOA 函数的 Oracle PL/SQL 版本?

    有没有什么好的代码可以将 IPv6 地址字符串转换为整数 使用一种格式转换 IPv4 似乎相当容易 但是 IPv6 有几种不同的地址显示格式 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
  • 如何使用我自己的图像提供 Cifar10 训练模型并获取标签作为输出?

    我正在尝试使用基于训练的模型Cifar10教程并且想喂食 它与外部图像 32x32 jpg 或 png 我的目标是能够获得标签作为输出 换句话说 我想向网络提供尺寸为 32 x 32 3 个通道 没有标签的单个 jpeg 图像作为输入 并进
  • 计算 100 阶乘中的数字总和

    编辑 更改标题以匹配实际的问题陈述 我正在编写一个函数来计算 100 中的数字之和 但我似乎有两个大问题 实际结果100 仅精确到前几个数字 实际结果为 9332621544394415268169923885626670049071596
  • 尝试获取应用程序的价格,但 Steam API 密钥拒绝

    我正在尝试制作一个机器人来获取 Steam 游戏的价格并将其保存在我的数据库中以供以后执行某些操作 但我在使用 steam api 时遇到了问题 我用这个 https partner steam api com ISteamEconomy
  • Visual C++:在 def 文件中导出修饰函数名称

    我想在 def 文件中导出修饰函数名称 如下所示 LIBRARY Example EXPORTS 0 non rtti object std QAE ABV01 Z myfunc 1 问题是链接器在第一个 符号处删除函数名称并仅放置 0 n
  • Matlab 中的隐马尔可夫模型对序列进行分类

    我对机器学习非常陌生 我读过 Matlab 的隐马尔可夫模型统计工具箱 我想使用它对给定的信号序列进行分类 Iv 矩阵中的 3D 坐标P即 501x3 我想基于它来训练模型 Evert 完整轨迹结束于一组特定的点 即到达目标的 0 0 0