¿Alguien puede proporcionar ejemplos sobre cómo usar la biblioteca Shogun para modelos de Markov ocultos?

Shogun toolbox Proporciona dos implementaciones de HMM

  • CHMM – Modelos ocultos de Markov
  • CLinearHMM: cadenas de Markov (incrustadas en HMM “lineales”)

Después de tener shogun toolbox y dependencias instaladas.

Debajo están los códigos en Python

  • Código para CHMM

# En este ejemplo, se entrena un modelo oculto de Markov con 3 estados y 6 transiciones

# en un conjunto de datos de cadena.

desde tools.load import LoadMatrix

de sg import sg

lm = LoadMatrix ()

traindna = lm.load_dna (‘../ data / fm_train_dna.dat’)

cubedna = lm.load_cubes (‘../ data / fm_train_cube.dat’)

parameter_list = [[traindna, cubedna, 3,6,1, list (), list ()],

[traindna, cubedna, 3,6,1, lista (), lista ()]]

def distribution_hmm (fm_train = traindna, fm_cube = cubedna, N = 3, M = 6,

orden = 1, hmms = lista (), enlaces = lista ()):

sg (‘nuevo_hmm’, N, M)

sg (‘set_features’, ‘TRAIN’, fm_cube, ‘CUBE’)

sg (‘convertir’, ‘TREN’, ‘STRING’, ‘CHAR’, ‘STRING’, ‘WORD’, orden)

sg (‘bw’)

hmm = sg (‘get_hmm’)

sg (‘nuevo_hmm’, N, M)

sg (‘set_hmm’, hmm [0], hmm [1], hmm [2], hmm [3])

verosimilitud = sg (‘hmm_likelihood’)

probabilidad de retorno

if __name __ == ‘__ main__’:

imprimir (‘HMM’)

distribution_hmm (* parameter_list [0])

  • Código para CLinearHMM

# Entrena una cadena de Markov no homogénea de orden 3 en un conjunto de datos de cadena de ADN. Debido a

# la estructura de la cadena de Markov es muy similar a un HMM con solo uno

# cadena de estados ocultos conectados: es por eso que llamamos a este HMM lineal.

desde tools.load import LoadMatrix

de sg import sg

lm = LoadMatrix ()

traindna = lm.load_dna (‘../ data / fm_train_dna.dat’)

cubedna = lm.load_cubes (‘../ data / fm_train_cube.dat’)

parameter_list = [[traindna, cubedna, 3,0, ‘n’],

[traindna, cubedna, 3,0, ‘n’]]

def distribution_linearhmm (fm_train = traindna, fm_cube = cubedna,

order = 3, gap = 0, reverse = ‘n’):

# sg (‘new_distribution’, ‘LinearHMM’)

sg (‘add_preproc’, ‘SORTWORDSTRING’)

sg (‘set_features’, ‘TRAIN’, fm_train, ‘DNA’)

sg (‘convertir’, ‘TRAIN’, ‘STRING’, ‘CHAR’, ‘STRING’, ‘WORD’, order, order-1, gap, reverse)

sg (‘attach_preproc’, ‘TRAIN’)

# sg (‘train_distribution’)

# histo = sg (‘get_histogram’)

# num_examples = 11

# num_param = sg (‘get_histogram_num_model_parameters’)

# para i en xrange (num_examples):

# para j en xrange (num_param):

# sg (‘get_log_derivative% d% d’% (j, i))

# sg (‘get_log_likelihood_sample’)

if __name __ == ‘__ main__’:

print (‘LinearHMM’)

distribution_linearhmm (* parameter_list [0])