You know that feeling when your GPS dice que llegarás en 10 minutos... y luego bam, tráfico inesperado, desvío, lluvia, y un tipo vendiendo arepas en la autopista. Bueno, algo así pasa con los sistemas que intentan predecir el futuro con datos inciertos. Spoiler: no es tan fácil como suena.
Te lo digo porque hace un par de años me obsesioné con entrenar un modelo que anticipara cambios de humor en usuarios, usando solo textos de redes sociales. ¿La idea era buena? Claro. ¿Los datos eran una locura? Absolutamente.
A veces lo incierto no es tan incierto…
Una vez conocí a alguien en Aurora que juraba que podía “ver el futuro” con solo mirar tus ojos. No sé si era verdad, pero lo que sí me sorprendió fue cómo mezclaba datos emocionales, intuición y... bueno, lo que él llamaba energía. Me recordó bastante a lo que hacemos en Machine Learning, solo que con menos incienso.
Por cierto, si estás por ahí y te interesan estos rollos más místicos, te paso algo que me topé: una página sobre Amarres De Amor Aurora. Nada técnico, pero... curioso.
¿Qué es un dato incierto? (sin sonar como Wikipedia)
Imaginá que tenés que predecir si mañana va a llover, pero solo te dieron una foto del cielo de hace tres días. O peor, te dieron opiniones de cinco personas que vieron esa foto. That's it.
En realidad, eso pasa más de lo que creés. Datos inciertos pueden ser:
- incompletos
- subjetivos
- ruidosos
- retrasados
- contradictorios
Yo suelo decir que es como leer mensajes de WhatsApp fuera de contexto. ¿Cómo saber si alguien está enojado o solo está ocupado?
Entonces… ¿cómo se predice con incertidumbre?
Te paso algunas ideas que me funcionaron (o me salvaron del desastre 👀):
1. Usar probabilidades en lugar de certezas
from scipy.stats import norm
# Querés predecir si un cliente abandonará el servicio
prob = norm.cdf(0.8, loc=0.5, scale=0.2) # Probabilidad acumulada
print(f"Probabilidad de abandono: {prob*100:.2f}%")
2. Limpiar los datos (a.k.a. evitar el caos)
import pandas as pd
df = pd.read_csv("sensores.csv")
# Eliminamos lecturas absurdas
df = df[df["temperatura"] < 100]
df = df.dropna(subset=["humedad"])
3. Aplicar lógica difusa (cuando las cosas no son blanco o negro)
import skfuzzy as fuzz
import numpy as np
x = np.arange(0, 11, 1)
bajo = fuzz.trimf(x, [0, 0, 5])
medio = fuzz.trimf(x, [3, 5, 7])
alto = fuzz.trimf(x, [5, 10, 10])
4. Validar múltiples fuentes
# Simulamos datos de tres fuentes
fuente1 = {"riesgo": 0.4}
fuente2 = {"riesgo": 0.7}
fuente3 = {"riesgo": 0.6}
# Promediamos
riesgo_prom = sum([f["riesgo"] for f in [fuente1, fuente2, fuente3]]) / 3
print(f"Riesgo estimado: {riesgo_prom:.2f}")
Mini historia: “La predicción que casi me cuesta el trabajo”
Una vez diseñé un sistema para sugerir productos a nuevos clientes según sus clics. El problema: los datos iniciales eran tan escasos, que el modelo recomendaba pañales a un adolescente y cerveza sin alcohol a un bebé Lectura De Cartas Aurora (ok, exagero, pero vos me entendés 😅).
Y ahí fue cuando me acordé que hasta en la Santeria en Aurora, primero te preguntan tu nombre antes de “ver el futuro”. O sea: el contexto lo es todo.
¿Y qué te llevás de todo esto?
- No necesitás datos perfectos para hacer buenas predicciones.
- Métodos probabilísticos > certezas falsas.
- Limpiar datos no es glamoroso, pero salva vidas.
- Lo difuso no es confuso: es flexible.
- El futuro no se adivina, se modela.
Dale, animate
No esperes tener todos los datos del mundo. Empezá con lo que tenés, aplicá lógica (y un poco de intuición), y validá con pruebas reales.
Pruébalo esta semana, ¡ya verás!
Y si sentís que algo no cuadra… capaz es hora de consultar algo menos técnico y más… energético 😏
¿Te gustó este post? Comentalo o compartilo si te pasó algo parecido. También acepto historias de predicciones fallidas 👇
Top comments (0)