El problema con el que me topé
Al desarrollar un sistema predictivo inicial enfocado en salud (evaluar factores de riesgo para detectar predisposición a enfermedades), caí en la trampa de intentar programar la inteligencia del sistema a golpe de corazonadas y reglas estáticas. Pensé que bastaba con asignar puntajes arbitrarios basándome en mi propia lógica humana: si el paciente presentaba un síntoma obvio, le asignaba un peso de 5; si era un indicador menor, le ponía 1.
El resultado en producción fue completamente erróneo. El modelo fallaba de forma sistemática ante casos atípicos o combinaciones de variables que mi intuición no había considerado, demostrando que mis supuestos estaban profundamente sesgados y desconectados de la realidad estadística de los datos.
La trampa técnica: el error
El error de raíz está en confundir la selección de variables (features) con la ponderación de importancia (weights).
Cuando intentamos adivinar cuánto "pesa" un síntoma, un hábito alimenticio o un biomarcador sin un soporte matemático, aparecen dos problemas graves:
- Sesgo humano: Heredamos nuestras propias falacias cognitivas y prejuicios al sistema, sobreestimando variables irrelevantes e ignorando correlaciones ocultas que solo los datos masivos pueden revelar.
- Rigidez estructural: Un sistema basado en ponderaciones estáticas y manuales no puede adaptarse, ni aprender de nuevos errores, ni ponderar contextos donde la combinación de dos factores menores resulta más peligrosa que un factor aislado.
Cómo funciona realmente la ponderación matemática
En el aprendizaje automático clásico (una Regresión Logística o una Neurona Artificial simple), la predicción final no es más que una combinación lineal de las entradas multiplicadas por sus respectivos pesos, ajustada por un sesgo (bias):
- Variables de entrada (x): Los datos normalizados (ej. nivel de glucosa, tipo de dieta, edad).
- Pesos (w): Los coeficientes numéricos que determinan la influencia real de cada variable.
- El proceso de aprendizaje: Esos pesos no se escriben en el código; nacen siendo valores aleatorios y se ajustan de forma iterativa mediante algoritmos de optimización (como el Descenso de Gradiente), que minimizan el error calculando la derivada de la función de pérdida (loss function) sobre los datos históricos reales.
Cómo lo resolví y qué aprendí
- Automatización del aprendizaje: Abandoné los diccionarios de reglas manuales y migré la lógica a pipelines entrenados con librerías formales en Python (Scikit-learn), dejando que el optimizador descubriera por sí mismo los pesos matemáticos reales.
- Normalización estricta: Aprendí que si una característica numérica tiene un rango enorme (ingresos de 0 a 100,000) frente a otra binaria (0 o 1), el modelo desbalancea los pesos de forma injusta. Escalar los datos (StandardScaler o MinMax) es un paso obligatorio antes de calcular pesos.
Consideraciones
En Inteligencia Artificial y Machine Learning, los pesos son el resultado de un cálculo estadístico riguroso, nunca una opinión del desarrollador. Nuestra labor como ingenieros no es decidir cuánto importa un dato, sino estructurarlo y limpiarlo para que los algoritmos descubran su verdadero valor.
© Arturo Juárez Monroy