hmmtrain

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

Синтаксис

[ESTTR,ESTEMIT] = hmmtrain(seq,TRGUESS,EMITGUESS)
hmmtrain(...,'Algorithm',algorithm)
hmmtrain(...,'Symbols',SYMBOLS)
hmmtrain(...,'Tolerance',tol)
hmmtrain(...,'Maxiterations',maxiter)
hmmtrain(...,'Verbose',true)
hmmtrain(...,'Pseudoemissions',PSEUDOE)
hmmtrain(...,'Pseudotransitions',PSEUDOTR)

Описание

[ESTTR,ESTEMIT] = hmmtrain(seq,TRGUESS,EMITGUESS) оценивает вероятности перехода и эмиссии для скрытой модели Маркова использование Baum-валлийского алгоритма. seq может быть вектор-строка, содержащий одну последовательность, матрицу с одной строкой на последовательность или массив ячеек с каждой ячейкой, содержащей последовательность. TRGUESS и EMITGUESS первоначальные оценки матриц вероятности перехода и эмиссии. TRGUESS(i,j) предполагаемая вероятность перехода от i состояния утверждать j. EMITGUESS(i,k) предполагаемая вероятность тот символ k испускается от i состояния.

hmmtrain(...,'Algorithm',algorithm) задает алгоритм настройки. algorithm может быть любой 'BaumWelch' или 'Viterbi'. Алгоритмом по умолчанию является 'BaumWelch'.

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

hmmtrain(...,'Tolerance',tol) задает допуск, используемый для тестирования сходимости итеративного процесса оценки. Допуском по умолчанию является 1e-4.

hmmtrain(...,'Maxiterations',maxiter) задает максимальное количество итераций для процесса оценки. Максимумом по умолчанию является 100.

hmmtrain(...,'Verbose',true) возвращает состояние алгоритма в каждой итерации.

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

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

Если вы знаете, что состояния, соответствующие последовательностям, используют hmmestimate оценить параметры модели.

Допуск

Входной параметр 'tolerance' средства управления, сколько шагов hmmtrain алгоритм выполняется, прежде чем функция дает ответ. Алгоритм останавливается, когда все следующие три количества меньше значения, которое вы задаете для tolerance:

  • Логарифмическая вероятность, что входная последовательность seq сгенерирован в настоящее время ориентировочными стоимостями матриц перехода и эмиссии

  • Изменение в норме матрицы перехода, нормированной на размер матрицы

  • Изменение в норме матрицы эмиссии, нормированной на размер матрицы

Значение по умолчанию 'tolerance' 1e-6. Увеличение допуска сокращает число шагов hmmtrain алгоритм выполняется, прежде чем он завершит работу.

maxiterations

Максимальное количество итераций, 'maxiterations', управляет максимальным количеством шагов, которые выполняет алгоритм, прежде чем это завершит работу. Если алгоритм выполняет maxiter итерации прежде, чем достигнуть заданного допуска, алгоритм останавливается, и функция возвращает предупреждение. Если это происходит, можно увеличить значение 'maxiterations' заставить алгоритм достигнуть желаемого допуска перед завершением.

Примеры

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];

seq1 = hmmgenerate(100,trans,emis);
seq2 = hmmgenerate(200,trans,emis);
seqs = {seq1,seq2};
[estTR,estE] = hmmtrain(seqs,trans,emis);

Ссылки

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

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

| | |

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