Ingeniería de características
La ingeniería de características consiste en crear nuevas variables a partir de las existentes para mejorar el rendimiento del modelo. Es una de las técnicas más poderosas en Machine Learning y puede marcar la diferencia entre un modelo mediocre y uno excelente.
Tabla de contenidos
- Qué es la ingeniería de características
- Por qué es importante
- Transformaciones matemáticas
- Codificación de variables categóricas
- Variables temporales
- Combinación de características
- Ejercicios
- Mini‑proyecto
1. Qué es la ingeniería de características
Es el proceso de crear nuevas variables que ayuden al modelo a aprender mejor.
# Ejemplo conceptual
edad → grupo_edad
ingresos → ingresos_log
fecha → día, mes, año
2. Por qué es importante
- Mejora la capacidad del modelo para aprender patrones
- Reduce ruido
- Permite representar relaciones no lineales
- Puede aumentar la precisión significativamente
3. Transformaciones matemáticas
Algunas variables funcionan mejor transformadas.
# Log transform
df["ingresos_log"] = np.log(df["ingresos"] + 1)
# Escalado
from sklearn.preprocessing import StandardScaler
df_scaled = scaler.fit_transform(df)
4. Codificación de variables categóricas
Los modelos no pueden trabajar con texto, así que las categorías deben codificarse.
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder()
X_encoded = encoder.fit_transform(df[["ciudad"]])
5. Variables temporales
Las fechas contienen mucha información útil.
df["año"] = df["fecha"].dt.year
df["mes"] = df["fecha"].dt.month
df["día_semana"] = df["fecha"].dt.dayofweek
6. Combinación de características
A veces la relación entre dos variables es más útil que cada una por separado.
# Interacción
df["ingresos_por_edad"] = df["ingresos"] / df["edad"]
# Producto
df["ingresos_x_edad"] = df["ingresos"] * df["edad"]
7. Ejercicios
- Crea una transformación logarítmica.
- Codifica una variable categórica.
- Extrae año, mes y día de una fecha.
- Crea una característica combinada.
- Explica por qué la ingeniería de características mejora el modelo.
# pista log
np.log(df["columna"] + 1)
# pista fecha
df["fecha"].dt.year
8. Mini‑proyecto: Ingeniería completa
Toma un dataset real y realiza:
- Transformaciones matemáticas
- Codificación categórica
- Variables temporales
- Combinación de características
- Comparación de modelos con y sin ingeniería