Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Feature engineering, Unidad 11 — Riesgos y malas prácticas, 11.1 — Over-engineering ·

Demasiadas variables

Demasiadas variables

Introducción

En el ámbito del aprendizaje automático, la cantidad y calidad de las características (features) que se utilizan para entrenar un modelo son fundamentales. Sin embargo, no todas las características son igual de útiles o necesarias. De hecho, una sobrecarga excesiva de variables puede llevar a modelos menos eficientes y más difíciles de interpretar. Este fenómeno, conocido como over-engineering, se refiere a la inclusión de demasiadas características en un conjunto de datos sin un propósito claro o beneficio real para el rendimiento del modelo.

Explicación principal con ejemplos

El over-engineering puede llevar a modelos ineficientes y difíciles de interpretar. Una de las formas más comunes de caer en este error es incluir variables que no añaden valor significativo al rendimiento del modelo, o incluso pueden perjudicarlo.

Ejemplo práctico: Predicción del precio de una vivienda

Considérese el caso de un modelo de predicción de precios de viviendas. Las características podrían incluir:

features = [
    'superficie_total',  # Tamaño total en metros cuadrados
    'habitaciones',       # Número de habitaciones
    'banos',             # Número de baños
    'garaje',            # ¿Tiene garaje?
    'pis',               # Piso del edificio (1, 2, etc.)
    'distancia_a_centro', # Distancia a la ciudad
    'color_pintura',     # Color de pintura en letras (como 'azul', 'verde')
    'numero_de_paradas'   # Número de paradas de metro más cercanas
]

En este ejemplo, color_pintura podría ser una característica innecesaria. Si las viviendas se clasifican por color, esto no tendrá un impacto significativo en el precio. Además, la cantidad exacta del número de paradas puede no ser relevante si el modelo solo se utiliza para comparar diferentes propiedades.

Errores típicos / trampas

  1. Incluir variables poco relevantes: Como mencionamos anteriormente, incluir variables que no aportan información útil al modelo puede hacerlo menos preciso y más difícil de interpretar.
  2. Overfitting: El over-engineering aumenta la posibilidad de overfitting, donde el modelo se ajusta demasiado bien a los datos de entrenamiento y pierde su capacidad para generalizar a nuevos datos.
  3. Costo computacional: Con un mayor número de variables, el tiempo de entrenamiento del modelo puede aumentar significativamente, lo que es especialmente problemático en proyectos con muchos datos o modelos complejos.

Checklist accionable

  1. Analiza las características relevantes: Identifica cuáles son realmente necesarias para predecir la variable objetivo.
  2. Elimina variables redundantes: Revisa si hay características que pueden ser eliminadas ya que están altamente correlacionadas con otras o no aportan valor significativo.
  3. Evita overfitting: Usa técnicas como validación cruzada y regularización para prevenir el ajuste excesivo al conjunto de datos de entrenamiento.
  4. Mide la importancia de las características: Utiliza métodos como la eliminación recursiva de características (RFECV) o análisis de importancia de características en modelos como los árboles para identificar las más relevantes.
  5. Prueba modelos con diferentes conjuntos de variables: Realiza pruebas con subconjuntos reducidos de variables para evaluar su impacto en el rendimiento del modelo.

Cierre

Siguientes pasos

  1. Reanálisis de datos: Aplica los consejos proporcionados y realiza un nuevo análisis de las características que se incluyen en tu conjunto de datos.
  2. Implementación iterativa: Continúa mejorando el proceso iterativamente, ajustando y optimizando las características según sea necesario.
  3. Validación: Evalúa regularmente la eficacia del over-engineering en diferentes proyectos para aprender sobre sus efectos a largo plazo.

El over-engineering puede ser una trampa fácil de caer, pero con un enfoque cuidadoso y un conjunto de herramientas adecuadas, puedes evitarlo y mejorar significativamente el rendimiento de tus modelos de machine learning.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).