hmmestimate

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

Синтаксис

[TRANS,EMIS] = hmmestimate(seq,states)
hmmestimate(...,'Symbols',SYMBOLS)
hmmestimate(...,'Statenames',STATENAMES)
hmmestimate(...,'Pseudoemissions',PSEUDOE)
hmmestimate(...,'Pseudotransitions',PSEUDOTR)

Описание

[TRANS,EMIS] = hmmestimate(seq,states) вычисляет оценку наибольшего правдоподобия перехода, TRANS, и эмиссии, EMIS, вероятностей скрытой модели Маркова для последовательности, seq, с известными состояниями, states.

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

hmmestimate(...,'Statenames',STATENAMES) задает имена состояний. STATENAMES может быть числовым массивом, массивом строк или массивом ячеек имен состояний. Имена состояния по умолчанию 1 через M, где M является количеством состояний.

hmmestimate(...,'Pseudoemissions',PSEUDOE) задает значения эмиссии псевдоколичества в матричном PSEUDOE. Используйте этот аргумент, чтобы избежать нулевых оценок вероятности для эмиссии с очень низкой вероятностью, которая не может быть представлена в демонстрационной последовательности. PSEUDOE должен быть матрицей размера m-by-n, где m является количеством состояний в скрытой модели Маркова, и n является количеством возможной эмиссии. Если ik эмиссия не происходит в seq, можно установить PSEUDOE(i,k) быть положительным числом, представляющим оценку ожидаемого количества такой эмиссии в последовательности seq.

hmmestimate(...,'Pseudotransitions',PSEUDOTR) задает значения перехода псевдоколичества. Можно использовать этот аргумент, чтобы избежать нулевых оценок вероятности для переходов с очень низкой вероятностью, которая не может быть представлена в демонстрационной последовательности. PSEUDOTR должен быть матрицей размера m-by-m, где m является количеством состояний в скрытой модели Маркова. Если ij переход не происходит в states, можно установить PSEUDOTR(i,j) быть положительным числом, представляющим оценку ожидаемого количества таких переходов в последовательности states.

Псевдопереходы и псевдоэмиссия

Если вероятность определенного перехода или эмиссии является очень низкой, переход никогда не может происходить в последовательности states, или эмиссия никогда не может происходить в последовательности seq. Или в случае, алгоритм возвращает вероятность 0 для данного перехода или в эмиссии в TRANS или EMIS. Можно компенсировать отсутствие перехода с аргументами 'Pseudotransitions' и 'Pseudoemissions'. Самый простой способ сделать это должно установить соответствующую запись PSEUDOE или PSEUDOTR к 1. Например, если переход ij не происходит в states, установить PSEUDOTR(i,j) = 1. Это обеспечивает TRANS(i,j), чтобы быть положительным. Если у вас есть оценка для ожидаемого количества переходов ij в последовательности той же длины как states и фактическое количество переходов ij это происходит в seq, существенно меньше, чем, что вы ожидаете, можно установить PSEUDOTR(i,j) на ожидаемый номер. Это увеличивает значение TRANS(i,j). Для переходов, которые действительно происходят в состояниях с частотой, которую вы ожидаете, установите соответствующую запись PSEUDOTR к 0, который не увеличивает соответствующую запись TRANS.

Если вы не знаете последовательность состояний, используйте hmmtrain, чтобы оценить параметры модели.

Примеры

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(1000,trans,emis);
[estimateTR,estimateE] = hmmestimate(seq,states);

Ссылки

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

Смотрите также

| | |

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