S21L06 – Naive Bayes Gaussiano em Python

Implementando Gaussian Naive Bayes em Python: Um Guia Abrangente

Índice

  1. Introdução ao Gaussian Naive Bayes
  2. Entendendo o Conjunto de Dados
  3. Pré-processamento de Dados
    1. Tratamento de Dados Faltantes
    2. Codificação de Variáveis Categóricas
    3. Seleção de Características
    4. Escalonamento de Características
  4. Implementação do Modelo
    1. K-Nearest Neighbors (KNN)
    2. Regressão Logística
    3. Gaussian Naive Bayes
  5. Avaliação do Modelo
  6. Visualização de Fronteiras de Decisão
  7. Ajuste de Hiperparâmetros
  8. Conclusão
  9. Referências

1. Introdução ao Gaussian Naive Bayes

Gaussian Naive Bayes (GNB) é um algoritmo de classificação probabilística baseado no Teorema de Bayes, assumindo que as características seguem uma distribuição normal. É particularmente eficaz para dados contínuos e oferece simplicidade na implementação com requisitos computacionais relativamente baixos. Apesar de suas suposições simplistas, o GNB frequentemente apresenta um desempenho notavelmente bom, especialmente em tarefas de classificação de texto e diagnóstico médico.

Principais Características do Gaussian Naive Bayes:

  • Modelo Probabilístico: Fornece probabilidades para as previsões.
  • Assunção de Independência das Características: Simplifica o cálculo ao assumir independência entre as características.
  • Eficiência: Fases de treinamento e previsão rápidas.

2. Entendendo o Conjunto de Dados

Para nossa implementação, utilizaremos dois conjuntos de dados:

  1. Conjunto de Dados de Flores Iris: Um conjunto de dados clássico em aprendizado de máquina, composto por 150 amostras de flores de íris de três espécies diferentes (Setosa, Virginica e Versicolor). Cada amostra possui quatro características: comprimento da sépala, largura da sépala, comprimento da pétala e largura da pétala.
  2. Conjunto de Dados WeatherAUS: Obtido de Kaggle, este conjunto de dados contém dados meteorológicos de estações de tempo australianas, incluindo características como temperatura, precipitação, umidade e velocidade do vento.

3. Pré-processamento de Dados

Um pré-processamento eficaz dos dados é crucial para a construção de modelos de aprendizado de máquina robustos. Vamos percorrer as etapas essenciais de pré-processamento aplicadas ao conjunto de dados WeatherAUS.

a. Tratamento de Dados Faltantes

Dados faltantes podem distorcer os resultados da sua análise. Utilizamos duas estratégias para lidar com valores ausentes:

  • Características Numéricas: Imputadas usando a estratégia da média.
  • Características Categóricas: Imputadas usando a estratégia mais frequente.

b. Codificação de Variáveis Categóricas

Algoritmos de aprendizado de máquina requerem entrada numérica. Aplicamos Label Encoding e One-Hot Encoding para transformar variáveis categóricas.

c. Seleção de Características

Para melhorar o desempenho do modelo e reduzir o custo computacional, selecionamos as características mais relevantes usando o método SelectKBest com a função de pontuação Qui-Quadrado.

d. Escalonamento de Características

Padronizar as características garante que cada uma contribua igualmente para o resultado, o que é especialmente importante para algoritmos baseados em distância como o KNN.

4. Implementação do Modelo

Implementaremos três modelos de classificação: K-Nearest Neighbors (KNN), Regressão Logística e Gaussian Naive Bayes.

a. K-Nearest Neighbors (KNN)

O KNN classifica um ponto de dados com base na maioria das etiquetas de seus vizinhos mais próximos.

Output:

b. Regressão Logística

A Regressão Logística modela a probabilidade de uma variável dependente categórica.

Output:

c. Gaussian Naive Bayes

O GaussianNB assume que os valores contínuos associados a cada classe são distribuídos normalmente.

Output:

5. Avaliação do Modelo

A avaliação do modelo é essencial para entender quão bem seus modelos performam em dados não vistos. Utilizamos a Precisão (Accuracy Score) como nossa métrica principal.

Modelo Precisão
K-Nearest Neighbors (KNN) 80%
Regressão Logística 83%
Gaussian Naive Bayes 80%

Entre os modelos testados, a Regressão Logística supera o KNN e o Gaussian Naive Bayes neste conjunto de dados, destacando a importância da seleção do modelo com base nas características dos dados.

6. Visualização de Fronteiras de Decisão

Visualizar as fronteiras de decisão ajuda a entender como diferentes classificadores separam os dados. Utilizaremos o conjunto de dados de Flores Iris para este propósito.

Visualizações:
  1. K-Nearest Neighbors (KNN): Captura fronteiras mais complexas baseadas na proximidade.
  2. Regressão Logística: Fronteiras de decisão lineares.
  3. Gaussian Naive Bayes: Fronteiras curvas devido às suposições probabilísticas.

7. Ajuste de Hiperparâmetros

Embora nossos experimentos iniciais forneçam um bom ponto de partida, o ajuste fino dos hiperparâmetros pode ainda mais aprimorar o desempenho do modelo. Técnicas como Grid Search e Random Search podem ser empregadas para encontrar o conjunto ótimo de hiperparâmetros para cada classificador.

8. Conclusão

Implementar Gaussian Naive Bayes em Python é direto, graças a bibliotecas como o scikit-learn. Apesar de sua simplicidade, o GNB oferece um desempenho competitivo, tornando-se uma ferramenta valiosa no arsenal de aprendizado de máquina. No entanto, como demonstrado, o desempenho do modelo depende da natureza do conjunto de dados. A Regressão Logística, por exemplo, superou o GNB e o KNN em nossos experimentos com o conjunto de dados WeatherAUS.

Principais Aprendizados:

  • Pré-processamento de Dados: Tratar dados faltantes e codificar variáveis categóricas são passos críticos.
  • Seleção de Características: Selecionar características relevantes pode melhorar o desempenho do modelo e reduzir a sobrecarga computacional.
  • Seleção de Modelo: Sempre experimente múltiplos modelos para identificar o melhor desempenhador para seu conjunto de dados específico.
  • Visualização: Entender as fronteiras de decisão fornece insights sobre como os modelos segregam os dados.

Seguindo os passos delineados neste guia, você pode implementar e avaliar efetivamente o Gaussian Naive Bayes juntamente com outros algoritmos de classificação para tomar decisões informadas em seus projetos de aprendizado de máquina.

9. Referências

Partilhe o seu amor