LDA y QDA (análisis discriminante gaussiano)
En simple: lee esto primero
LDA y QDA describen cada clase como una «nube» de puntos con forma de campana y asignan cada punto nuevo a la nube que mejor lo explique.
Imagina dos manchas de tinta en un papel. Para un punto nuevo, preguntas: ¿cae más «adentro» de la mancha azul o de la roja? LDA asume que ambas manchas tienen la misma forma; QDA deja que cada una tenga la suya.
- LDA: misma forma de nube para todas las clases → frontera recta.
- QDA: cada clase con su forma → frontera curva (más flexible, necesita más datos).
- La distancia de Mahalanobis es una distancia «inteligente» que tiene en cuenta la forma de la nube.
- covarianza
- cómo varían juntas dos variables (si una sube, ¿la otra también?). Define la forma de la nube.
- gaussiana multivariada
- la campana en varias dimensiones: una nube ovalada.
- discriminante
- el puntaje que dice qué tan bien encaja el punto en cada clase.
Más abajo viene la versión completa, con fórmulas. Si una palabra aparece subrayada con puntos, pasa el mouse (o tócala) para ver qué significa.
Features correlacionadas necesitan covarianza
Sección titulada «Features correlacionadas necesitan covarianza»La matriz de covarianza da forma a la gaussiana. En 2-D, : la diagonal es la dispersión de cada feature; el término fuera de la diagonal, cuánto se mueven juntas.
| Forma | Modelo | |
|---|---|---|
| (esférica) | círculo | — |
| diagonal | elipse alineada a los ejes | Naive Bayes |
| completa () | elipse inclinada | LDA / QDA |
Leer el exponente: la distancia de Mahalanobis
Sección titulada «Leer el exponente: la distancia de Mahalanobis»Una gaussiana puntúa un punto con un número en su exponente. En 1-D es el z-score al cuadrado, : «¿a cuántas σ del centro?». En varias dimensiones, «dividir por σ» se vuelve multiplicar por , que rota a los ejes de la elipse y divide por la dispersión en cada uno:
La densidad depende de solo por : sus curvas de nivel son las elipses. Dos puntos a la misma distancia euclidiana del centro pueden estar a distinta distancia de Mahalanobis: un paso a lo largo del eje ancho (alta varianza) es «normal» y cuesta menos () que el mismo paso a través del eje angosto (). Mahalanobis = euclidiana medida en las unidades de la propia elipse.
Cada clase, una gaussiana completa
Sección titulada «Cada clase, una gaussiana completa», . La MLE es otra vez contar y promediar:
Dos maneras de usar la dispersión:
- QDA: cada clase conserva su propia (su propia elipse).
- LDA: todas comparten una agrupada (pooled), el promedio ponderado (misma elipse, solo se mueve el centro).
El discriminante: un score gaussiano por clase
Sección titulada «El discriminante: un score gaussiano por clase»sin la constante común:
Se lee: una ventaja por ser clase común, menos qué tan lejos está del centro en unidades de la elipse, menos un castigo por una elipse grande y floja. Expandiendo el término del medio:
- QDA ( propias): el término sobrevive en ⇒ frontera cuadrática (puede envolver a la clase más compacta).
- LDA ( compartida): y son idénticos en todas las clases y se cancelan. Cada score queda lineal, con , y la frontera es
LDA a mano (1-D)
Sección titulada «LDA a mano (1-D)»Medias , , varianza compartida . Especializando:
- Priors iguales: el log es 0 ⇒ , el punto medio («gana la media más cercana»).
- Con : , ⇒ .
- Priors distintos: el término del log desliza hacia la clase más rara, achicando su territorio.
En más dimensiones, es la flecha entre las medias (reescalada por la dispersión compartida) y la frontera es su bisectriz perpendicular (en la métrica de ).
LDA a mano en 1-D
Dos clases gaussianas con la misma varianza σ². Arriba: cada densidad multiplicada por su prior (el área sombreada donde se traslapan es el error de Bayes). Abajo: el posterior que sale de Bayes, que es exactamente una sigmoide.
De LDA a QDA con una perilla
Sección titulada «De LDA a QDA con una perilla»Mezcla cada covarianza entre la agrupada y la propia: . Con es LDA (recta); con , QDA (curva). La frontera se dobla exactamente tanto como difieran las formas/inclinaciones de las elipses.
Costo: LDA ajusta una Σ; QDA una por clase ( números cada una: 3 en 2-D, 465 con ). Más perillas = más varianza = necesita más datos (sesgo–varianza otra vez). Con grande, QDA necesita regularización.
Generativo vs discriminativo
Sección titulada «Generativo vs discriminativo»LDA y la logística llegan a la misma por caminos distintos, y eso cambia su comportamiento según cuántos datos haya (Ng y Jordan, 2001): el generativo aprende más rápido (baja complejidad muestral) y se estanca un poco más arriba; el discriminativo necesita más datos pero termina más abajo.
¿Pocos datos o muchos? Generativo vs discriminativo
Se entrenan Naive Bayes gaussiano (varianza por feature compartida entre clases) y regresión logística casi sin regularizar con n ejemplos (promedio de 12 repeticiones) y se mide el error en 1000 puntos de test. Todo se calcula en tu navegador.
| Generativo (NB, LDA, QDA) | Discriminativo (logística) |
|---|---|
| aprende con pocos ejemplos | menos supuestos: solo la frontera |
| puede generar datos, imputar, detectar outliers | suele ser más preciso con muchos datos |
| agregar una clase es barato | gana cuando los supuestos generativos son falsos |
| pero: supuestos fuertes | pero: necesita más datos; no genera ni imputa |
Regla práctica: ¿pocos datos o necesitas la densidad? → generativo. ¿Muchos datos y solo quieres la etiqueta? → discriminativo.
Ejercicio
Sección titulada «Ejercicio», , , . ¿Dónde está la frontera LDA?
Ver solución
. La frontera se corrió de 2 hacia la clase 1 (la rara): ahora se necesita más evidencia para predecir la clase 1.
Autoevaluación
0/5 correctas · 0 respondidasEn código
Sección titulada «En código»from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDAfrom sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis as QDA
lda = LDA(store_covariance=True).fit(X_tr, y_tr)qda = QDA(reg_param=0.1).fit(X_tr, y_tr) # reg_param encoge Σₖ (útil con d grande)mu, Sigma = lda.means_, lda.covariance_ # medias por clase y Σ agrupadaw = lda.coef_ # = Σ⁻¹(μ₁ − μ₀) en el caso binarioprint(lda.score(X_te, y_te), qda.score(X_te, y_te))lda.predict_proba(X_te[:3]) # posterior σ(wᵀx + b)Para profundizar
Sección titulada «Para profundizar»Fuente ·ML_Course_Generative_Probabilistic_Models.pdf (slides 24–37) · ML_Course/session-05b-lda-qda.ipynb · ML_Course/session-05c-comparing-generative-models.ipynb