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