HMM隐马尔科夫模型 MATLAB 工具包对各种数据的处理

HMM 工具包下载地址:
工具包使用说明:
 
接下来简单叙述一下如何写data
1、data是一维数据、每一组训练样例序列长度一致。
  1. O = 3;
  2. Q = 2; 
  1. prior0 = normalise(rand(Q,1)); 
  1. transmat0 = mk_stochastic(rand(Q,Q));
  2. obsmat0 = mk_stochastic(rand(Q,O));

%Now we sample nex=20 sequences of length T=10 each from this model, to use as training data.

  1. T=10;
  2. nex=20;
  3. data = dhmm_sample(prior0, transmat0, obsmat0, nex, T);

%Here data is 20x10. Now we make a random guess as to what the parameters are,

  1. prior1 = normalise(rand(Q,1)); 
  1. transmat1 = mk_stochastic(rand(Q,Q));
  2. obsmat1 = mk_stochastic(rand(Q,O));

%and improve our guess using 5 iterations of EM...

  1. [LL, prior2, transmat2, obsmat2] = dhmm_em(data, prior1, transmat1, obsmat1, 'max_iter', 5);
  1.  
  1.  
  1. loglik = dhmm_logprob(data, prior2, transmat2, obsmat2)
  1. %loglik 即用来预测测试数据的相似程度 越大越相似 0为最大
  1. 2data是多维数据、每一组训练样例序列长度一致。
  1. %Let us generate nex=50 vector-valued sequences of length T=50; each vector has size O=2.
  1.  
  1. O = 2; 
  1. T = 50; 
  1. nex = 50; 
  1. data = randn(O,T,nex);
  1. %Now let use fit a mixture of M=2 Gaussians for each of the Q=2 states using K-means.
  1. M = 2;
  2. Q = 2; 
  1. left_right = 0; 
  1.  prior0 = normalise(rand(Q,1)); 
  1. transmat0 = mk_stochastic(rand(Q,Q)); 
  1. [mu0, Sigma0] = mixgauss_init(Q*M, reshape(data, [O T*nex]), cov_type);
  1.  mu0 = reshape(mu0, [O Q M]); 
  1. Sigma0 = reshape(Sigma0, [O O Q M]);
  1. mixmat0 = mk_stochastic(rand(Q,M));
  1.  
  1.  
  1. %Finally, let us improve these parameter estimates using EM.
  1. [LL, prior1, transmat1, mu1, Sigma1, mixmat1] = mhmm_em(data, prior0, transmat0, mu0, Sigma0, mixmat0, 'max_iter', 2);
  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1. 说明这里的数组格式是O*T*nex举个例子这个数组是怎么存的
  1.  data0=[x,y,z];data0 是三维数据,供T*nex行,1~T行为nex=1的数据,T+1~2*T行为nex=2的数                %据,以此类推
  1.  
  1.  
  1.  
  1.  data = randn(O,T,nex);
  1.  index=1;
  1.   for k=1:nex
  1.      for j=1:T
  1.          data(:,j,k)=data0(index,:);
  1.          index=index+1;
  1.     end
  1. end 
  1. %按照上述这样将data0写入data即可
  1. %新的数据查看与这个模型的相似程度,即分类
  1. loglik = mhmm_logprob(data, prior, transmat, mu, Sigma, mixmat);
  1. 3data是多维数据、并且每一组训练样例序列长度一致,即HMM如何处理长度不一致数据。
  1. 这种情况还是很常见的,例如采集一组连续语音信号,但每次采集得到的长度(帧数)不一致。
  1. 假如数据维度为O维,帧数为T(每一组肯能都不一致),NEX为训练数据数目。
  1. 步骤1、按照O*T存成NEXcell类型数据(这里命名为cell_data),例如我的cell_data截图
  1. 我的单个数据为8维,供4组训练数据,每一组训练数据取得序列长度不一致。
  1. 步骤2、训练代码
  1.     O = 8;%维度
  1.     M = 2;
  1.     Q = 3;
  1.     train_num = 4;
  1.     data =[];
  1.  
  1.  
  1.     % initial guess of parameters
  1.    cov_type = 'full';
  1.     % initial guess of parameters
  1.     prior0 = normalise(rand(Q,1));
  1.     transmat0 = mk_stochastic(rand(Q,Q));
  1.     for train_len = 1 : train_num
  1.         data = [data(:, 1 : end), cell_data{train_len}];
  1.     end
  1.     
  1.     [mu0, Sigma0] = mixgauss_init(Q*M, data, cov_type);
  1.     mu0 = reshape(mu0, [O Q M]);
  1.     Sigma0 = reshape(Sigma0, [O O Q M]);
  1.     mixmat0 = mk_stochastic(rand(Q,M));
  1.     [LL, HMM.prior, HMM.transmat, HMM.mu, HMM.Sigma, HMM.mixmat] = ...

HMM TOOL的更多相关文章

  1. hmm CDN检测

    # -*- coding:utf-8 -*- import sys import re from hmmlearn import hmm import numpy as np from sklearn ...

  2. 结巴分词3--基于汉字成词能力的HMM模型识别未登录词

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 算法简介 在 结巴分词2--基于前缀词典及动态规划实现分词 博 ...

  3. [免费了] SailingEase .NET Resources Tool (.NET 多语言资源编辑器)

    这是我2010年左右,写 Winform IDE (http://www.cnblogs.com/sheng_chao/p/4387249.html)项目时延伸出的一个小项目. 最初是以共享软件的形式 ...

  4. 一文搞懂HMM(隐马尔可夫模型)

    什么是熵(Entropy) 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度.熵越大,系统越无序,意味着系统结构和运动的不确定和无规则:反之,,熵越小,系统越有序,意味着具有确定和有 ...

  5. 【中文分词】隐马尔可夫模型HMM

    Nianwen Xue在<Chinese Word Segmentation as Character Tagging>中将中文分词视作为序列标注问题(sequence labeling ...

  6. jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the install tool.

    jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the ...

  7. mtk flash tool,Win7 On VirtualBox

    SP_Flash_Tool_exe_Windows_v5.1624.00.000 Win7 在 VirtualBox, 安裝 mtk flash tool, v5.1628 在燒錄時會 fail. v ...

  8. HMM基本原理及其实现(隐马尔科夫模型)

    HMM(隐马尔科夫模型)基本原理及其实现 HMM基本原理 Markov链:如果一个过程的“将来”仅依赖“现在”而不依赖“过去”,则此过程具有马尔可夫性,或称此过程为马尔可夫过程.马尔可夫链是时间和状态 ...

  9. 使用Microsoft Web Application Stress Tool对web进行压力测试

    Web压力测试是目前比较流行的话题,利用Web压力测试可以有效地测试一些Web服务器的运行状态和响应时间等等,对于Web服务器的承受力测试是个非常好的手法.Web 压力测试通常是利用一些工具,例如微软 ...

随机推荐

  1. JavaSE复习_1 Java的基本格式和运算符

    △.代表在当前目录.classpath能在任何路径下访问类文件. △单行注释可以嵌套,多行注释不能嵌套 △java中的标识符只能有数字,字母,$和_,其他的符号都是错误的,不合法的.其中数字不能是开头 ...

  2. android坐标

    说来说去都不如 画图示意 简单易懂啊!!!真是的! 来吧~~先上张图~~! (一)首先明确一下 android 中的坐标系统 :      屏幕的左上角是坐标系统原点(0,0)      原点向右延伸 ...

  3. Java中的Double类型计算

    一.问题的提出: 如果我们编译运行下面这个程序会看到什么?public class Test{    public static void main(String args[]){        Sy ...

  4. Java 如何得到 JVM 虚拟机的 System Properties

    Java 6 jps 命令得到进程号 jinfo -sysprops <PID> > sysprops.txt 打开 sysprops.txt 就可以查找 Language Time ...

  5. eclipse js卡顿

    http://blog.csdn.net/zhangzikui/article/details/24805935

  6. [转]Android_气泡效果

    最近在看以前在eoe上收藏的一些源代码,准备将这些代码加上一些自己的注释,然后贴出来,方便自己日后查阅,和刚入门的人来学习. 今天先看一个气泡窗口,先看一下效果图和目录结构,然后再上代码 通过第一幅图 ...

  7. Java调用Oracle存储过程过程中几个问题

    1.java.sql.SQLException: 无效的名称模式: STKSETTLEADMIN.TY_MARKETDATA 用户STKSETTLEADMIN下没有TY_MARKETDATA,类型TY ...

  8. dede在线留言

    登录dede后台,在[核心]---[频道维护]---[自定义表单]中根据需要创建需要的表单.   点击[增加新的自定义表单],添加在线留言表单.确定即可. 注意: ①在这里只需要修改[自定义表单名称: ...

  9. html5中的表单

    <form id="aForm" action="reg.php"> <p>请填写表单内容以完成注册!</p> <fi ...

  10. 核心Javascript学习

    1. 引言: 1.1. 网页三要素: l HTML(内容) l CSS(外观) l Javascript(行为) 1.2.  OOP的相关概念 1). 对象,方法和属性 l 对象就是指"事物 ...