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