Скрытые состояния модели Маркова и эмиссия
[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'})