hmmgenerate
은닉 마르코프 모델의 상태 및 출력
구문
[seq,states] = hmmgenerate(len,TRANS,EMIS)
hmmgenerate(...,'Symbols',SYMBOLS)
hmmgenerate(...,'Statenames',STATENAMES)
설명
[seq,states] = hmmgenerate(len,TRANS,EMIS)는 알려진 마르코프 모델(전이 확률 행렬 TRANS와 출력 확률 행렬 EMIS로 지정됨)을 받고, 이를 사용하여 다음을 생성합니다.
출력 기호로 구성된 랜덤 시퀀스
seq상태로 구성된 랜덤 시퀀스
states
seq와 states의 길이는 모두 len입니다. TRANS(i,j)는 상태 i에서 상태 j로 전이할 확률입니다. EMIS(k,l)은 기호 l이 상태 k에서 출력될 확률입니다.
참고
함수 hmmgenerate는 첫 번째 출력 전에 스텝 0에서 상태 1에 있는 모델로 시작합니다. 그러면 모델은 확률 T1i1로 상태 i1로 전이되고 확률 Ei1k11로 출력 ak1을 생성합니다 . hmmgenerate는 states의 첫 번째요소로 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 이전에 개발됨