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 solucionadoreslsqr
yeigen
.- 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 atributocovariance_
como los estimadores ensklearn.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 quecovariance_estimator
sólo funciona con los solucionadoreslsqr
yeigen
.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
dondeC_k
es la matriz de covarianza de las muestras en la clasek
. LasC_k
se estiman utilizando el estimador sesgado de la covarianza(potencialmente reducido). Si el solucionador es “svd”, sólo existe cuandostore_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
Aplica la función de decisión a un arreglo de muestras.
Ajusta el modelo de LinearDiscriminantAnalysis de acuerdo a lo dado
Ajusta a los datos y luego los transforma.
Obtiene los parámetros para este estimador.
Predice las etiquetas de clase para las muestras en X.
Estima la probabilidad logarítmica.
Estima la probabilidad.
Devuelve la precisión media en los datos de prueba y las etiquetas dados.
Establece los parámetros de este estimador.
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 diferencialog 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
ey
con los parámetros opcionalesfit_params
y devuelve una versión transformada deX
.- 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 ay
.
- 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.