Скрытые состояния модели Маркова и эмиссия
[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
начинается с модели в состоянии 1 на шаге 0 до первой эмиссии. Модель затем делает переход, чтобы утвердить i1, с вероятностью T1i1, и генерирует эмиссию ak1 с вероятностью Ei1k11. hmmgenerate
возвращает i1 как первую запись states
и ak1 как первая запись seq
.
hmmgenerate(...,'Symbols',SYMBOLS)
задает символы, которые испускаются. SYMBOLS
может быть задан как числовой массив, массив строк или массив ячеек из символьных векторов. Символы по умолчанию являются целыми числами 1
через N
, где N
является количеством возможной эмиссии.
hmmgenerate(...,'Statenames',STATENAMES)
задает имена состояний. STATENAMES
может быть задан как числовой массив, массив строк или массив ячеек из символьных векторов. Именами состояния по умолчанию является 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'})