sklearn.covariance.OAS

class sklearn.covariance.OAS

Estimador de Reducción por Aproximación de Oráculo

Más información en el Manual de usuario.

El RAO (OAS en inglés) es una forma particular de reducción descrita en «Shrinkage Algorithms for MMSE Covariance Estimation» Chen et al., IEEE Trans. on Sign. Proc., Volume 58, Issue 10, October 2010.

La fórmula usada aquí no corresponde a aquella dada en el artículo. En el artículo original, la formula (23) establece que 2/p es multiplicado por Trace(cov*cov) tanto en el numerador como el denominador, pero esta operación se omite debido a que para un p grande, el valor de 2/p es tan pequeño que no afecta el valor del estimador.

Parámetros
store_precisionbool, default=True

Especifica si se almacena la precisión estimada.

assume_centeredbool, default=False

Si es True, los datos no se centrarán antes del calculó. Útil al trabajar con datos cuya media es casí, pero no igual a cero. Si es False (predeterminado), los datos se centrarán antes del cálculo.

Atributos
covariance_ndarray de forma (n_features, n_features)

Matriz de covarianza estimada.

location_ndarray de forma (n_features,)

Ubicación estimada, es decir, la media estimada.

precision_ndarray de forma (n_features, n_features)

Matrix pseudo inversa estimada. (almacenada sólo si store_precision es True)

shrinkage_float

coeficiente en la combinación convex utilizada para el cálculo de la estimación reducida. Su rango es [0, 1].

Notas

La covarianza regularizada es:

(1 - shrinkage) * cov + shrinkage * mu * np.identity(n_features)

donde mu = trace(cov) / n_features y la reducción es dada por la fórmula RAO (ver referencias)

Referencias

«Shrinkage Algorithms for MMSE Covariance Estimation» Chen et al., IEEE Trans. on Sign. Proc., Volume 58, Issue 10, October 2010.

Ejemplos

>>> import numpy as np
>>> from sklearn.covariance import OAS
>>> from sklearn.datasets import make_gaussian_quantiles
>>> real_cov = np.array([[.8, .3],
...                      [.3, .4]])
>>> rng = np.random.RandomState(0)
>>> X = rng.multivariate_normal(mean=[0, 0],
...                             cov=real_cov,
...                             size=500)
>>> oas = OAS().fit(X)
>>> oas.covariance_
array([[0.7533..., 0.2763...],
       [0.2763..., 0.3964...]])
>>> oas.precision_
array([[ 1.7833..., -1.2431... ],
       [-1.2431...,  3.3889...]])
>>> oas.shrinkage_
0.0195...

Métodos

error_norm

Calcula el Error Cuadrático Medio entre dos estimadores de covarianza.

fit

Encaja el modelo de covarianza Reducción por Aproximación de Oráculo de acuerdo a los datos de entrenamiento y parámetros dados.

get_params

Obtiene los parámetros para este estimador.

get_precision

Colector para la matriz de precisión.

mahalanobis

Calcula las distancias de mahalanobis cuadráticas de las observaciones dadas.

score

Calcula el logaritmo de la verosimilitud de un conjunto de datos Gaussiano con self.covariance_ como un estimador de su matriz de covarianza.

set_params

Establece los parámetros de este estimador.

error_norm()

Calcula el Error Cuadrático Medio entre dos estimadores de covarianza. (En el sentido de la norma Frobenius).

Parámetros
comp_covarray-like de forma (n_features, n_features)

La covarianza con la cual se compara.

norm{«frobenius», «spectral»}, default=»frobenius»

El tipo de norma utilizada para calcular el error. Tipos de error disponibles: - “frobenius” (predeterminado): sqrt(tr(A^t.)) - “spectral”: sqrt(max(eigenvalues(A^t.A)) donde A es el error (comp_cov - self.covariance_).

scalingbool, default=True

Si es True (predeterminado), la norma del error cuadrático es dividida por n_features. Si es False, la norma del error cuadrático no es reescalada.

squaredbool, default=True

Si se calcula la norma de error cuadrático o la norma de error. Si es True (predeterminado) se devuelve la norma de error cuadrático. Si es False, se devuelve la norma de error.

Devuelve
resultfloat

El Error Cuadrático Medio (en el sentido de la norma Frobenius) entre los estimadores de covarianza self y comp_cov.

fit()

Encaja el modelo de covarianza Reducción por Aproximación de Oráculo de acuerdo a los datos de entrenamiento y parámetros dados.

Parámetros
Xarray-like de forma (n_samples, n_features)

Datos de entrenamiento, donde n_samples es el número de muestras y n_features es el número de características.

yIgnorado

No se utiliza, está presente para la consistencia de la API por convención.

Devuelve
selfobjeto
get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros asignados a sus valores.

get_precision()

Colector para la matriz de precisión.

Devuelve
precision_array-like de forma (n_features, n_features)

La matriz de precisión asociada al objeto de covariancia actual.

mahalanobis()

Calcula las distancias de mahalanobis cuadráticas de las observaciones dadas.

Parámetros
Xarray-like de forma (n_samples, n_features)

Las observaciones, las distancias Mahalanobis de lo que calculamos. Se asume que las observaciones se extraen de la misma distribución que utilizaron los datos en el ajuste.

Devuelve
distndarray de forma (n_samples,)

Distancias de Mahalanobis cuadráticas de las observaciones.

score()

Calcula el logaritmo de la verosimilitud de un conjunto de datos Gaussiano con self.covariance_ como un estimador de su matriz de covarianza.

Parámetros
X_testarray-like de forma (n_samples, n_features)

Los datos de prueba de los cuales calculamos la probabilidad, donde n_samples es el número de muestras y n_features es el número de características. Se asume que X_test se extrae de la misma distribución que los datos utilizados (incluyendo el centrado).

yIgnorado

No se utiliza, está presente para la consistencia de la API por convención.

Devuelve
resfloat

La probabilidad del conjunto de datos con self.covariance_ como un estimador de su matriz de covarianza.

set_params()

Establece los parámetros de este estimador.

El método funciona tanto en estimadores simples como en objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia del estimador

Instancia del estimador.