⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hmm_evaluation.m

📁 数据挖掘经典算法matlab实现
💻 M
字号:
function P = HMM_evaluation(a, b, V)

% Find the probability of a finite state in a Markov chain 
%
% Inputs:
%	a					- Transition probability matrix
%	b					- Output generator matrix
%	V					- Observed output sequence
%
% Output:
%	P					- Probability of the sequence

lenV = length(V);

%First, build a matrix with all the possible sequences of length(len(V))
Sequence = build_sequence(lenV, size(a,1));

p			= zeros(1,size(Sequence,1));
for i = 1:size(Sequence,1),
   for j = 1:size(Sequence,2),
      if (j == 1),
         p(i) = b(Sequence(i,1),V(1));
      else
         p(i) = p(i)*a(Sequence(i,j),Sequence(i,j-1))*b(Sequence(i,j-1),V(j));
      end
   end
end

P = sum(p);



function S = build_sequence(depth, Nstates)
%Build all possible sequences recursively. 
%depth is the remaining depth and Nstates are the number of possible sattes in the chain
S = [];

if (depth > 1),
   S1 = build_sequence(depth-1, Nstates);
   for i = 1:Nstates,
      S = [S; i*ones(size(S1,1),1) S1];
   end
else
   S = [1:Nstates]';
end

         
         

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -