Reducción de Dimensionalidad Supervisada para Machine Learning
La transformación Linear Discriminant Analysis (LDA) es una técnica de reducción de dimensionalidad supervisada ampliamente utilizada en Data Science y Machine Learning. Su principal objetivo es proyectar los datos originales en un espacio de menor dimensión maximizando la separación entre clases.
A diferencia de técnicas como el Principal Component Analysis (PCA), que ignoran las etiquetas de las observaciones, LDA utiliza la información de las clases para encontrar las direcciones que mejor discriminan entre grupos diferentes.
Esta característica convierte a LDA en una herramienta especialmente útil para tareas de clasificación donde se busca simplificar los datos sin perder la capacidad de distinguir entre categorías.
¿Qué es Linear Discriminant Analysis?
Linear Discriminant Analysis es una técnica estadística y de aprendizaje automático desarrollada para:
- Reducir la dimensionalidad de los datos.
- Maximizar la separación entre clases.
- Minimizar la variabilidad dentro de cada clase.
- Mejorar el rendimiento de modelos de clasificación.
La idea fundamental consiste en encontrar nuevas variables (componentes discriminantes) que representen los datos de forma más compacta y que, al mismo tiempo, faciliten la diferenciación entre categorías.
Por ejemplo, si se dispone de un conjunto de datos de flores con múltiples características como longitud y ancho de pétalos y sépalos, LDA intentará encontrar una combinación lineal de estas variables que permita distinguir claramente las diferentes especies.

¿Cómo funciona LDA?
LDA busca un equilibrio entre dos objetivos:
- Maximizar la distancia entre las medias de las clases.
- Minimizar la dispersión de los datos dentro de cada clase.
Matemáticamente, busca una proyección que maximice la siguiente relación:
J(w)=\frac{w^T S_B w}{w^T S_W w}
Donde:
- (S_B) representa la matriz de dispersión entre clases (Between-Class Scatter Matrix).
- (S_W) representa la matriz de dispersión dentro de las clases (Within-Class Scatter Matrix).
- (w) es el vector de proyección.
El proceso general es:
- Calcular la media de cada clase.
- Calcular la media global del conjunto de datos.
- Construir la matriz de dispersión intra-clase.
- Construir la matriz de dispersión inter-clase.
- Resolver el problema de autovalores y autovectores.
- Seleccionar los vectores discriminantes más importantes.
- Proyectar los datos al nuevo espacio de características.
Ejemplo Conceptual
Supongamos un problema de clasificación de clientes bancarios donde se dispone de las siguientes variables:
- Edad.
- Ingresos.
- Años de experiencia laboral.
- Nivel de endeudamiento.
Y el objetivo es distinguir entre:
- Clientes con bajo riesgo.
- Clientes con riesgo medio.
- Clientes con alto riesgo.
Aunque existan cuatro variables originales, LDA puede encontrar una o dos dimensiones que separen claramente estos grupos, facilitando tanto la visualización como la clasificación posterior.
Diferencias entre LDA y PCA
Aunque ambas técnicas reducen dimensionalidad, persiguen objetivos distintos.
| Característica | PCA | LDA |
|---|---|---|
| Supervisado | No | Sí |
| Usa etiquetas | No | Sí |
| Objetivo | Maximizar varianza | Maximizar separación de clases |
| Aplicación principal | Compresión de datos | Clasificación |
| Componentes máximos | Número de variables | Número de clases – 1 |
Por ejemplo:
- PCA encuentra las direcciones donde los datos presentan mayor variabilidad.
- LDA encuentra las direcciones donde las clases están mejor separadas.
Beneficios de LDA
- Reduce la dimensionalidad manteniendo información discriminativa.
- Mejora la separación entre categorías.
- Disminuye el ruido en muchos conjuntos de datos.
- Reduce el riesgo de sobreajuste.
- Facilita la visualización de datos multidimensionales.
- Puede mejorar el rendimiento de modelos de clasificación.
- Es computacionalmente eficiente.
En muchos casos, LDA actúa como una etapa previa de preprocesamiento antes de entrenar clasificadores como:
- Regresión logística.
- Support Vector Machines.
- Random Forest.
- Redes neuronales.
¿Cuándo utilizar LDA?
- Se dispone de etiquetas de clase.
- Existen muchas variables predictoras.
- Las clases son relativamente separables.
- Se desea mejorar la capacidad predictiva de un clasificador.
- Se busca visualizar datos de clasificación en dos o tres dimensiones.
Casos comunes:
- Reconocimiento facial.
- Clasificación de imágenes.
- Diagnóstico médico.
- Análisis financiero.
- Detección de fraude.
- Clasificación de documentos.
Ventajas
- Técnica supervisada.
- Buena interpretabilidad.
- Fácil implementación.
- Reducción significativa de dimensionalidad.
- Mejora la discriminación entre clases.
- Menor complejidad computacional que muchos métodos no lineales.
- Compatible con numerosos algoritmos de Machine Learning.
Desventajas
- Supone relaciones lineales.
- Requiere datos etiquetados.
- Puede verse afectada por outliers.
- No captura estructuras complejas no lineales.
- Sensible a distribuciones que no cumplen sus supuestos estadísticos.
Además, si las clases se superponen fuertemente, la capacidad discriminante disminuye considerablemente.
Limitaciones de LDA
LDA se basa en varios supuestos estadísticos:
- Las variables siguen distribuciones aproximadamente normales.
- Las clases poseen matrices de covarianza similares.
- Las observaciones son independientes.
- La relación entre variables es esencialmente lineal.
Cuando estos supuestos se incumplen:
- La calidad de la proyección puede deteriorarse.
- La separación entre clases puede no ser óptima.
- Métodos más avanzados pueden ofrecer mejores resultados.
Otra limitación importante es que el número máximo de componentes obtenidos es:
$$Componentes_{max}=N\acute{u}mero\ de\ clases-1$$
Por ejemplo:
- 2 clases → máximo 1 componente.
- 3 clases → máximo 2 componentes.
- 4 clases → máximo 3 componentes.
Aplicaciones en Data Science y Machine Learning
LDA tiene una amplia variedad de aplicaciones prácticas.
Clasificación de imágenes
- Reconocimiento facial.
- Identificación biométrica.
- Clasificación de objetos.
Procesamiento del lenguaje natural
- Clasificación de documentos.
- Análisis de sentimiento.
- Filtrado de spam.
Salud y medicina
- Diagnóstico de enfermedades.
- Clasificación de pacientes.
- Predicción de riesgos clínicos.
Finanzas
- Evaluación de riesgo crediticio.
- Detección de fraude.
- Segmentación de clientes.
Industria
- Control de calidad.
- Mantenimiento predictivo.
- Clasificación de defectos.
Implementación en Python
Scikit-Learn proporciona una implementación sencilla de LDA mediante el módulo LinearDiscriminantAnalysis.
Ejemplo con el dataset Iris
from sklearn.datasets import load_iris
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# Cargar datos
iris = load_iris()
X = iris.data
y = iris.target
# Aplicar LDA
lda = LinearDiscriminantAnalysis(n_components=2)
X_lda = lda.fit_transform(X, y)
print(X.shape)
print(X_lda.shape)
(150, 4)
(150, 2)El conjunto de datos original pasa de cuatro variables a dos componentes discriminantes.
Uso de LDA antes de un clasificador
from sklearn.pipeline import Pipeline
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.linear_model import LogisticRegression
pipeline = Pipeline([
("lda", LinearDiscriminantAnalysis(n_components=2)),
("classifier", LogisticRegression())
])
pipeline.fit(X_train, y_train)
predictions = pipeline.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy:.4f}")
Visualización de los componentes
import matplotlib.pyplot as plt
plt.figure(figsize=(8,6))
plt.scatter(
X_lda[:,0],
X_lda[:,1],
c=y,
cmap="viridis"
)
plt.xlabel("LD1")
plt.ylabel("LD2")
plt.title("Proyección mediante LDA")
plt.show()
Esta representación suele mostrar una separación clara entre las clases, evidenciando el objetivo principal de LDA.
Conclusión
Linear Discriminant Analysis es una de las técnicas de reducción de dimensionalidad supervisada más importantes dentro del ecosistema de Machine Learning. Su capacidad para utilizar las etiquetas de clase y encontrar proyecciones que maximizan la separación entre categorías la convierte en una herramienta especialmente valiosa para problemas de clasificación.
Cuando los datos cumplen razonablemente sus supuestos estadísticos, LDA puede reducir significativamente la complejidad del conjunto de datos, mejorar la interpretabilidad y aumentar el rendimiento de los modelos predictivos. Aunque existen métodos más sofisticados para escenarios no lineales, sigue siendo una técnica fundamental que todo profesional de Data Science debería conocer y dominar.