I have a vector of observations Y. I do not know the state sequence of the latents. I wish to find the the transistion and emission matrices hence I want Baum-Welch.
My Min Working example is here:
T = 1000; % Number of timesteps
Y= 1000+cumsum(randn(T,1));K = 200; %number of states
beta = 0.5; TRGUESS = get_stateTransitionMatrix(K, beta); %flat start model
N = 2;EMITGUESS = (1/N) .* ones(K,N);[TRANS,EMIS] = hmmtrain(Y,TRGUESS,EMITGUESS);function TRGUESS = get_stateTransitionMatrix(K, beta)TRGUESS = beta.*eye(K,K);for i=1:K for j=1:K if (TRGUESS(i,j)==0) TRGUESS(i,j) = (1-beta)/(K-1); end endendend
On running this I get:
Error using hmmdecode (line 100)SEQ must consist of integers between 1 and 1.Error in hmmtrain (line 213) [~,logPseq,fs,bs,scale] = hmmdecode(seq,guessTR,guessE);
I fear I have misunderstood the hmmtrain documentation. Can anyone help?
thanks!
(using 2012A and all the toolboxes)
Best Answer