J'ai deux ensembles d'apprentissage (observations de classe connue) représentant les deux états possibles dans mes données. Je voudrais avoir hmmlearn estimer le début, la transition , et les probabilités d'émission de ces deux ensembles d'entraînement.Formation hmmlearn HMM avec plusieurs classes de séquence d'observation
Mes données sont une liste de valeurs comprises entre 0 et 1. J'ai déjà divisé les données en groupes grossiers «A» et «B» en utilisant un seuil prudent. Je veux utiliser un HMM pour affiner les points auxquels mes données changent d'état.
Pour une seule séquence train/test de X que je ferais ceci:
X = [0, 1, 1, 1, 0.1, 0.015, 0.01, 0.001, 0.005, 0.001, 0.2, 1, 0.8, 1, 1, 0.3]
states = ["A", "B"]
#Fit model, auto set probabilities
model = hmm.MultinomialHMM(n_components=2, covariance_type="full")
model.fit([X])
#Predict states
Z = model.predict(X)
#Predict a sequence of hidden states based on visible states
logprob, state = model.decode(X, algorithm="viterbi")
print "States:", ", ".join(map(lambda x: states[x], state))
>>> States: A, B, B, B, B, A, A, A, A, A, B, B, B, B, B, B
Je voudrais savoir comment former l'état A et l'état B séparément.
Juste pour être complet: cela ne fonctionnera pas dans 'hmmlearn' 0.2.0. Voir "Travailler avec plusieurs séquences" dans le [tutoriel] (http://hmmlearn.readthedocs.org/en/latest/tutorial.html#training-hmm-parameters-and-inferring-the-hidden-states). –