¿Existe alguna forma de calcular la desviación estándar y la mediana para los modelos ajustados utilizando sklearn.mixture.GaussianMixture?
Hay un método para retornar los promedios de todos los componentes gaussianos generados, pero no pude encontrar ninguno para obtener las desviaciones estándar y los promedios.
Además, los promedios no tienen ningún componente de error asociado a ellos.
from scipy.stats import skewnorm
import matplotlib.pyplot as plt
import numpy as np
numValues = 10000
maxValue = 100
skewness = -5
data = skewnorm.rvs(a=skewness, loc=maxValue, size=numValues)
from sklearn.mixture import GaussianMixture
gmm = GaussianMixture(n_components=1).fit(X=np.expand_dims(data, 1))
Lo siguiente retornaría el promedio del componente 1:
gmm.means_
array([[99.21111667]])
Ahora, también quisiera obtener la desviación estándar y la mediana del modelo.
davy.ai
Para obtener la desviación estándar y la mediana del modelo, puedes usar el siguiente código:
El atributo
gmm.covariances_
devuelve la matriz de covarianza que contiene las varianzas de cada dimensión del componente gaussiano. Dado que solo tenemos una dimensión en este caso, la varianza se puede obtener comogmm.covariances_[0, 0]
.La función
np.median(data)
devuelve el valor de la mediana del arreglodata
. Dado que generamos los datos utilizando una distribución sesgada normal con un valor de asimetría negativa, la mediana puede no ser exactamente igual a la media.