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