Técnica bem parecida com o que vimos em Naive Bayes.
A diferença é que não assumimos que as componentes de \(\mathbf X\), condicionadas à classe, sejam independentes.
Quando usamos a distribuição Normal para modelar a distribuição conjunta dos preditores \(\mathbf X\) para cada classe, temos os algoritmos conhecidos como Análise Discriminante Linear (LDA) ou Quadrática (QDA).
Já vimos anteriormente que podemos aplicar o Teorema de Bayes para estimar \(P(Y = c | X = x)\): \[P(Y = c | X = x) = \frac{P(X = x | Y = c)P(Y = c)}{P (X = x )}.\] Reescrevendo de uma maneira ligeiramente diferente, temos: \[P(Y = c | X = x) = \frac{\pi_c f_c(x)}{\sum_{c \in \mathcal C} \pi_c f_c(x)}, \qquad \mbox{sendo}\]
Pela regra de Bayes, classificamos uma nova observação à classe com maior probabilidade \(P(Y = c | X = x)\).
Veja que classificar uma nova observação de acordo com a maior probabilidade em cada classe, se resume a classificar de acordo com \(\pi_c f_c(x)\)
Na Regressão Logística, a estimação dos parâmetros é bem instável quando as classes são bem separadas. A Análise Discriminante não sofre com esse problema.
Quando \(n\) é pequeno e a distribuição dos preditores \(X\) é aproximadamente normal em cada classe, a LDA é mais estável que a Regressão Logística.
LDA é bem popular quando temos respostas com mais de duas classes \(c > 2\).
Vamos considerar inicialmente o caso em que temos apenas um preditor \(X\).
A densidade de \(X\) em cada classe \(c\) segue uma distribuição \(N(\mu_c, \sigma^2_c)\): \[f_c(x) = \frac{1}{\sqrt{2\pi} \sigma_c} \exp \left[-\frac{1}{2} \left( \frac{x - \mu_c}{\sigma_c} \right)^2 \right].\] Vamos assumir que \(\sigma^2_c = \sigma^2\).
Colocando essa densidade na fórmula de Bayes, temos: \[p_c(x) = P(Y = c | X = x) = \frac{\pi_c \frac{1}{\sqrt{2\pi} \sigma} \exp\left[-\frac{1}{2} \left( \frac{x - \mu_c}{\sigma} \right)^2 \right]}{\sum_{c \in \mathcal C} \pi_c \frac{1}{\sqrt{2\pi} \sigma} \exp\left[-\frac{1}{2} \left( \frac{x - \mu_c}{\sigma} \right)^2 \right]}.\]
Para classificar uma nova observação dado \(X=x\), verificamos qual \(p_c(x)\) é o maior.
Tomando logaritmos e descartando termos que não dependem de \(c\), vemos que isso é equivalente é assinalar \(x\) à classe com maior discriminante score: \[\delta_c (x) = x \frac{\mu_c}{\sigma^2} - \frac{\mu_c^2}{2\sigma^2} + \log(\pi_c).\]
Note que \(\delta_c (x)\) é uma função linear de \(x\).
Se temos \(c=2\) e \(\pi_1 = \pi_2 = 0.5\), então a fronteira de decisão é no ponto: \[x = \frac{\mu_1 + \mu_2}{2}.\]
Nesse exemplo, \(\pi_1 = \pi_2 = 0.5\), \(\mu_1 = -1.25\), \(\mu_2 = 1.25\) e \(\sigma = 1\). A linha pontilhada representa a fronteira de decisão.
Tipicamente temos apenas os dados de treinamento e, portanto, não conhecemos esses parâmetros. Mas eles podem ser estimados e substituídos na regra.
Em geral, \[\begin{aligned} \widehat \pi_c &= \frac{n_c}{n} \qquad \qquad \widehat \mu_c = \frac{1}{n_c} \sum_{i: y_i = c} x_i \\ \widehat \sigma^2 &= \frac{1}{n - C} \sum_{c=1}^C \sum_{i: y_i = c} (x_i - \widehat \mu_c)^2. \end{aligned}\]
O classificador LDA usa essa estimativas e classifica uma observação para a qual \(X=x\) como pertencente à classe com maior score discriminante estimado: \[\widehat \delta_c (x) = x \frac{\widehat \mu_c}{\widehat \sigma^2} - \frac{\widehat \mu_c^2}{2 \widehat \sigma^2} + \log(\widehat \pi_c).\]
Considere o caso em que \(p > 1\), ou seja, múltiplos preditores.
Usamos exatamente a mesma ideia, exceto que a função de densidade \(f(x)\) é modelada usando a normal multivariada.
Nota: Em Naive Bayes, a densidade conjunta é modelada como o produto das marginais (independência dos preditores em cada classe).

Densidade: \[\displaystyle f_c(x) = \frac{1}{(2\pi)^{p/2} |\Sigma|^{1/2}} \exp \left[ -\frac{1}{2} (x - \mu_c)^T \Sigma^{-1} (x - \mu_c) \right]\]
Função Discriminante Linear: \(\displaystyle \delta_c (x) = x^T \Sigma^{-1} \mu_c - \frac{1}{2} \mu_c^T \Sigma^{-1} \mu_c + \log(\pi_c).\)
Apesar da forma parecer complicada, ainda é uma função linear de x.
A fronteira de decisão entre cada par de classe \(k\) e \(l\) é definida por: \[\{x: \delta_k (x) = \delta_l (x)\}.\]
Nesse exemplo, temos dois preditores \(X_1\) e \(X_2\).
Três classes: \(\pi_1 = \pi_2 = \pi_3 = 1/3\) e matriz de variância-covariância comum.
Esquerda: As elipses representam 95% de probabilidade de cada classe.
Direita: 20 observações de cada classe e as linhas pretas representam as fronteiras de decisão por LDA.
As linhas pontilhadas representam as fronteiras de decisão de Bayes.
Defaultlibrary(MASS) lda.fit <- lda(default ~ balance + income, train, prior = c(1, 1)/2) lda.pred <- predict(lda.fit, test)$class cm.lda <- confusionMatrix(lda.pred, test$default) cm.lda$table
## Reference ## Prediction No Yes ## No 170 11 ## Yes 30 88
cm.lda$overall[1]
## Accuracy ## 0.8629
LDA assume que cada classe tem a mesma matriz de variância-covariância.
Se essa suposição estiver muito longe da realidade, LDA pode ter um desempenho bem ruim.
Análise Discriminante Quadrática (QDA) segue a mesma ideia que LDA, exceto que permite matrizes de variância-covariância \(\Sigma_c\) distintas para cada classe.
Densidade: \(\displaystyle f_c(x) = \frac{1}{(2\pi)^{p/2} |\Sigma_c|^{1/2}} \exp \left[ -\frac{1}{2} (x - \mu_c)^T \Sigma_c^{-1} (x - \mu_c) \right]\)
Função Discriminante Quadrática: \[\displaystyle \delta_c (x) = - \frac{1}{2} (x - \mu_c)^T \Sigma_c^{-1} (x - \mu_c) -\frac{1}{2}\log |\Sigma_c| + \log(\pi_c).\] Veja que essa função é quadrática em x.

Fronteiras de Decisão:
Bayes (ótima): roxa tracejada
LDA: preta pontilhada
QDA: verde sólida
Esquerda: variâncias das classes são iguais (LDA ajusta melhor)
Direita: variâncias das classes não são iguais (QDA ajusta melhor)
Defaultqda.fit <- qda(default ~ balance + income, train, prior = c(1, 1)/2) qda.pred <- predict(qda.fit, test)$class cm.qda <- confusionMatrix(qda.pred, test$default) cm.qda$table
## Reference ## Prediction No Yes ## No 170 11 ## Yes 30 88
cm.qda$overall[1]
## Accuracy ## 0.8629
Slides produzidos pelas professoras:
Algumas figuras foram retiradas dos livros ELS e ISLR com permissão dos autores.