I want to plot a Gaussian Mixture Model. The following code allows me to plot 2 separate Gaussians, but where they intersect, the line is very sharp and not smooth enough. Is th
You have to form a convex combination of the densities.
curve = p*curve_0 + (1-p)*curve_1
where p is the probability that a sample comes from the first Gaussian.
You can literally draw samples from a Gaussian mixture model and plot the empirical density / histogram too:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
n = 10000 # number of sample to be drawn
mu = [-6, 5]
sigma = [2, 3]
samples = []
for i in range(n): # iteratively draw samples
Z = np.random.choice([0,1]) # latent variable
samples.append(np.random.normal(mu[Z], sigma[Z], 1))
sns.distplot(samples, hist=False)
plt.show()
sns.distplot(samples)
plt.show()