Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Redes neuronales desde cero, Unidad 1 — De modelos clásicos a redes neuronales, 1.1 — Limitaciones del Machine Learning clásico ·

Feature engineering manual

Feature engineering manual

Introducción

El feature engineering es un componente crítico en la construcción de modelos predictivos y esencial para superar las limitaciones de los modelos de machine learning clásicos. A diferencia de otros aspectos del aprendizaje automático, el feature engineering no es una tarea que se pueda automatizar o delegar por completo a algoritmos; requiere un profundo entendimiento de la problemática y del dominio en el que se aplica. En este artículo, exploraremos las razones por las cuales el feature engineering es crucial para mejorar el rendimiento de los modelos de machine learning, proporcionaremos ejemplos prácticos y discutiremos errores comunes a evitar.

Explicación principal con ejemplos

El feature engineering implica la selección, transformación y creación de características (features) que reflejan mejor las relaciones entre las variables predictivas y la variable objetivo. Esto puede mejorar significativamente el rendimiento del modelo, ya que permite al algoritmo entender mejor los patrones en los datos.

Ejemplo práctico: Predecir el precio de una vivienda

Supongamos que estamos trabajando en un problema de predicción del precio de las viviendas. Las características básicas podrían ser la ubicación, el tamaño (en metros cuadrados), y el número de habitaciones. Sin embargo, estas características pueden no ser suficientes para predecir con precisión el precio.

Transformando características

  • Ubicación: En lugar de codificar la ubicación como un texto nominal, podríamos transformarla en una característica numérica utilizando técnicas como One-Hot Encoding o mapeándola a coordenadas geográficas y usando distancias.
  • Tamaño del hogar (metros cuadrados): Podemos crear nuevas características basadas en este atributo, como el área total dividida por el número de habitaciones (m2_por_habitacion), o el logaritmo natural del tamaño (log_m2).
  • Número de habitaciones: Podemos agregar características interactivas con otras variables, como el producto del número de habitaciones y la superficie (hab_x_m2), que puede capturar mejor las dinámicas del mercado inmobiliario.

Código en Python

import pandas as pd

# Ejemplo de DataFrame con datos de viviendas
df = pd.DataFrame({
    'ubicacion': ['Barrio A', 'Barrio B', 'Barrio C'],
    'm2': [150, 80, 200],
    'habitaciones': [3, 2, 4]
})

# Transformación de características
df['log_m2'] = df['m2'].apply(lambda x: round(np.log(x), 2))
df['m2_por_habitacion'] = df['m2'] / df['habitaciones']
df['hab_x_m2'] = df['habitaciones'] * df['m2']

# Mostrar DataFrame transformado
print(df)

Errores típicos / trampas

El feature engineering puede ser una fase compleja y llena de desafíos. A continuación, discutiremos algunos errores comunes a evitar:

  1. Underfitting: Crear features demasiado simples o poco informativas puede llevar al underfitting, donde el modelo no puede capturar los patrones en los datos. Por ejemplo, usar únicamente la ubicación sin transformaciones podría resultar en un modelo que no se ajusta a las variaciones geográficas.
  1. Overfitting: Crear demasiadas features o complejas características puede llevar al overfitting, donde el modelo aprende tanto los patrones reales como los ruidos del conjunto de entrenamiento. Esto es particularmente problemático si la transformación se realiza en base a datos de entrenamiento y luego se aplica a datos de prueba.
  1. Biased features: Si las características están sesgadas o reflejan parcialidades, el modelo puede aprender esos sesgos. Por ejemplo, usar variables como "edad" sin considerar el contexto cultural podría llevar al modelado de estereotipos que no son generalizables.

Checklist accionable

A continuación, se presentan algunos pasos a seguir para mejorar la calidad del feature engineering:

  1. Entender completamente los datos: Analizar las estadísticas descriptivas y las relaciones entre variables es fundamental.
  2. Explorar transformaciones de variables numéricas: Logaritmos, raíces cuadradas, y otras funciones pueden ayudar a estabilizar la varianza o a capturar relaciones no lineales.
  3. Codificar variables categóricas adecuadamente: Utiliza One-Hot Encoding para variables nominales o técnicas como Target Encoding para variables ordinales.
  4. Generar características interactivas: Producto, cociente y otras combinaciones de features pueden capturar relaciones complejas.
  5. Reducir la dimensionalidad: Técnicas como PCA pueden ayudar a reducir el número de características sin perder mucha información.
  6. Validación cruzada: Evalúa consistentemente el rendimiento del modelo en diferentes subconjuntos de datos para evitar overfitting.

Cierre: Siguientes pasos

El feature engineering es una parte crucial y desafiante del desarrollo de modelos predictivos. Siguiendo las mejores prácticas y aprendiendo a crear características que reflejen mejor los patrones detrás de los datos, podrás mejorar significativamente el rendimiento de tus modelos.

  • Investiga más: Lee sobre diferentes técnicas de feature engineering en recursos especializados.
  • Practica: Aplica las técnicas en proyectos reales para entender mejor cómo funcionan en la práctica.
  • Reflexiona: Analiza constantemente si las características que has creado están capturando realmente lo importante o si necesitas hacer ajustes.

En resumen, el feature engineering es una disciplina que requiere tanto conocimiento teórico como experiencia práctica. Siguiendo los pasos adecuados y aprendiendo de tus errores, podrás mejorar significativamente la calidad de tus modelos predictivos.

Contacto

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