mattjj / pyhsmm

MIT License
546 stars 173 forks source link

Multimodal emission probabilites? #44

Closed mathDR closed 9 years ago

mathDR commented 9 years ago

Did you ever extend this package to include HDP priors for Gaussian Mixtures for the emission probabilities? I am trying to locate the acceptable probabilities for emission distributions, but can only find Gaussian.

Thanks

mattjj commented 9 years ago

The distributions are mostly in pybasicbayes's distributions.py. To make a mixture that can be plugged into an HMM, you'd also want to use the MixtureDistribution class. Something like this:

from pybasicbayes.models import MixtureDistribution
from pybasicbayes.distributions import Gaussian

obs_distns = \
    [MixtureDistribution(
        alpha_0=5.,
        components=[Gaussian(**obs_hypparams) for _ in xrange(5)])
    for state in range(Nmax)]

By default those MixtureDistributions act like weak limit approximations to Dirichlet Process mixture models. If you want to make an HDP model (including multiple mixture models) you'll have to write the hierarchical part yourself.

You can make mixtures of any of the distributions in pybasicbayes (and it's pretty easy to add new ones).