Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

hmmtrain

Estimación de parámetros del modelo de Markov oculto de emisiones

Sintaxis

[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)

Descripción

[ESTTR,ESTEMIT] = hmmtrain(seq,TRGUESS,EMITGUESS) estima las probabilidades de transición y emisión para un modelo de Markov oculto utilizando el algoritmo Baum-Welch. puede ser un vector de fila que contenga una sola secuencia, una matriz con una fila por secuencia o una matriz de celdas con cada celda que contenga una secuencia. y son estimaciones iniciales de las matrices de probabilidad de transición y emisión. es la probabilidad estimada de transición de un estado a un estado. es la probabilidad estimada de que el símbolo se emite desde el estado.seqTRGUESSEMITGUESSTRGUESS(i,j)ijEMITGUESS(i,k)ki

hmmtrain(...,'Algorithm',algorithm) especifica el algoritmo de entrenamiento. algorithm puede ser o bien.'BaumWelch''Viterbi' El algoritmo predeterminado es.'BaumWelch'

hmmtrain(...,'Symbols',SYMBOLS) especifica los símbolos que se emiten. puede ser una matriz numérica, una matriz de cadenas o una matriz de celdas de los nombres de los símbolos.SYMBOLS Los símbolos predeterminados son enteros a través de, donde es el número de posibles emisiones.1NN

hmmtrain(...,'Tolerance',tol) Especifica la tolerancia utilizada para probar la convergencia del proceso de estimación iterativo. La tolerancia predeterminada es.1e-4

hmmtrain(...,'Maxiterations',maxiter) especifica el número máximo de iteraciones para el proceso de estimación. El máximo predeterminado es.100

hmmtrain(...,'Verbose',true) Devuelve el estado del algoritmo en cada iteración.

hmmtrain(...,'Pseudoemissions',PSEUDOE) especifica los valores de emisión de pseudoconteo para el algoritmo de entrenamiento de Viterbi. Utilice este argumento para evitar estimaciones de probabilidad cero para las emisiones con una probabilidad muy baja que podrían no estar representadas en la secuencia de muestra. debe ser una matriz de tamaño por-, donde es el número de Estados en el modelo oculto de Markov y es el número de posibles emisiones.PSEUDOEmnmn Si no se produce la emisión →, puede establecer un número positivo que represente una estimación del número esperado de dichas emisiones en la secuencia.ikseqPSEUDOE(i,k)seq

hmmtrain(...,'Pseudotransitions',PSEUDOTR) especifica los valores de transición de pseudorecuento para el algoritmo de entrenamiento de Viterbi. Utilice este argumento para evitar las estimaciones de probabilidad cero para las transiciones con probabilidad muy baja que podrían no estar representadas en la secuencia de ejemplo. debe ser una matriz de tamaño por-, donde es el número de Estados en el modelo de Markov oculto.PSEUDOTRmmm Si no se produce la transición →, puede establecer un número positivo que represente una estimación del número esperado de dichas transiciones en la secuencia.ijEstadosPSEUDOTR(i,j)Estados

Si conoce los Estados correspondientes a las secuencias, utilice para estimar los parámetros del modelo.hmmestimate

Tolerancia

El argumento de entrada ' controla cuántos pasos ejecuta el algoritmo antes de que la función devuelva una respuesta.tolerance'hmmtrain El algoritmo finaliza cuando todas las tres cantidades siguientes son menores que el valor especificado para:tolerance

  • La probabilidad de registro de que la secuencia de entrada se genera por los valores estimados actualmente de las matrices de transición y emisiónseq

  • El cambio en la norma de la matriz de transición, normalizado por el tamaño de la matriz

  • El cambio en la norma de la matriz de emisión, normalizado por el tamaño de la matriz

El valor predeterminado es.'tolerance'1e-6 El aumento de la tolerancia disminuye el número de pasos que el algoritmo ejecuta antes de que finalice.hmmtrain

maxiterations

El número máximo de iteraciones, controla el número máximo de pasos que el algoritmo ejecuta antes de que finalice.'maxiterations' Si el algoritmo ejecuta iteraciones antes de alcanzar la tolerancia especificada, el algoritmo finaliza y la función devuelve una advertencia.maxiter Si esto ocurre, puede aumentar el valor de para que el algoritmo alcance la tolerancia deseada antes de terminar.'maxiterations'

Ejemplos

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

Referencias

[1] Durbin, R., S. Eddy, A. Krogh, and G. Mitchison. Biological Sequence Analysis. Cambridge, UK: Cambridge University Press, 1998.

Introducido antes de R2006a