Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Overfitting y underfitting, Unidad 13 — Siguientes pasos, 13.1 — Qué aprender después ·

Feature engineering avanzado

Feature engineering avanzado

Introducción

El feature engineering es una de las etapas más cruciales en el desarrollo de modelos de machine learning. Consiste en seleccionar, transformar y crear características que mejor representen la información relevante para el modelo y minimicen la irrelevancia o ruido innecesario. Una buena estrategia de feature engineering puede mejorar significativamente la precisión del modelo, mientras que una mala implementación puede llevar a overfitting o underfitting. En este artículo, exploraremos los aspectos más importantes del feature engineering avanzado y proporcionaremos una guía práctica para aplicarlo efectivamente.

Explicación principal con ejemplos

El feature engineering involucra varios pasos interrelacionados:

  1. Selección de características: Es fundamental elegir las características que mejor representan la relación entre el conjunto de entrada y la salida deseada. Por ejemplo, en un modelo de predicción del precio de una casa, la superficie total y el número de habitaciones pueden ser buenos indicadores.
  1. Transformación de características: Algunas características pueden no estar en la forma correcta para usarlas directamente por el modelo. Por ejemplo, la edad de los propietarios puede ser más útil cuando se logaritma o se divide por una constante.
  1. Creación de nuevas características: A veces, la combinación de varias características puede generar información adicional valiosa. Por ejemplo, en un modelo de predicción del precio de las acciones, el ratio precio/rentabilidad (P/E) podría ser útil junto con el rendimiento anual.

A continuación, presentamos un ejemplo en Python:

import numpy as np
import pandas as pd

# Ejemplo de conjunto de datos
data = {'edad': [25, 30, 35],
        'ingreso': [50000, 70000, 90000]}
df = pd.DataFrame(data)

# Transformación: Logaritmo natural de la edad
df['log_edad'] = np.log(df['edad'])

# Creación de una nueva característica
df['edad_2'] = df['edad'] ** 2

print(df)

Este ejemplo ilustra cómo transformar y crear nuevas características para mejorar el rendimiento del modelo.

Errores típicos / trampas

  1. Selección de variables irrelevantes: Incorporar características que no aportan información relevante puede ocasionar overfitting y disminuir la interpretabilidad del modelo.
  1. Sobre-transformación: Aplicar transformaciones complejas a las características puede crear nuevas relaciones innecesarias o ruido en los datos.
  1. Ignorar la correlación: Las características deben ser seleccionadas con consideración de su relación entre sí y su relevancia para el problema a resolver, lo cual es crucial para evitar underfitting.

Checklist accionable

  1. Identificar las características más importantes usando técnicas como análisis de importancia de características (Feature Importance) o análisis múltiple del variancia (VIF).
  2. Transformar variables numéricas para mejorar la relación lineal entre ellas y el modelo.
  3. Crear nuevas características a partir de combinaciones o transformaciones de las existentes.
  4. Evaluar regularmente el rendimiento del modelo en conjuntos de entrenamiento, validación y prueba.
  5. Evitar la sobre-transformación aplicando técnicas como PCA para reducir la dimensionalidad del espacio de características.

Cierre con "Siguientes pasos"

Siguientes pasos

  • Evaluación avanzada: Aprender a evaluar el rendimiento de modelos utilizando métricas más sofisticadas y validaciones cruzadas.
  • Optimización: Dominar técnicas para optimizar los hiperparámetros del modelo, como la búsqueda en grilla o la búsqueda aleatoria.
  • Avanzado feature engineering: Explorar técnicas avanzadas de feature engineering, como la aplicación de funciones de kernel a características numéricas y la creación de características temporales basadas en tiempos.

Al seguir estos pasos, se puede lograr un nivel más alto de precisión y confiabilidad en los modelos de machine learning, reduciendo tanto el overfitting como el underfitting.

Contacto

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