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 начинается с модели в состоянии 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'})
Представлено до R2006a