es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la desviación estándar y la mediana del modelo, puedes usar el siguiente código:

    # desviación estándar del componente
    gmm.covariances_
    
    # mediana del componente
    np.median(data)
    

    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 como gmm.covariances_[0, 0].

    La función np.median(data) devuelve el valor de la mediana del arreglo data. 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.

Comments are closed.