Clasificación Multiclase con Regresión Logística en Python

Clase 13 de 17Curso de Regresión Logística con Python y scikit-learn

Resumen

¿Qué es la clasificación múltiple utilizando regresión logística?

La clasificación múltiple es un proceso fundamental en el aprendizaje automático donde se pretende clasificar datos en más de dos categorías diferentes. En el caso de una regresión logística, que se utiliza principalmente para problemas de clasificación binaria, se extiende para abordar problemas de clasificación múltiple. Un ejemplo práctico de esto es el dataset Dry Beans, donde el objetivo es clasificar diferentes tipos de frijoles secos utilizando varias variables numéricas, como el área, el perímetro y la longitud.

¿Cómo preparar un dataset para la regresión logística?

Preparar un dataset de manera adecuada es crucial para el éxito de cualquier modelo de aprendizaje automático. Aquí te presentamos una guía paso a paso sobre la preparación del dataset usado en la regresión logística para múltiples clases:

  1. Carga de Librerías Necesarias: Se requiere el uso de diversas librerías de Python como Pandas para la manipulación de datos, NumPy para cálculos algebraicos, Matplotlib y Seaborn para la visualización de datos, y Scikit-learn para dividir los datos y aplicar la regresión logística.

  2. Carga y Visualización de Datos:

    import pandas as pd
    df = pd.read_csv('ruta/dataset.csv')
    print(df.head())
    
  3. Limpieza de Datos:

    • Eliminación de Duplicados:
      df.drop_duplicates(inplace=True)
      
    • Detección de Valores Nulos:
      print(df.isnull().sum())
      
    • Análisis de Outliers:
      df.describe()
      
  4. Balanceo del Dataset: Mediante la técnica de undersampling, se ajustan las clases al tamaño de la clase minoritaria para evitar sesgos.

    from imblearn.under_sampling import RandomUnderSampler
    undersample = RandomUnderSampler(random_state=42)
    X_res, y_res = undersample.fit_resample(X, y)
    

¿Cómo transformar variables categóricas a numéricas?

En la regresión logística, es esencial que todas las variables sean numéricas. Las variables categóricas deben transformarse de la siguiente manera:

import numpy as np

# Transformación de variables categóricas a numéricas
unique_classes = list(np.unique(y_res))
y_res.replace(unique_classes, list(range(1, len(unique_classes)+1)), inplace=True)

¿Por qué es importante el balanceo de datasets?

Un dataset balanceado es crucial para evitar que el modelo se incline hacia las clases más representativas, lo que podría llevar a un sesgo en las predicciones. Este balanceo se puede lograr mediante técnicas como el undersampling o oversampling.

¿Qué sigue después de preparar el dataset?

Luego de realizar la limpieza y el balanceo del dataset, es importante estandarizar las características del mismo. La estandarización asegura que todas las características tengan una media de cero y una desviación estándar de uno. Este paso se abordará más a fondo junto con el análisis exploratorio en clases posteriores. ¡Te invitamos a continuar explorando y aprendiendo sobre estas técnicas apasionantes en el mundo del aprendizaje automático!