El Big Data es el conjunto de técnicas y tecnologías actuales que nos permiten extraer diversos tipos de conocimientos de un conjunto de datos. Este conjunto puede ser enorme, generarse con una frecuencia altísima y que su valor degenere igualmente rápido, o estar expresados en una variedad de formatos diferentes, ‘des-’ o semi-esctructurados. Así, pensando en la lotería, podemos destacar dos afirmaciones ciertas, pero aparentemente contradictorias.
Repuesta 1: No, no podemos predecir el número de la lotería utilizando ninguna tecnología de análisis de datos.
Respuesta 2: Sí somos capaces de construir un modelo predictivo que, dado un número de lotería, responda con una precisión del 99,999% si será o no el premiado. ¡Parece prometedor! Pues bien, el modelo es el siguiente: para cualquier número que se le pregunte, la respuesta del modelo será: “No, ese número no será el premiado”. Acertará en 99.999 casos y fallará solo en uno. Es una ratio muy buena… si no fuera porque el único caso en el que fallará es en el que nos interesa, el del número ganador. Este ejemplo sirve para señalar lo engañoso de la métrica ‘precisión’ como única medida de rendimiento en modelos predictivos.
Para explicar porqué no podemos predecir el número de la lotería, tenemos que analizar las dos técnicas que -en caso de que fuera posible- nos permitirían descifrarlo. Por un lado, el enfoque computacional empírico, basado en la observación y la recogida de datos. Por otro, el teórico, basado en el conocimiento y la aplicación de las leyes naturales que rigen el proceso. Estamos hablando del aprendizaje automático –machine learning– y la simulación por ordenador, respectivamente.
Cómo lo harían las técnicas de machine learning
Las técnicas de machine learning aplicadas a la generación de modelos predictivos funcionan, básicamente, de forma similar.
- Hay que construir un conjunto de datos histórico, compuesto por una serie de variables. Una es la variable ‘objetivo’, que recoge los valores que aquello que queremos ser capaces de predecir ha tenido en el pasado. En el caso que nos ocupa, serían los números ganadores anteriores. Mientras, el resto de variables recogen aquellos aspectos del contexto en el que se produjo cada variable objetivo que podrían haber tenido algo que ver con ese resultado. Aquí se englobaría, por ejemplo, la humedad relativa del aire en la sala donde se realiza el sorteo, la temperatura, la hora a la que comienza, la luminosidad, el orden en el que se introducen las bolas… Este conjunto de datos se denomina ‘conjunto de datos de entrenamiento’ y constituye la materia prima que los algoritmos de aprendizaje automático utilizan para generar los modelos predictivos. Lógicamente, cuantos más casos históricos tengamos, mejor.
- A ese conjunto de datos de entrenamientos hay que aplicarle uno de los múltiples algoritmos de aprendizaje automático existentes. Estos algoritmos son capaces de identificar si, en el pasado, el contexto ha tenido algún tipo de correlación más o menos sistemática en el resultado de la variable que se quiere predecir. En caso de que lo encuentre, se genera un ‘modelo predictivo’, que recoge esas correlaciones. Es decir, el machine learning analizaría si las variables como la temperatura, la humedad, la hora, etc. guardaron en el pasado alguna relación con el número ganador.
- Asumiendo que las correlaciones que se dieron en el pasado seguirán dándose en el futuro -y es algo que nunca debe darse por sentado-, podemos inferir (predecir), mediante el modelo generado, el valor ‘respuesta’ más probable que va a obtener la variable ‘objetivo’.
¿Sería posible aplicar esta técnica?
Obviamente, y pese a los ejemplos, estos tres pasos no pueden darse en un sorteo de lotería. El proceso de introducción, mezcla y extracción de bolas del bombo es totalmente aleatorio. Su resultado no está sistemáticamente correlacionado con ninguna variable de contexto que haya podido medirse en el pasado. Es decir, por mucha historia previa de sorteos pasados que tuviéramos y muchos algoritmos de machine learning que aplicáramos, estos no aprenderían nada relevante… porque no hay nada que aprender.
Un ejemplo clásico es la predicción de siniestros (predicción de riesgo) en el sector de seguros de automóviles. Las compañías disponen de un amplio registro histórico de siniestros (cuya ocurrencia o no en un determinado periodo de tiempo sería la variable objetivo), junto con algunos datos del contexto en el que ocurrieron o no. Estos describen, básicamente, al vehículo, el conductor, y la zona geográfica en la que el riesgo tiene lugar. Con estos conjuntos de datos los algoritmos de aprendizaje automático son capaces de encontrar correlaciones entre determinados rasgos del contexto (conductor/coche/zona) y la ocurrencia o no de un siniestro. Esta probabilidad se utiliza en muchos casos para valorar la pertinencia y precio de las nuevas pólizas o renovaciones.
Cómo lo haría la simulación
La simulación por ordenador permite anticipar cómo se va a comportar un sistema si se dan las siguientes condiciones:
- Se conocen todas las leyes físicas que rigen el comportamiento de ese sistema.
- Se conoce con exactitud el estado inicial del sistema y las fuerzas aplicadas.
- Es un sistema determinista no caótico.
En estos casos, con un sistema informático lo suficientemente potente, sería teóricamente posible programar una simulación que, tomando como datos de entrada el estado inicial del sistema (posición y rotación de las bolas en el bombo, diámetro de las bolas, masa, coeficiente de rozamiento entre las superficies implicadas en la rotación, presión atmosférica, etc.) y las fuerzas aplicadas, fuera capaz de calcular su evolución en el tiempo. Es decir, saber qué bola va a salir en cada momento.
Ahora bien, ¿se dan estas tres condiciones en el sorteo de la lotería? Podríamos aducir que la primera, sí. La física actual conoce las leyes que gobiernan el comportamiento de sólidos rígidos sometidos a fuerzas. Las bolas dentro de un bombo entran en esta categoría. La segunda condición plantea más problemas: conocer los valores de todas las variables que describen por completo el estado inicial y las fuerzas aplicadas a un sistema tan complejo parece poco viable. Pero seamos optimistas e imaginemos que podríamos llegar a conseguirlo.
El sistema que evita que seas millonario
La tercera condición es la que acabaría por echar al traste todo el esfuerzo. Un bombo con cien mil bolas dista de ser un sistema determinista no caótico. Es precisamente lo contrario: un sistema caótico. ¿Qué quiere decir esto? Que pequeñísimas variaciones en las condiciones iniciales generan enormes variaciones en la evolución del sistema. Esto hace que estos sistemas no puedan ser previsibles ni por tanto su evolución reproducible en una simulación por ordenador. ¿Por qué? Pues por dos motivos fundamentales:
- La interacción con factores ambientales imposibles de controlar y cuantificar que modifiquen levemente las condiciones iniciales. Por ejemplo, una mosca se cuela en el bombo y se adhiere a una bola. La persona que metió las bolas estaba nerviosa, le sudaban las manos y alguna está pegajosas. Un pequeño pico de tensión provoca una leve discontinuidad en la velocidad con la que el motor hace girar el bombo. Estos leves e impredecibles cambios en las condiciones ambientales pueden provocar que el resultado sea totalmente diferente al teóricamente predicho.
- Falta de precisión en los instrumentos de medida de las condiciones iniciales, lo que provoca una falta de exactitud leve pero relevante en las condiciones de partida. Por ejemplo, una variación de microgramos en el peso de las bolas puede tener un impacto relevante en el sistema caótico, y la precisión de la balanza “solo” llega a los miligramos.
Así que, sintiéndolo mucho, en lugar de al Big Data, habrá que fiar el premio… al azar.