Documentación de Sklearn - 1.2. Análisis discriminante lineal y análisis discriminante cuadrático
El análisis discriminante lineal (discriminant_analysis.LinearDiscriminantAnalysis
) y el análisis discriminante cuadrático (discriminant_analysis.QuadraticDiscriminantAnalysis
) son dos clasificadores clásicos. Como sugieren los nombres, son superficies de decisión lineales y superficies de decisión cuadráticas, respectivamente.
Ambos métodos son atractivos porque son fáciles de calcular y son esencialmente soluciones cerradas para múltiples clases, lo que proporciona un buen rendimiento sin hiperparámetros.
Esta figura muestra los límites de decisión respectivos del método de análisis discriminante lineal y del método de análisis discriminante cuadrático. La segunda fila muestra que el análisis discriminante lineal produce sólo límites lineales, mientras que el análisis discriminante cuadrático produce límites cuadráticos más flexibles.
discriminant_analysis.LinearDiscriminantAnalysis
Proyectando los datos de entrada en un subespacio lineal maximizando la dirección de la proyección del intervalo de clase (espacio) (el significado específico se discutirá en la sección de matemáticas a continuación ), capaz de realizar la misma operación de reducción de dimensionalidad supervisada. Es necesario hacer que la salida tenga menos dimensiones que el número de clases, por lo que esto suele ser una reducción de dimensionalidad bastante grande y solo funciona con muchas clases.
La implementación del análisis discriminante.Análisis discriminante lineal.Transformación
puede establecer las dimensiones requeridas configurando el parámetro del constructor ** n_components **. Pero este parámetro no afecta discriminant_analysis.LinearDiscriminantAnalysis.fit
o discriminant_analysis.LinearDiscriminantAnalysis.predict
de ninguna manera.
LDA (análisis discriminante lineal) y QDA (análisis discriminante cuadrático) se pueden derivar respectivamente a través de un modelo probabilístico simple. El modelo trata sobre la distribución condicional de las probabilidades de datos P(X|y = k) en cada clase**k. Luego se pueden obtener predicciones utilizando métodos bayesianos:
Para comprender cómo se puede aplicar LDA a la reducción de dimensionalidad, es necesario iniciar la reconstrucción geométrica de acuerdo con las reglas de clasificación LDA descritas. arriba. Definimos **K como el número total de categorías objetivo. Dado que en LDA definimos que todas las categorías tengan la misma covarianza estimada Σ **, podemos reescalar los datos de entrada para que se definan de la siguiente manera:
Luego se puede demostrar que después de escalar Clasificar un punto de datos es equivalente a obtener la media de clase estimada ** μk^* que es la más cercana al punto de datos en la distancia euclidiana. Pero esto se puede lograr proyectando sobre un subespacio afín K - 1 generado por la media μk^* de todas las clases. Esto muestra que el clasificador LDA tiene una reducción de dimensionalidad incorporada mediante proyección lineal en un espacio dimensional K - 1.
Podemos elegir L proyectando sobre el subespacio lineal HL para maximizar la varianza del μk^* proyectado y reducir aún más la dimensionalidad (en realidad, proyectamos al valor medio de la clase transformada μk^*, y luego proyectado en el subespacio lineal HL para maximizar la varianza de μk^* después de la proyección /strong> μk^* proporciona una forma de PCA). En la función discriminant_analysis.LinearDiscriminantAnalysis.transform
, L representa el parámetro n_components ** en la función. Consulte [3] para obtener más detalles.
La contracción es una herramienta que se utiliza para mejorar la estimación de la matriz de covarianza cuando los datos en el conjunto de entrenamiento son menores que el número de características. En este caso, la covarianza muestral empírica es una estimación deficiente. LDA se puede reducir configurando el parámetro de contracción en automático en la clase discriminant_analysis.LinearDiscriminantAnalysis
. Esto seleccionará automáticamente los parámetros de contracción adecuados de forma analítica después de introducir los parámetros de Ledoit y Wolf [4]. Sin embargo, tenga en cuenta que la reducción actual solo es apropiada si el parámetro del solucionador está establecido en 'lsqr' ** o ** 'eigen' **.
*hrinkage ** El parámetro también se puede configurar manualmente en un valor entre [0, 1]. Específicamente, un valor de 0 corresponde a ninguna contracción (lo que significa que se utilizará la matriz de covarianzas de la muestra empírica), y un valor de 1 corresponde a una contracción total (lo que significa que se utilizará la matriz diagonal de varianzas como estimación de la matriz de covarianza). Establecer un valor entre (es decir, (0, 1)) estimará la contracción correspondiente de la matriz de covarianza.
El solucionador predeterminado es ** 'svd' . Puede realizar clasificación y transformación sin depender del cálculo de la matriz de covarianza. Esta característica es una ventaja cuando se trata de una gran cantidad de características, pero el solucionador 'svd' ** no puede realizar la reducción.
El solucionador **'lsqr'** es un algoritmo muy eficiente para problemas de clasificación (solo puede manejar problemas de clasificación) y admite la contracción.
**El solucionador 'eigen' se basa en el valor óptimo del diferencial de clases y la relación entre el diferencial de clases. Puede manejar problemas de clasificación y transformación y también admite la contracción. Sin embargo, el solucionador 'eigen' ** requiere una matriz de covarianza de calculadora, por lo que puede no ser una buena opción cuando se trata de una gran cantidad de características.
(Al traducir este documento, debido a varios problemas, inevitablemente se producirán errores de traducción. Si encuentra alguno, indíquelo, gracias gt; lt;)