8.12.3. sklearn.hmm.GMMHMM

class sklearn.hmm.GMMHMM(n_components=1, n_mix=1, startprob=None, transmat=None, startprob_prior=None, transmat_prior=None, algorithm='viterbi', gmms=None, covariance_type='diag', covars_prior=0.01, random_state=None, n_iter=10, thresh=0.01, params='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', init_params='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')

Hidden Markov Model with Gaussin mixture emissions

See also

GaussianHMM
HMM with Gaussian emissions

Examples

>>> from sklearn.hmm import GMMHMM
>>> GMMHMM(n_components=2, n_mix=10, covariance_type='diag')
... 
GMMHMM(algorithm='viterbi', covariance_type='diag',...

Attributes

init_params string, optional Controls which parameters are initialized prior to training. Can contain any combination of ‘s’ for startprob, ‘t’ for transmat, ‘m’ for means, and ‘c’ for covars, etc. Defaults to all parameters.
params string, optional Controls which parameters are updated in the training process. Can contain any combination of ‘s’ for startprob, ‘t’ for transmat,’m’ for means, and ‘c’ for covars, etc. Defaults to all parameters.
n_components int Number of states in the model.
transmat array, shape (n_components, n_components) Matrix of transition probabilities between states.
startprob array, shape (‘n_components`,) Initial state occupation distribution.
gmms array of GMM objects, length n_components GMM emission distributions for each state.
random_state RandomState or an int seed (0 by default) A random number generator instance
n_iter int, optional Number of iterations to perform.
thresh float, optional Convergence threshold.

Methods

decode(obs[, algorithm]) Find most likely state sequence corresponding to obs.
eval(obs) Compute the log probability under the model and compute posteriors
fit(obs, **kwargs) Estimate model parameters.
get_params([deep]) Get parameters for the estimator
predict(obs[, algorithm]) Find most likely state sequence corresponding to obs.
predict_proba(obs) Compute the posterior probability for each state in the model
sample([n, random_state]) Generate random samples from the model.
score(obs) Compute the log probability under the model.
set_params(**params) Set the parameters of the estimator.
__init__(n_components=1, n_mix=1, startprob=None, transmat=None, startprob_prior=None, transmat_prior=None, algorithm='viterbi', gmms=None, covariance_type='diag', covars_prior=0.01, random_state=None, n_iter=10, thresh=0.01, params='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', init_params='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')

Create a hidden Markov model with GMM emissions.

Parameters:

n_components : int

Number of states.

algorithm

decoder algorithm

covariance_type

Covariance type of the model.

Must be one of ‘spherical’, ‘tied’, ‘diag’, ‘full’.

decode(obs, algorithm='viterbi')

Find most likely state sequence corresponding to obs. Uses the selected algorithm for decoding.

Parameters:

obs : array_like, shape (n, n_features)

List of n_features-dimensional data points. Each row corresponds to a single data point.

algorithm : string, one of the decoder_algorithms

decoder algorithm to be used

Returns:

logprob : float

Log probability of the maximum likelihood path through the HMM

state_sequence : array_like, shape (n,)

Index of the most likely states for each observation

See also

eval
Compute the log probability under the model and posteriors
score
Compute the log probability under the model
eval(obs)

Compute the log probability under the model and compute posteriors

Implements rank and beam pruning in the forward-backward algorithm to speed up inference in large models.

Parameters:

obs : array_like, shape (n, n_features)

Sequence of n_features-dimensional data points. Each row corresponds to a single point in the sequence.

Returns:

logprob : float

Log likelihood of the sequence obs

posteriors: array_like, shape (n, n_components) :

Posterior probabilities of each state for each observation

See also

score
Compute the log probability under the model
decode
Find most likely state sequence corresponding to a obs
fit(obs, **kwargs)

Estimate model parameters.

An initialization step is performed before entering the EM algorithm. If you want to avoid this step, set the keyword argument init_params to the empty string ‘’. Likewise, if you would like just to do an initialization, call this method with n_iter=0.

Parameters:

obs : list

List of array-like observation sequences (shape (n_i, n_features)).

Notes

In general, logprob should be non-decreasing unless aggressive pruning is used. Decreasing logprob is generally a sign of overfitting (e.g. a covariance parameter getting too small). You can fix this by getting more training data, or decreasing covars_prior.

Please note that setting parameters in the `fit` method is deprecated and will be removed in the next release. Set it on initialization instead.

get_params(deep=True)

Get parameters for the estimator

Parameters:

deep: boolean, optional :

If True, will return the parameters for this estimator and contained subobjects that are estimators.

predict(obs, algorithm='viterbi')

Find most likely state sequence corresponding to obs.

Parameters:

obs : array_like, shape (n, n_features)

List of n_features-dimensional data points. Each row corresponds to a single data point.

Returns:

state_sequence : array_like, shape (n,)

Index of the most likely states for each observation

predict_proba(obs)

Compute the posterior probability for each state in the model

Parameters:

obs : array_like, shape (n, n_features)

List of n_features-dimensional data points. Each row corresponds to a single data point.

Returns:

T : array-like, shape (n, n_components)

Returns the probability of the sample for each state in the model.

sample(n=1, random_state=None)

Generate random samples from the model.

Parameters:

n : int

Number of samples to generate.

random_state: RandomState or an int seed (0 by default) :

A random number generator instance. If None is given, the object’s random_state is used

Returns:

(obs, hidden_states) :

obs : array_like, length n List of samples

hidden_states : array_like, length n List of hidden states

score(obs)

Compute the log probability under the model.

Parameters:

obs : array_like, shape (n, n_features)

Sequence of n_features-dimensional data points. Each row corresponds to a single data point.

Returns:

logprob : float

Log likelihood of the obs

See also

eval
Compute the log probability under the model and posteriors
decode
Find most likely state sequence corresponding to a obs
set_params(**params)

Set the parameters of the estimator.

The method works on simple estimators as well as on nested objects (such as pipelines). The former have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Returns:self :
startprob_

Mixing startprob for each state.

transmat_

Matrix of transition probabilities.

Previous
Next