Модель смеси Python Sklearn Гаусса не очень хорошо соответствует бимодальному распределениюPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Модель смеси Python Sklearn Гаусса не очень хорошо соответствует бимодальному распределению

Сообщение Anonymous »

Я немного читал и никогда не задавал вопрос о Stackoverflow Проблема.

Код: Выделить всё

import numpy as np
from sklearn.mixture import GaussianMixture
from scipy.stats import norm

X = np.asanyarray(histodata)
X = X.reshape(-1, 1)
gm = GaussianMixture(covariance_type="diag",n_components=2, reg_covar=1e-12, tol= 0.1, init_params= "kmeans",random_state=0, max_iter=100).fit(X)
print(gm.means_)
print(gm.covariances_)
print(gm.weights_)

gm.get_params()
https://ibb.co/vxnmg9qz
Так что это в порядке.
Но когда я пытаюсь еще один с двумя компонентами, он не работает

Код: Выделить всё

# find useful parameters
mean = gm.fit(X).means_
covs  = gm.fit(X).covariances_
weights = gm.fit(X).weights_

# create necessary things to plot
x_axis = np.arange(-100, 470, 5)
y_axis0 = norm.pdf(x_axis, float(mean[0][0]), np.sqrt(float(covs[0])))*weights[0] # 1st gaussian
y_axis1 = norm.pdf(x_axis, float(mean[1][0]), np.sqrt(float(covs[1])))*weights[1] # 2nd gaussian

plt.plot(x_axis, y_axis0, lw=3, c='C0')
plt.plot(x_axis, y_axis1, lw=3, c='C1')
plt.plot(x_axis, y_axis0+y_axis1, lw=3, c='C2', ls='dashed')

plt.hist(histodata, density=True, stacked = True, bins = 470, color="black",)

Но пики недостаточно высоки, ширина недостаточно широкая.

Подробнее здесь: https://stackoverflow.com/questions/795 ... ion-very-w
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»