O aprendizado de máquina supervisionado é uma forma de ensinar um computador a reconhecer padrões e fazer previsões com base em exemplos. Funciona como um professor treinando um aluno: mostramos ao computador vários exemplos de entrada e a resposta correta para cada um. Com o tempo, ele aprende a reconhecer relações entre os dados e pode fazer previsões para novos casos.
Neste projeto, vamos criar um modelo desse tipo usando uma técnica chamada Análise Discriminante Linear (LDA). Essa técnica ajuda a separar grupos dentro dos dados, facilitando a classificação de novas informações.
A análise discriminante é uma técnica da estatística multivariada utilizada para discriminar e classificar objetos em diferentes grupos. De acordo com KHATTREE & NAIK (2000), essa abordagem visa estudar a separação de objetos dentro de uma população, dividindo-os em duas ou mais classes distintas. A base da análise discriminante é o Teorema de Bayes, expresso pela seguinte fórmula:
\[ Pr(Y = k \mid X = x) = \frac{\pi_k f_k(x)}{\sum_{l=1}^{K} \pi_l f_l(x)} \]
Onde:
- \(Pr(Y = k \mid X = x)\) é a
probabilidade de a observação pertencer à classe \(k\) dado o vetor de características \(X = x\).
- \(\pi_k\) é a probabilidade a priori
da classe \(k\).
- \(f_k(x)\) é a função de densidade
condicional de \(X = x\) dado que \(Y = k\).
- \(\sum_{l=1}^{K} \pi_l f_l(x)\) é a
soma ponderada das densidades para todas as classes, garantindo que a
probabilidade total seja 1.
Que calcula a probabilidade posteriori, do valor observado pertencer a classe K, dado o valor predito da observação.
Considerando \(\mu\){k} e \(\sigma\){k}^2 como média e variância, respectivamente, como parâmetros da classe K. Assumindo a matriz de covariância para todas as classes igualitária, tem-se que a função LDA é dada por:
\[ x^{T}\Sigma^{-1}\mu_{k} - \frac{1}{2}\mu_{k}^{T}\Sigma^{-1}\mu_{k} = x^{T}\Sigma^{-1}\mu_{l} - \frac{1}{2}\mu_{l}^{T}\Sigma^{-1}\mu_{l} \]
para quando, k \(\neq\) \(l\) o log(\(\pi_{k}\)) desaparece, pois a proporção para cada classe de observações treinadas, são iguais. Os parâmetros precisam ser estimados, e as fórmulas são as mesmas.
Vamos utilizar dados de prontuário contendo informações de 200 pacientes, como idade, sexo, pressão arterial (BP), colesterol (nível de colesterol) e Na_to_K (níveis de sais). Com base nesses dados, é prescrito um medicamento (Drug), que pode ser “drugY”, “drugC”, “drugX”, “drugA” ou “drugB”.
O objetivo do problema é construir um modelo de Machine Learning capaz de prever qual droga um novo paciente receberá com base em suas características. Para isso, será utilizada uma Análise Discriminante Linear Multiclasse. Para facilitar a interpretação do modelo, a previsão será limitada às drogas “drugA”, “drugY” e “drugX”, que são as classes com maior quantidade no conjunto de dados.
Para construção do modelo, os dados são separados em 70% das observações para treinar o modelo e 30% para testar a capacidade preditiva do modelo, em que os dados são selecionados de forma aleatória.
A partir da saída do modelo, observa-se que mais de 50% das observações no conjunto de treino são atribuídas à droga do tipo Y, seguida pela droga X, com mais de 30% das observações. Além disso, é calculada a média das variáveis preditoras para cada tipo de droga. As discrimantes LD1 e LD2 também são apresentadas, sendo que LD1 contém 65,3% das observações e LD2 retém 34,7% da informação.
| Droga | Priori |
|---|---|
| DrogaA | 0.143 |
| DrogaX | 0.319 |
| DrogaY | 0.538 |
| Idade | SexoM | BPLOW | BPNORMAL | ColesterolNORMAL | Na_to_K | |
|---|---|---|---|---|---|---|
| drugA | 37.00000 | 0.6470588 | 0.0000000 | 0.0000000 | 0.4705882 | 11.02606 |
| drugX | 42.57895 | 0.5263158 | 0.2894737 | 0.7105263 | 0.6315789 | 10.39842 |
| drugY | 43.23438 | 0.4687500 | 0.2812500 | 0.2968750 | 0.5156250 | 21.94073 |
| LD1 | LD2 | |
|---|---|---|
| Idade | 0.0137815 | 0.0013033 |
| SexoM | -0.1611091 | 0.2124692 |
| BPLOW | -0.7555265 | -2.3459769 |
| BPNORMAL | -1.0945193 | -2.9120286 |
| ColesterolNORMAL | -0.4787124 | -0.6689727 |
| Na_to_K | 0.1947835 | -0.0798926 |
| Discrimante | Proporcão |
|---|---|
| LD1 | 65.3 |
| LD2 | 34.7 |
Para avaliar a performance do modelo, são realizadas predições utilizando o conjunto de dados de teste, resultando na classe predita. Em seguida, as predições são comparadas com os valores reais do conjunto de teste (y original).
Para avaliar o desempenho geral do modelo, é construída uma matriz de confusão para identificar os erros de classificação. A análise da matriz revela que o modelo cometeu dois erros: classificou incorretamente uma observação da droga Y como A e outra da droga Y como X. Com isso, o modelo alcançou uma acurácia de 96%, ou seja, foi capaz de prever corretamente 47 das 49 observações no conjunto de teste.
| Métrica | Valor |
|---|---|
| Acurácia | 95.91837 |
| Sensitividade | 96.68210 |
| Especificidade | 97.70965 |
No entanto, a performance do modelo pode estar sendo afetada pelo problema de overfitting, que ocorre quando o modelo se ajusta excessivamente aos dados de treino, dificultando sua capacidade de generalização. Uma possível solução para avaliar a capacidade de generalização do modelo LDA é utilizar a validação cruzada. Esse método consiste em realizar n amostragens de tamanho m nos dados de treino, treinando o modelo n vezes. Para este exemplo, foi escolhida a estratégia de realizar 5 amostras, cada uma com 30 observações de treino. Como resultado, obteve-se uma acurácia média de 87%.
Para analisar como o modelo separa as classes, foi construído um gráfico de dispersão entre as discrimantes LD1 e LD2. Do gráfico de dispersão, tem-se que cada nível de droga está próxima entre si e distante das demais, porém ocorrendo algumas superposições. A droga Y é a que apresenta maior dispersão, enquanto a droga A é a que apresenta menor dispersão. Portanto LD1 e LD2 são capazes de separar as classes, mas não de forma perfeita.