Main Content

hmmgenerate

은닉 마르코프 모델의 상태 및 출력

구문

[seq,states] = hmmgenerate(len,TRANS,EMIS)
hmmgenerate(...,'Symbols',SYMBOLS)
hmmgenerate(...,'Statenames',STATENAMES)

설명

[seq,states] = hmmgenerate(len,TRANS,EMIS)는 알려진 마르코프 모델(전이 확률 행렬 TRANS와 출력 확률 행렬 EMIS로 지정됨)을 받고, 이를 사용하여 다음을 생성합니다.

  • 출력 기호로 구성된 랜덤 시퀀스 seq

  • 상태로 구성된 랜덤 시퀀스 states

seqstates의 길이는 모두 len입니다. TRANS(i,j)는 상태 i에서 상태 j로 전이할 확률입니다. EMIS(k,l)은 기호 l이 상태 k에서 출력될 확률입니다.

참고

함수 hmmgenerate는 첫 번째 출력 전에 스텝 0에서 상태 1에 있는 모델로 시작합니다. 그러면 모델은 확률 T1i1로 상태 i1로 전이되고 확률 Ei1k11로 출력 ak1을 생성합니다 . hmmgeneratestates의 첫 번째요소로 i1을 반환하고 seq의 첫 번째 요소로 ak1을 반환합니다.

hmmgenerate(...,'Symbols',SYMBOLS) 는 출력되는 기호를 지정합니다. SYMBOLS는 숫자형 배열 또는 string형 배열로 지정하거나, 문자형 벡터로 구성된 셀형 배열로 지정할 수 있습니다. 디폴트 기호는 정수 1부터 N까지입니다. 여기서 N은 가능한 출력 개수입니다.

hmmgenerate(...,'Statenames',STATENAMES)는 상태의 이름을 지정합니다. STATENAMES는 숫자형 배열 또는 string형 배열로 지정하거나, 문자형 벡터로 구성된 셀형 배열로 지정할 수 있습니다. 디폴트 상태 이름은 1에서 M까지입니다. 여기서 M은 상태의 개수입니다.

모델은 항상 상태 1에서 시작하고 TRANS의 첫 번째 행에 있는 전이 확률을 가집니다(다음 예제에서 출력값 states의 첫 번째 요소는 1에 대해 확률 0.95를 가지고, 2에 대해 확률 0.05를 가집니다).

예제

 trans = [0.95,0.05;
          0.10,0.90];
 emis = [1/6 1/6 1/6 1/6 1/6 1/6;
    1/10 1/10 1/10 1/10 1/10 1/2];

[seq,states] = hmmgenerate(100,trans,emis)
[seq,states] = hmmgenerate(100,trans,emis,...
    'Symbols',{'one','two','three','four','five','six'},...
    'Statenames',{'fair';'loaded'})

버전 내역

R2006a 이전에 개발됨