sklearn.discriminant_analysis.LinearDiscriminantAnalysis

class sklearn.discriminant_analysis.LinearDiscriminantAnalysis

Análisis Discriminante Lineal

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

El modelo ajusta una densidad gaussiana a cada clase, asumiendo que todas las clases comparten la misma matriz de covarianza.

El modelo ajustado también puede utilizarse para reducir la dimensionalidad de la entrada proyectándola hacia las direcciones más discriminatorias, utilizando el método transform.

Nuevo en la versión 0.17: LinearDiscriminantAnalysis.

Lee más en el Manual de usuario.

Parámetros
solver{“svd”, “lsqr”, “eigen”}, default=”svd”
Solucionador a utilizar, valores posibles:
  • “svd”: Descomposición del valor singular (por defecto). No calcula la matriz de covarianza, por lo que este solucionador se recomienda para datos con un gran número de características.

  • “lsqr”: Solución de mínimos cuadrados. Puede combinarse con la contracción(shrinkage) o con un estimador de covarianza personalizado.

  • “eigen”: Descomposición de autovalores. Puede combinarse con la contracción o con un estimador de covarianza personalizado.

shrinkage“auto” o float, default=None
Parámetro de contracción, valores posibles:
  • None: sin contracción(predeterminado).

  • “auto”: contracción automática mediante el lema de Ledoit-Wolf.

  • número de punto flotante(float) entre 0 y 1: parámetro fijo de contracción.

Debe dejarse en None si se utiliza covariance_estimator. Ten en cuenta que la contracción sólo funciona con los solucionadores lsqr y eigen.

priorsarray-like de forma (n_classes,), default=None

Las probabilidades a priori de clase. Por defecto, las proporciones de clase se infieren a partir de los datos de entrenamiento.

n_componentsint, default=None

Número de componentes (<= min(n_classes - 1, n_features)) para la reducción de la dimensionalidad. Si es None, se establecerá en min(n_classes - 1, n_features). Este parámetro sólo afecta al método transform.

store_covariancebool, default=False

Si es True, calcula explícitamente la matriz de covarianza ponderada dentro de la clase cuando el solucionador es “svd”. La matriz siempre se calcula y se almacena para los otros solucionadores.

Nuevo en la versión 0.17.

tolfloat, default=1.0e-4

Umbral absoluto para que un valor singular de X se considere significativo, utilizado para estimar el rango de X. Las dimensiones cuyos valores singulares no son significativos se descartan. Sólo se utiliza si el solucionador es “svd”.

Nuevo en la versión 0.17.

covariance_estimatorestimador de la covarianza, default=None

Si no es None, se utiliza covariance_estimator para estimar las matrices de covarianza en lugar de confiar en el estimador empírico de covarianza (con una posible contracción). El objeto debe tener un método(fit) de ajuste y un atributo covariance_ como los estimadores en sklearn.covariance. Si es None, el parámetro de contracción impulsa la estimación.

Debe dejarse en None si se utiliza shrinkage. Ten en cuenta que covariance_estimator sólo funciona con los solucionadores lsqr y eigen.

Nuevo en la versión 0.24.

Atributos
coef_ndarray de forma (n_features,) o (n_classes, n_features)

Vector(es) de ponderación.

intercept_ndarray de forma (n_classes,)

Término de intercepción.

covariance_array-like de forma (n_features, n_features)

Matriz de covarianza ponderada dentro de la clase. Corresponde a sum_k prior_k * C_k donde C_k es la matriz de covarianza de las muestras en la clase k. Las C_k se estiman utilizando el estimador sesgado de la covarianza(potencialmente reducido). Si el solucionador es “svd”, sólo existe cuando store_covariance es True.

explained_variance_ratio_ndarray de forma (n_components,)

Porcentaje de varianza explicada por cada uno de los componentes seleccionados. Si n_components no se establece, entonces todos los componentes son almacenados y la suma de las varianzas explicadas es igual a 1,0. Sólo está disponible cuando se utiliza el solucionador eigen o svd.

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

scalings_array-like de forma (rank, n_classes - 1)

Escalamiento de las características en el espacio abarcado por los centroides de las clases. Sólo disponible para los solucionadores “svd” y “eigen”.

xbar_array-like of forma (n_features,)

Media general. Sólo está presente si el solucionador es “svd”.

classes_array-like de forma (n_classes,)

Etiquetas de clase únicas.

Ver también

QuadraticDiscriminantAnalysis

Análisis Discriminante Cuadrático.

Ejemplos

>>> import numpy as np
>>> from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
>>> 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 = LinearDiscriminantAnalysis()
>>> clf.fit(X, y)
LinearDiscriminantAnalysis()
>>> 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 de LinearDiscriminantAnalysis de acuerdo a lo dado

fit_transform

Ajusta a los datos y luego los transforma.

get_params

Obtiene los parámetros para este estimador.

predict

Predice las etiquetas de clase para las muestras en X.

predict_log_proba

Estima la probabilidad logarítmica.

predict_proba

Estima la probabilidad.

score

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

set_params

Establece los parámetros de este estimador.

transform

Proyecta los datos para maximizar la separación de clases.

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_muestras,), que da la relación de probabilidad logarítmica de la clase positiva.

fit()
Ajusta el modelo de LinearDiscriminantAnalysis de acuerdo a lo dado

datos de entrenamiento y parámetros.

Distinto en la versión 0.19: store_covariance se ha movido al constructor principal «main».

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

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

Datos de entrenamiento.

yarray-like de forma (n_samples,)

Valores objetivo.

fit_transform()

Ajusta a los datos y luego los transforma.

Ajusta el transformador a X e y con los parámetros opcionales fit_params y devuelve una versión transformada de X.

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

Muestras de entrada.

yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None

Valores objetivo (None para transformaciones no supervisadas).

**fit_paramsdict

Parámetros de ajuste adicionales.

Devuelve
X_newarreglo ndarray de forma (n_samples, n_features_new)

Arreglo transformado.

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.

predict()

Predice las etiquetas de clase para las muestras en X.

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

Muestras.

Devuelve
Carreglo, forma [n_samples]

Etiqueta de clase predicha por muestra.

predict_log_proba()

Estima la probabilidad logarítmica.

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

Datos de entrada.

Devuelve
Cndarray de forma (n_samples, n_classes)

Probabilidades logarítmicas estimadas.

predict_proba()

Estima la probabilidad.

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

Datos de entrada.

Devuelve
Cndarray de forma (n_samples, n_classes)

Probabilidades estimadas.

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.

transform()

Proyecta los datos para maximizar la separación de clases.

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

Datos de entrada.

Devuelve
X_newndarray de forma (n_samples, n_components)

Datos transformados.

Ejemplos usando sklearn.discriminant_analysis.LinearDiscriminantAnalysis