An easy to use python library consisting implementation of Continuous Density Hidden Markov Models.
Continuous Density Hidden Markov Models(CD-HMM) are a type of HMM which consists of Emission probabilities in the form of a distribution like gaussian or uniform distribution. Despite its use in Speech processing, very less codes are available on the internet regarding CD-HMM. This library has implementation of all HMM algorithms applied on continuous density observations.
After studying Hidden Markov Models(HMM) for a while now, I have came across many python libraries which implements HMM algorithms like forward, backward, Viterbi and Baum-Welch. However, most of these libraries work on discrete observations. cdhmm library is developed for can be used to do HMM operations on Continuous observations.
Install numpy, scipy and seaborn by executing following commands:
pip install numpy
pip install scipy
pip install seaborn
After installing prerequisites, install cdhmm library by executing following command:
pip install cdhmm-ashishmokalkar==0.0.2
For Official project page, visit following website:
https://pypi.org/project/cdhmm-ashishmokalkar/0.0.2/
import cdhmm as cd
import numpy as np
observations = [1.2, 2.4, 2.9, 3.7, 4.1, 4.8, 6.2]
transition_probs = np.array([[0.68, 0.29], [0.18, 0.91]])
pi = np.array([0.83, 0.24]) #initial probability
means = [3.00, 5.00]
variances = [1.44, 0.64]
exit_p = [0.07, 0.06]
hmms = cd.simple_cdhmm(obs, means, variances, pi, transition_probs, exit_p)
Em = hmms.get_probability_densities()
print (Em)
alpha = hmms.forward()
print("Alphas :: ")
print(alpha)
like_f = hmms.likelihood()
print("Forward Likelihood :: ")
print (like_f)
beta = hmms.backward()
print("Beta :: ")
print (beta)
like_b = hmms.likelihood_b()
print("Backward Likelihood :: ")
print (like_b)
occ = hmms.get_occupation_likelihoods()
print("Occupation likelihoods :: ")
print (occ)
new_means = hmms.getNewMean()
print("New means :: ")
print (new_means)
new_vars = hmms.getNewVariance()
print("New Variances :: ")
print (new_vars)