hmmdecode

Скрытые вероятности апостериорных состояний модели Маркова

Синтаксис

PSTATES = hmmdecode(seq,TRANS,EMIS)
[PSTATES,logpseq] = hmmdecode(...)
[PSTATES,logpseq,FORWARD,BACKWARD,S] = hmmdecode(...)
hmmdecode(...,'Symbols',SYMBOLS)

Описание

PSTATES = hmmdecode(seq,TRANS,EMIS) вычисляет апостериорные вероятности состояния, PSTATES, последовательности seq, от скрытой модели Маркова. Вероятности апостериорного состояния являются условными вероятностями нахождения в состоянии k на шаге i, учитывая наблюдаемую последовательность символов sym. Вы задаете модель матрицей вероятностей перехода, TRANS, и матрица вероятностей выбросов, EMIS. TRANS(i,j) - вероятность перехода от состояния i в состояние j. EMIS(k,seq) - вероятность того, что символ seq излучается из состояния k.

PSTATES - массив с той же длиной, что и seq и по одной строке для каждого состояния в модели. (i, j) -й элемент PSTATES приводит вероятность того, что модель находится в состоянии i на j-м шаге, учитывая последовательность seq.

Примечание

Функция hmmdecode начинается с модели в состоянии 1 на шаге 0, перед первым выбросом. hmmdecode вычисляет вероятности в PSTATES исходя из того, что модель начинается в состоянии 1.

[PSTATES,logpseq] = hmmdecode(...) возвращает logpseq, логарифм вероятности seq последовательности, заданная матрица переходов TRANS и матрица выбросов EMIS.

[PSTATES,logpseq,FORWARD,BACKWARD,S] = hmmdecode(...) возвращает прямую и обратную вероятности последовательности, масштабируемой S.

hmmdecode(...,'Symbols',SYMBOLS) задает символы, которые испускаются. SYMBOLS может быть числовым массивом, строковыми массивами или массивом ячеек с именами символов. Символы по умолчанию являются целыми числами 1 через N, где N количество возможных выбросов.

Примеры

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);
pStates = hmmdecode(seq,trans,emis);
[seq,states] = hmmgenerate(100,trans,emis,...
   'Symbols',{'one','two','three','four','five','six'})
pStates = hmmdecode(seq,trans,emis,...
   'Symbols',{'one','two','three','four','five','six'});

Ссылки

[1] Дурбин, Р., С. Эдди, А. Крог и Г. Митчисон. Анализ биологической последовательности. Кембридж, Великобритания: Cambridge University Press, 1998.

Представлено до R2006a