Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Overfitting y underfitting, Unidad 5 — Underfitting: causas habituales, 5.1 — Modelos demasiado simples ·

Supuestos incorrectos

Supuestos incorrectos

Introducción

La ciencia de datos es una disciplina que busca modelar la realidad a través de algoritmos y modelos. Sin embargo, al crear estos modelos, se corre el riesgo de hacer supuestos que no son precisos o válidos con respecto a la problemática real. Estos supuestos incorrectos pueden llevar a modelos underfitting, es decir, modelos que carecen de capacidad para capturar las relaciones subyacentes en los datos y, por lo tanto, no son útiles para hacer predicciones precisas.

Explicación principal con ejemplos

Los supuestos incorrectos pueden surgir desde la elección inicial del modelo hasta el procesamiento de los datos. Por ejemplo, si se utiliza un modelo lineal donde las relaciones en los datos son intrínsecamente no lineales, se está haciendo un supuesto erróneo que limitará la capacidad del modelo para capturar estas relaciones. Esto es especialmente problemático cuando se trata con datos complejos que tienen muchas variables y relaciones no lineales.

Ejemplo de código

Supongamos que estamos trabajando en una tarea de clasificación binaria donde las características están relacionadas por funciones polinómicas:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression

# Generamos datos sintéticos con una relación no lineal
np.random.seed(0)
X = np.random.rand(100, 2) * 5 - 2.5
y = (X[:, 0]**2 + X[:, 1]**2 < 4).astype(int)

# Usamos un clasificador lineal para modelar los datos
model = LogisticRegression()
model.fit(X, y)

plt.scatter(X[:, 0], X[:, 1], c=y, cmap='coolwarm', marker='o')
x_grid = np.linspace(-2.5, 2.5, 300)
y_grid = np.linspace(-2.5, 2.5, 300)
X1, X2 = np.meshgrid(x_grid, y_grid)
Z = model.predict(np.c_[X1.ravel(), X2.ravel()])
Z = Z.reshape(X1.shape)

plt.contourf(X1, X2, Z, alpha=0.4)
plt.title("Clasificación lineal aplicada a datos no lineales")
plt.show()

En este ejemplo, vemos que la frontera de decisión es una línea recta en un espacio bidimensional, lo cual no puede capturar bien la relación circular entre los dos atributos.

Errores típicos / trampas

  1. Supuestos sobre las características: A menudo, se asume que ciertas variables son relevantes y otras no, sin basarlo en una análisis detallado. Esto puede llevar a modelos con bajo rendimiento porque algunas variables importantes fueron descartadas.
  1. Supuestos sobre la relación entre las variables: Se pueden hacer supuestos erróneos sobre cómo se relacionan los atributos con la variable objetivo. Por ejemplo, asumir que una variable tiene un efecto lineal en el resultado cuando en realidad es no lineal puede resultar en un modelo underfitting.
  1. Supuestos sobre la dependencia: En la modelación de datos temporales o espaciales, suponer que las observaciones son independientes y identicamente distribuidas (i.i.d.) puede llevar a malos resultados si realmente existen relaciones entre los datos.

Checklist accionable

  1. Realiza un análisis exploratorio exhaustivo: Conoce tus datos antes de aplicar cualquier modelo.
  2. Evalúa la relevancia de las características: Asegúrate de que todas las variables relevantes están incluidas en el modelo.
  3. Valida la relación entre las variables: Utiliza técnicas de modelado no lineal y visualización para confirmar la forma correcta de relacionar los atributos con la variable objetivo.
  4. Evalúa la dependencia entre observaciones: En datos temporales o espaciales, considera modelos que puedan capturar estas relaciones.

Cierre

La detección y corrección de supuestos incorrectos es crucial para el desarrollo de modelos de machine learning fiables. Al realizar un análisis exhaustivo de los datos y validar cuidadosamente las suposiciones sobre las características, la relación entre variables y dependencia entre observaciones, se puede mejorar significativamente el rendimiento del modelo.

Siguientes pasos

  • Investiga más sobre el dominio: Asegúrate de entender completamente cómo funcionan los datos en tu problema real.
  • Explora técnicas avanzadas para modelar relaciones no lineales.
  • Considera modelos que puedan capturar dependencias entre observaciones, como modelos markovianos o redes neuronales con memoria.

Siguiendo estos pasos, podrás mejorar significativamente la calidad y la precisión de tus modelos de machine learning.

Contacto

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