У меня есть одномерные данные, полученные из двух нормальных распределений. Моя цель - оценить две разные гауссовские составляющие.
plt.hist(my_data, bins=100, edgecolor= 'white' normed=False)
Я использую GMM (модель Gaussian Mixture).
clf = mixture.GaussianMixture(n_components=2)
clf.fit(my_data)
Я получаю свои два гауссиана.
mean_1 = clf.means_[0][0]
mean_2 = clf.means_[1][0]
std_1 = np.sqrt(clf.covariances_[0][0])[0]
std_2 = np.sqrt(clf.covariances_[1][0])[0]
weight_1 = weights[0]
weight_2 = weights[1]
Теперь к вопросу, я хотел бы наложить гистограмму с параметрами Гаусса, которые у меня есть выше. Я предполагаю, что сначала мне нужно нормализовать гистограмму, но как мне построить их так, чтобы площадь каждого гауссова веса была правильной, а общая площадь равнялась 1, и как мне наложить поверх ненормированной гистограммы?
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 500)
y = norm.pdf(x, mean_1, std_1)
plt.plot(x,y)
y = norm.pdf(x, mean_2, std_2)
plt.plot(x,y)
Приведенный выше кодовый блок дает мне два нормированных графика Гаусса, но оба они имеют одинаковую площадь.