Maratones, Machine Learning y Psicohistoria

La Ciencia Ficción se ocupó en los ’60s y ’70s de anticipar que con la suficiente cantidad de datos y algunos trucos se puede predecir el futuro. Isaac Asimov imaginó científicos sociales que preveían revoluciones (la saga Fundación que en poco tiempo será serie) y Philip K Dick esbozó crímenes castigados antes de ser cometidos, con la ayuda de los “precogs”. La lista sigue, al punto que mucha gente ha planteado estas similitudes con mayor precisión de lo que he referido aquí. Me quedo con la imagen de Hari Seldon, el psicohistoriador de Asimov, que aparecía en una bóveda cada mil o dos mil años para contarle a la elite “cómo iban a funcionar las cosas”. Para el asombro del lector, las cosas predichas -aún contradictorias entre sí- se iban cumpliendo.

Qué hay de concreto hoy? Los “grandes players” están metidos de cabeza en esto. Dos ejemplos, en 2014 Facebook mostró la capacidad de anticipar mediante el diálogo social si una persona está por “entrar a una relación” (ver figura); también tenemos de que en 2010 HPLabs estableció la correlación entre menciones de un estreno en Twitter y su recaudación en la primera semana, cuestión que le sirve a los Estudios para evitar gastos en películas que “van a andar mal”.  De paso, uno de los autores de este paper fue un argentino, Bernardo Huberman.

facebook-love

Soy maratonista, me gusta tomar como ejemplo esto de correr 42K -aunque con la edad me convenga más hacer yoga y no tantos  kilómetros-. La cuestión es que un corredor de 10K o 15K se pregunta cuál será su tiempo, y la forma en que el cuerpo tolera la distancia es alineal. La biología (las mitocondrias más bien) hace que caiga nuestra eficiencia más allá de los 30K. Esto me sirve para explicar lo que es un algoritmo. Si yo corro carreras cortas y tomo los tiempos puedo decir que la relación entre tiempos y espacios es lineal. Eso es un modelo. Recuerdan el famoso MRU? Hasta los 25K o 30K, ocurre que el MRU es un modelo que funciona bien.

Más allá de esos 30K hay que enriquecer el algoritmo. Un viejo profesor de atletismo me decía “tomate el tiempo para los 21K, multiplicalo por dos, sumale diez minutos: eso es tu tiempo de 42K”. Sigue siendo una ecuación lineal pero se le agrega algo, esos diez minutos de divergencia.

Si uno va tomando tiempos en sucesivas distancias surge una ecuación más compleja. En el caso que detallo, es una exponencial que enriquece mucho el modelo. Pero en fin, podemos predecir, tenemos un mecanismo que sirve para explicar el mundo. O al menos una parte muy particular del mundo, la de los corredores que intentan correr 42K.

Por supuesto ya existen muchos modelos muy complejos que toman en cuenta más variables (edad, género, temperatura, etc) y no solamente las carreras previa del corredor. Cuanto más se conoce, más se enriquece el modelo. Ejemplo, si uno tiene varias carreras de 30K conoce cómo se comporta el cuerpo en esas instancia extrema (el famoso “muro” o “pared” de las marathones). Mi enfoque es más sencillo, solo con carreras preivas,  y me sirvió para testear personalmente esta fórmula exponencial. Notar lo pegadas que están las dos curvas en la figura: esto indica que el modelo funciona realmente bien. En la jerga, el modelo “fitea”.

captura-de-pantalla-2016-10-18-a-las-5-06-25-p-m

Ahora imaginemos que hemos propuesto un modelo en ambientes más complejos: el estudio de clientes que abandonan una empresa de telecomunicaciones o un banco. O el estudio de vacunas con los datos de millones de pacientes. O anticipar la falla mecánica de un tren a través de todos sus sensores. Con mayor cantidad de datos y mayor capacidad de procesamiento se puede predecir con bastante precisión qué cliente se irá, o cómo diseñar con mayor rapidez esa vacuna, o qué pieza va a fallar. Y algo más, cada negocio tiene su “muro”, el lugar donde la linealidad y la intuición comienzan a fallar. En Telcos, en Cables o en Oil&Gas es lo mismo. Por eso la necesidad de tener todos los datos, y de avisarle al cliente que el modelo funciona en tales y cuales condiciones.  Ejemplo, el comportamiento del cliente postpago en Telcos (“con factura”) es completamente distinto de la forma en que se comporta el cliente prepago.

En muchos casos el algoritmo se enriquece solo con técnicas de Machine Learning -que aclaro, es una de tantas técnicas, solo que tuvo un auge inusitado por un motivo: IBM hizo competir “su versión” de machine learning, una inteligencia artifical llamada Watson, en un programa de preguntas y respuestas llamado Jeopardy. Y Watson derrotó a los humanos… simplemente aprendiendo.

Qué tan difícil es programar en Python y “crear” modelos de Machine Learning? Queda esto para un próximo post. Pero dejo una figura y un concepto: no es tan sencillo como las psicohistorias de Asimov, pero es menos complicado de lo que parece.

python-ml-example

2 Comments

  1. Yo en una época estaba fanatizada con el Jeopardy online. Claro que al final siempre perdía, al punto que le decía “Yóperdi” en vez de “Jeopardy”.

Deja un comentario

Your email address will not be published.

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>