Скрытый параметр модели Маркова оценивает от эмиссии и состояний
[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 является количеством возможной эмиссии. Если эмиссия не происходит в seq
, можно установить PSEUDOE(i,k)
быть положительным числом, представляющим оценку ожидаемого количества такой эмиссии в последовательности seq
.
hmmestimate(...,'Pseudotransitions',PSEUDOTR)
задает значения перехода псевдоколичества. Можно использовать этот аргумент, чтобы избежать нулевых оценок вероятности для переходов с очень низкой вероятностью, которая не может быть представлена в демонстрационной последовательности. PSEUDOTR
должна быть матрица размера m-by-m, где m является количеством состояний в скрытой модели Маркова. Если переход не происходит в states
, можно установить PSEUDOTR(i,j)
быть положительным числом, представляющим оценку ожидаемого количества таких переходов в последовательности states
.
Если вероятность определенного перехода или эмиссии является очень низкой, переход никогда не может происходить в последовательности states
, или эмиссия никогда не может происходить в последовательности seq
. Или в случае, алгоритм возвращает вероятность 0 для данного перехода или в эмиссии в TRANS
или EMIS
. Можно компенсировать отсутствие перехода с 'Pseudotransitions'
и 'Pseudoemissions'
аргументы. Самый простой способ сделать это должно установить соответствующую запись PSEUDOE
или PSEUDOTR
к 1
. Например, если переход не происходит в states
, установите PSEUDOTR(i,j) = 1
. Это обеспечивает TRANS(i,j)
быть положительным. Если у вас есть оценка для ожидаемого количества переходов в последовательности той же длины как states
, и фактическое количество переходов это происходит в 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.