Skip to content

Instantly share code, notes, and snippets.

@lamres
Created September 3, 2019 17:45
Show Gist options
  • Select an option

  • Save lamres/e798ad3175c012a671ebfa5198f469ef to your computer and use it in GitHub Desktop.

Select an option

Save lamres/e798ad3175c012a671ebfa5198f469ef to your computer and use it in GitHub Desktop.
def mean_confidence_interval(vals, confidence):
a = 1.0 * np.array(vals)
n = len(a)
m, se = np.mean(a), scipy.stats.sem(a)
h = se * scipy.stats.t.ppf((1 + confidence) / 2., n-1)
return m - h, m, m + h
def compare_hidden_states(hmm_model, cols_features, conf_interval, iters = 1000):
plt.figure(figsize=(15, 15))
fig, axs = plt.subplots(len(cols_features), hmm_model.n_components, figsize = (15, 15))
colours = cm.prism(np.linspace(0, 1, hmm_model.n_components))
for i in range(0, model.n_components):
mc_df = pd.DataFrame()
# Samples generation
for j in range(0, iters):
row = np.transpose(hmm_model._generate_sample_from_state(i))
mc_df = mc_df.append(pd.DataFrame(row).T)
mc_df.columns = cols_features
for k in range(0, len(mc_df.columns)):
axs[k][i].hist(mc_df[cols_features[k]], color = colours[i])
axs[k][i].set_title(cols_features[k] + " (state " + str(i) + "): " + str(np.round(mean_confidence_interval(mc_df[cols_features[k]], conf_interval), 3)))
axs[k][i].grid(True)
plt.tight_layout()
compare_hidden_states(hmm_model=model, cols_features=cols_features, conf_interval=0.95)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment