S21L06 – Naive Bayes Gaussiano en Python

Implementando Gaussian Naive Bayes en Python: Una Guía Completa

Tabla de Contenidos

  1. Introducción a Gaussian Naive Bayes
  2. Entendiendo el Conjunto de Datos
  3. Preprocesamiento de Datos
    1. Manejo de Datos Faltantes
    2. Codificación de Variables Categóricas
    3. Selección de Características
    4. Escalado de Características
  4. Implementación del Modelo
    1. K-Vecinos Más Cercanos (KNN)
    2. Regresión Logística
    3. Gaussian Naive Bayes
  5. Evaluación del Modelo
  6. Visualización de Límites de Decisión
  7. Ajuste de Hiperparámetros
  8. Conclusión
  9. Referencias

1. Introducción a Gaussian Naive Bayes

Gaussian Naive Bayes (GNB) es un algoritmo de clasificación probabilístico basado en el Teorema de Bayes, que asume que las características siguen una distribución normal. Es particularmente efectivo para datos continuos y ofrece simplicidad en la implementación con requerimientos computacionales relativamente bajos. A pesar de sus suposiciones simplistas, GNB a menudo ofrece un rendimiento notable, especialmente en tareas de clasificación de texto y diagnóstico médico.

Características Clave de Gaussian Naive Bayes:

  • Modelo Probabilístico: Proporciona probabilidades para las predicciones.
  • Suposición de Independencia de Características: Simplifica el cálculo al asumir la independencia de las características.
  • Eficiencia: Fases de entrenamiento y predicción rápidas.

2. Entendiendo el Conjunto de Datos

Para nuestra implementación, utilizaremos dos conjuntos de datos:

  1. Conjunto de Datos de Flores Iris: Un conjunto de datos clásico en aprendizaje automático, que comprende 150 muestras de flores iris de tres especies diferentes (Setosa, Virginica y Versicolor). Cada muestra tiene cuatro características: longitud del sépalo, ancho del sépalo, longitud del pétalo y ancho del pétalo.
  2. Conjunto de Datos WeatherAUS: Obtenido de Kaggle, este conjunto de datos contiene datos meteorológicos de estaciones meteorológicas australianas, incluyendo características como temperatura, precipitaciones, humedad y velocidad del viento.

3. Preprocesamiento de Datos

Un preprocesamiento de datos efectivo es crucial para construir modelos de aprendizaje automático robustos. Recorreremos los pasos esenciales de preprocesamiento aplicados al conjunto de datos WeatherAUS.

a. Manejo de Datos Faltantes

Los datos faltantes pueden distorsionar los resultados de tu análisis. Empleamos dos estrategias para manejar los valores faltantes:

  • Características Numéricas: Imputadas utilizando la estrategia de la media.
  • Características Categóricas: Imputadas utilizando la estrategia de la más frecuente.

b. Codificación de Variables Categóricas

Los algoritmos de aprendizaje automático requieren entrada numérica. Aplicamos Codificación de Etiquetas y Codificación One-Hot para transformar variables categóricas.

c. Selección de Características

Para mejorar el rendimiento del modelo y reducir el costo computacional, seleccionamos las características más relevantes usando el método SelectKBest con la función de puntaje Chi-Cuadrado.

d. Escalado de Características

Estandarizar las características asegura que cada característica contribuya de manera equitativa al resultado, lo cual es especialmente importante para algoritmos basados en distancia como KNN.

4. Implementación del Modelo

Implementaremos tres modelos de clasificación: K-Vecinos Más Cercanos (KNN), Regresión Logística y Gaussian Naive Bayes.

a. K-Vecinos Más Cercanos (KNN)

KNN clasifica un punto de datos basándose en la etiqueta mayoritaria de sus vecinos más cercanos.

Output:

b. Regresión Logística

La Regresión Logística modela la probabilidad de una variable dependiente categórica.

Output:

c. Gaussian Naive Bayes

GaussianNB asume que los valores continuos asociados con cada clase están distribuidos normalmente.

Output:

5. Evaluación del Modelo

La evaluación del modelo es esencial para entender qué tan bien tus modelos se desempeñan con datos no vistos. Utilizamos el Score de Precisión como nuestra métrica principal.

Modelo Precisión
K-Vecinos Más Cercanos (KNN) 80%
Regresión Logística 83%
Gaussian Naive Bayes 80%

Entre los modelos probados, Regresión Logística supera a KNN y Gaussian Naive Bayes en este conjunto de datos, destacando la importancia de la selección del modelo basada en las características de los datos.

6. Visualización de Límites de Decisión

Visualizar los límites de decisión ayuda a entender cómo diferentes clasificadores separan los datos. Utilizaremos el conjunto de datos de Flores Iris para este propósito.

Visualizaciones:
  1. K-Vecinos Más Cercanos (KNN): Captura límites más complejos basados en la proximidad.
  2. Regresión Logística: Límites de decisión lineales.
  3. Gaussian Naive Bayes: Límites curvos debido a las suposiciones probabilísticas.

7. Ajuste de Hiperparámetros

Mientras que nuestros experimentos iniciales proporcionan un buen punto de partida, afinar los hiperparámetros puede mejorar aún más el rendimiento del modelo. Técnicas como Búsqueda de Grid y Búsqueda Aleatoria pueden emplearse para encontrar el conjunto óptimo de hiperparámetros para cada clasificador.

8. Conclusión

Implementar Gaussian Naive Bayes en Python es directo, gracias a bibliotecas como scikit-learn. A pesar de su simplicidad, GNB ofrece un rendimiento competitivo, lo que lo convierte en una herramienta valiosa en el arsenal de aprendizaje automático. Sin embargo, como se demostró, el rendimiento del modelo depende de la naturaleza del conjunto de datos. La Regresión Logística, por ejemplo, superó a GNB y KNN en nuestros experimentos con el conjunto de datos WeatherAUS.

Principales Conclusiones:

  • Preprocesamiento de Datos: Manejar datos faltantes y codificar variables categóricas son pasos críticos.
  • Selección de Características: Seleccionar características relevantes puede mejorar el rendimiento del modelo y reducir la carga computacional.
  • Selección de Modelo: Siempre experimenta con múltiples modelos para identificar el mejor desempeño para tu conjunto de datos específico.
  • Visualización: Entender los límites de decisión proporciona insights sobre cómo los modelos segregan los datos.

Siguiendo los pasos delineados en esta guía, puedes implementar y evaluar efectivamente Gaussian Naive Bayes junto con otros algoritmos de clasificación para tomar decisiones informadas en tus proyectos de aprendizaje automático.

9. Referencias

Comparte tu aprecio