sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis

class sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis

Análisis Discriminante Cuadrático

Un clasificador con un límite de decisión cuadrático, generado ajustando las densidades condicionales de las clases a los datos y utilizando la regla de Bayes.

El modelo se ajusta una densidad Gaussiana a cada clase.

Nuevo en la versión 0.17: QuadraticDiscriminantAnalysis

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

Parámetros
priorsndarray de forma (n_classes,), default=None

A prioris de clase. Por defecto, las proporciones de clase se infieren a partir de los datos de entrenamiento.

reg_paramfloat, default=0.0

Regulariza las estimaciones de covarianza por clase transformando S2 como S2 = (1 - reg_param) * S2 + reg_param * np.eye(n_features), donde S2 corresponde al atributo scaling_ de una clase determinada.

store_covariancebool, default=False

Si es True, las matrices de covarianza de la clase se calculan explícitamente y se almacenan en el atributo self.covariance_.

Nuevo en la versión 0.17.

tolfloat, default=1.0e-4

Umbral absoluto para que un valor singular se considere significativo, utilizado para estimar el rango de Xk donde Xk es la matriz centrada de muestras en la clase k. Este parámetro no afecta a las predicciones. Sólo controla una advertencia que se produce cuando las características se consideran colineales.

Nuevo en la versión 0.17.

Atributos
covariance_lista de len n_classes o ndarray de forma (n_features, n_features)

Para cada clase, da la matriz de covarianza estimada utilizando las muestras de esa clase. Las estimaciones son insesgadas. Sólo está presente si store_covariance es True.

means_array-like de forma (n_classes, n_features)

Medios de la clase.

priors_array-like de forma (n_classes,)

A prioris de clase (suma 1).

rotations_lista de len n_classes o ndarray de forma (n_features, n_k)

Para cada clase k, un arreglo de forma (n_features, n_k), donde n_k = min(n_features, número de elementos en la clase k) Es la rotación de la distribución Gaussiana, es decir, su eje principal. Corresponde a V, la matriz de autovectores procedente de la SVD de Xk = U S Vt donde Xk es la matriz centrada de las muestras de la clase k.

scalings_lista de len n_classes o ndarray de forma (n_k,)

Para cada clase, contiene la escala de las distribuciones Gaussianas a lo largo de sus ejes principales, es decir, la varianza en el sistema de coordenadas rotado. Corresponde a S^2 / (n_samples - 1), donde S es la matriz diagonal de valores singulares de la SVD de Xk, donde Xk es la matriz centrada de muestras de la clase k.

classes_ndarray de forma (n_classes,)

Etiquetas de clase únicas.

Ver también

LinearDiscriminantAnalysis

Análisis Discriminante Lineal.

Ejemplos

>>> from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
>>> import numpy as np
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> y = np.array([1, 1, 1, 2, 2, 2])
>>> clf = QuadraticDiscriminantAnalysis()
>>> clf.fit(X, y)
QuadraticDiscriminantAnalysis()
>>> print(clf.predict([[-0.8, -1]]))
[1]

Métodos

decision_function

Aplica la función de decisión a un arreglo de muestras.

fit

Ajusta el modelo según los datos de entrenamiento y los parámetros dados.

get_params

Obtiene los parámetros para este estimador.

predict

Realiza la clasificación en un arreglo de vectores de prueba X.

predict_log_proba

Devuelve el logaritmo de las probabilidades posteriores de la clasificación.

predict_proba

Devuelve las probabilidades posteriores de clasificación.

score

Devuelve la precisión media en los datos de prueba y las etiquetas dados.

set_params

Establece los parámetros de este estimador.

decision_function()

Aplica la función de decisión a un arreglo de muestras.

La función de decisión es igual (hasta un factor constante) al log-posterior del modelo, es decir, log p(y = k | x). En un entorno de clasificación binaria, esto corresponde a la diferencia log p(y = 1 | x) - log p(y = 0 | x). Ver Formulación matemática de los clasificadores ADL y ADQ.

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

Arreglo de muestras (vectores de prueba).

Devuelve
Cndarray de forma (n_samples,) o (n_samples, n_classes)

Valores de la función de decisión relacionados con cada clase, por muestra. En el caso de dos clases, la forma (shape) es (n_samples,), lo que da la razón de verosimilitud logarítmica de la clase positiva.

fit()

Ajusta el modelo según los datos de entrenamiento y los parámetros dados.

Distinto en la versión 0.19: store_covariances se ha movido al constructor principal (main) como store_covariance

Distinto en la versión 0.19: ``tol* se ha movido al constructor principal.

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

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

yarray-like de forma (n_samples,)

Valores objetivo (enteros)

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 mapeados a sus valores.

predict()

Realiza la clasificación en un arreglo de vectores de prueba X.

Se devuelve la clase C predicha para cada muestra en X.

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

Devuelve el logaritmo de las probabilidades posteriores de la clasificación.

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

Arreglo de vectores de muestras/prueba.

Devuelve
Cndarray de forma (n_samples, n_classes)

Probabilidades logarítmicas posteriores de clasificación por clase.

predict_proba()

Devuelve las probabilidades posteriores de clasificación.

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

Arreglo de vectores de muestras/prueba.

Devuelve
Cndarray de forma (n_samples, n_classes)

Probabilidades posteriores de clasificación por clase.

score()

Devuelve la precisión media en los datos de prueba y las etiquetas dados.

En la clasificación multietiqueta, se trata de la precisión del subconjunto, que es una métrica rigurosa, ya que se requiere para cada muestra que cada conjunto de etiquetas sea predicho correctamente.

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

Muestras de prueba.

yarray-like de forma (n_samples,) o (n_samples, n_outputs)

Etiquetas True para X.

sample_weightarray-like de forma (n_samples,), default=None

Ponderaciones de la muestra.

Devuelve
scorefloat

Precisión media de self.predict(X) con respecto a y.

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.