El #MachineLearning en el deporte lo haces tú

bigml-train

El pasado 25 de enero la periodista y especialista en nuevas tecnologías Soraya Paniagua publicaba la entrevista al CEO y cofundador de Bigml de paso por España Francisco J Martín.

Conocí a Francisco desde su etapa en Strands y no tuve dudas en formar parte del proyecto de BigML dentro de mis posibilidades y conocimientos, de ahí nació este blog, y siempre he pensado que es una persona de las que van abriendo camino, quizás a veces, adelantado a su momento, pero, en cierta medida y en su campo, un genio.

En la entrevista que publica Soraya, Francisco reflexiona sobre el momento actual de los datos, de la inteligencia artificial y del Machine Learning o aprendizaje automático y, como siempre, avanzando sobre lo que la mayoría no vemos, lanza sus ideas, su convencimiento sobre la evolución futura sobre la que asienta su negocio BigML.

El futuro de la inteligencia artificial no está en conseguir el último y mejor algoritmo, si no en el conocimiento específico en cada campo de aplicación sobre los datos relevantes y su aplicación de algoritmos de inteligencia artificial exitentes para extraer aquella información relevante de ls datos que nos permita ser más efectivos o acertar más en las decisiones complejas que nos presentan los problemas diarios en el mundo de la empresa, del deporte, de la ciencia, educación, etc.

Por tanto el futuro está en nuestra manos, o en las manos de aquellos expertos en cada campo sobre el que quieran aplicar la Inteligencia Artificial.

Está claro que la automatización de procesos gracias a esta inteligencia artificial sustituirá muchos puestos de trabajo, pero en realidad y en aquellas funciones más complejas o que dependerán siempre de la responsabilidad humana, la Inteligencia Artificial será un assitente en tiempo real que nos ayudará a aumentar nuestra efectividad en la toma de decisiones.

Uno de estos campos es el entrenamiento deportivo.

Con mayor o menos profundidad en el estudio de la fisiología, la biomecánica humana, los marcadores biológicos de recuperación, adaptación, etc, al final las decisiones más simples y difíciles quedan en mano de un entrenador que, en base a su experiencia, a veces limitada. Un asistente basado en Inteligencia artificial que nos ayude en la toma de decisiones en base a aquellos datos que creamos relevantes y que podamos captar, de forma más o menos automatizada, de nuestros deportistas a través de la gran variedad de dispositivos y wereables que se están desarrollando será una de las vías de desarrollo más rápidas e intuitivas en el ámbito del entrenamiento deportivo.

Los entrenadores y muchos deportistas siempre nos hemos dedicado a recopilar información, datos, nuestros diarios de entrenamiento valen oro pero nunca hemos sabido sacar mucho provecho de los mismos más allá de un análisis a posteriori. Con herramientas como BigML y nuestro conocimiento y datos podemos desarollar nosotros mismos aplicaciones que nos permitan optimizar nuestras decisiones en el entrenamiento individualizando al máximo tanto la información que tomamos (Input) como la variabilidad de los sujetos sobre los que aplicamos el entrenamiento, ya que la individualización del mismo es una parte esencial del éxito.

 

Os dejo la entrevista y sirva esta como nueva presentación del Blog en el que espero seguir volcando ideas, noticias e información sobre la aplicación de la Inteligencia artificial, aprendizaje automático y BigData en el mundo del deporte:

Entrevista a Francisco J Martín por Soraya Paniagua

Lo que me gustó del encuentro sobre perspectivas actuales y de futuro del aprendizaje automático

El pasado 20 de octubre asistí, como parte de BigML, al evento que organizamos en Valencia, en Las Naves, sobre Perspectivas actuales y futuras del aprendizaje automático “Machine Learning” en la tecnología y en los negocios.

Como profano en la materia, y de muchos de los que podáis leer este blog, mi referencia más directa a la inteligencia artificial son los relatos de Isaac Asimov, sus robot positrónicos, etc.

Por ello creo que tienen un gran poder didáctico e introductorio las dos ponencias que os comparto. En ellas se hace una introducción desde el punto de vista histórico y de su desarollo, de la Inteligencia Artificial y es muy interesante, además del análisis sobre su potencialidad y sus riesgos, analizar y diferenciar entre dos tipos de inteligencia artificial:

La Inteligencia Artificial la fuerte, la que todos imaginamos en esos robots de Asimov o en la película Yo Robot, de una entidad capaz de aprender y relacionarse con su entorno de forma autónoma y que provoca multitud de reflexiones existenciales.

Y la Inteligencia Artificial débil, o la que aplicamos en en nuestro día a día y dónde se encuentra el actual “aprendizaje automático”. Una realidad en pleno desarrollo en estos momentos y que no busca crear una inteligencia autónoma, sino, algo más aplicado. Desde la capacidad de reconocer caras o disparar cuando sonreímos de una cámara de fotos, hasta el funcionamiento del buscardor Google o de Siri en nuestros Iphones.

Pero no os entretengo y os dejo con estas dos interesantes ponencias por parte de dos pioneros en estios campos: Tom Dietterich y Ramón López de Mantaras.

Technical and Business Perspectives on the Current and Future Impact of Machine Learning – MLVLC
October 20, 2015

Real-world Stories and Long-term Risks and Opportunities.
Tom Dietterich, Ph.D.
https://bigml.com/events/technical-an…


A fascinating View of the Artificial Intelligence Journey.
Ramón López de Mántaras, Ph.D.

https://bigml.com/events/technical-an…

Preparando los datos para analizar #Doityourself

Desde que comencé esta aventura de con www.datosydeporte.com cada semana algunos de vosotros os habéis ofrecido a enviarme todos los datos que tenéis de vuestros entrenamientos. Os lo agradezco y para algún trabajo específico de análisis como los que me gustaría hacer sobre entrenamientos de tiradas de maratón etc, probablemente lo haga, pero el objetivo principal es mostraros cómo lo podéis hacer vosotros mismos con vuestros datos y a través de un registro gratuito en www.bigml.com podáis analizar vuestros entrenamientos en busca de información relevante que os haga poder mejorar esos entrenamientos.

IMG-20150225-WA0005

En los artículos anteriores os he intentado mostrar cómo descargaros vuestros datos, archivos GPX, desde diferentes plataformas dónde los podemos tener recopilados. También cómo transformar esos datos a través de diferentes herramientas para obtener más datos con los que “jugar” en un análisis.

Screenshot_2014-12-10-20-12-42

Y ahora lo que os voy a proponer es qué datos podemos tomar para organizarlos en un Excel/googlesdoc/csv para poder analizarlos en Bigml.

Cómo el movimiento se demuestra andando, os dejo mi propuesta de datos que trasladaré a un archivo y que la próxima semana os mostraré la información y espero que os animéis a hacerlo vosotros y a compartirlo.

Para este proyecto voy a utilizar los datos de preparación del maratón de Berlín hasta que me lesioné,  7 semanas de entrenamiento en #Objetivo42k del 8 de junio al 26 de julio de 2015 que son púlicas ya que tengo los tracks publicados en Strava y en mi Blog:

Semana 1Semana 2Semana 3Semana 4Semana 5Semana 6Semana 7

También incluiré los datos de los dos meses anteriores de entrenamiento, desde el 4 de abril de 2015 al 7 de junio. En total serán unos 160 tracks de entrenamiento (Hay más que días porque en ocasiones doblo sesión mañana y tarde y en otras tomo en archivos diferentes el calentamiento y las series) que podéis ver en mi perfil de Strava

IMG_20150210_224729

¿Qué datos tomaré?

Una vez tenemos los Tracks ¿qué datos tomamos que podamos manejar? Creo que hay que ser práctico y cada uno conoce los datos extra que registra a parte de los entrenamiento y que le pueden interesar: Peso, horas de sueño, sensaciones (Escala subjetiva), condiciones climatológicas, …

2015-07-22 13.06.20

En mi caso esta vez voy a utilizar la web www.ibpindex.com con su índice IBP y algo más de información extra que nos aporta de cadas Track:

  • Fecha del entrenamiento
  • Hora de inicio (Importante si queremos apreciar diferencias entre los entrenamientos entre madrugada, mañana, tarde, noche, etc)
  • Índice IBP (Dureza o dificultad del recorrido)
  • Distancia del entrenamiento
  • Altitud inicial (Nos da info de la cota a la que estamos entrenando por si variamos de lugar de entrenamiento y queremos ver si las diferencias de altitud son soignificativas)
  • Tiempo de entrenamiento (Cojo el tiempo en movimiento)
  • Velocidad media en movimiento (km/h)
  • Velocidad máxima sostenida (Km/h)
  • % del track entre +1-(-1)% de desnivel (O sea, plano)
  • Tipo de entrenamiento. Categorízo si es entrenamiento de series, rodaje, Tirada, calentamiento, Doble sesión.

¿Qué otro datos podemos incluir?

Ahí ya entra lo que cada uno quiera exprimirse la cabeza o los datos, o las rutinas de registro de datos o acceso a datos automatizados que podáis tener. Os dejo unos ejemplos con la aportación que pueden hacer al análisis:

  • Si tenemos teléfono móvil con App de salud un una pulsera tipo FitBit es fácil que podamos incluir los datos del podómetro que toma día a día y puede ser un índice de actividad.
  • Horas de sueño o la hora a la que nos levantamos. Puede ser interesante para analizar cómo afectan las horas de sueño o, si nos afectan los madrugones.
  • Si nos preocupa el tema “comidas” un primer acercamiento es registrar la hora a la que comenzamos a comer y ver cómo afecta a los entrenamientos que hacemos después. Si nos metemos con el tipo de comidas podemos analizar qué comidas nos sientan mejor o cuales nos sientan mal.
  • Peso, acordaros registrarlo a la misma hora siempre para evitar la variabilidad intradiaria.
  • Escala de Borg. Es una escala en la que valoramos de 0 a 10 cómo nos hemos encontrado de energía ese día, por ejemplo 10 sería que te has encontrado genial y el entrenamiento los has completado perfectamente y 0 para un día en el que tienes malas sensaciones, te molesta todo (Agujetas o dolores por enfermedad) y no has sido capaz de completar el entrenamiento.
  • Si hemos entrenado solos o en grupo. Podemos valorar si se nota a mejor o a peor cuando entrenamos en grupo si solemos alternar.
  • Lugar de entrenamiento o circuito. Puede que tengamos la impresión de que los rodajes nos salen mejor en ese parque determinado pero no estamos seguros.
  • Día de la semana. Así podemos detectar qué días nos encontramos mejor o con más energía dentro del ciclo de la semana.
  • Datos climatológicos. Esto quizás sea más complicado ya que hay que buscar a posteriori información sobre temperaturas, humedad o vientos en la zona donde entrenes, pero si lo vamos anotando día a día nos dará información real sobre si nos afecta o no el frío, calor, humedad y hasta qué punto.
  • Zapatillas. Si cambiamos a menudo de calzado del mismo tipo nos puede dar información sobre qué zapatilla nos ajusta mejor. Por ejemplo si para rodar varío entre Asics Nimbus y Asics Cúmulus pudo intentar detectar si con una de las dos entreno mejor o no.
  • Entrenamiento de los días anteriores. Una vez registrados todos los datos podemos añadir columnas con el tipo de entrenamiento o la escala de borg de los días anteriores a cada entrenamiento y así poder detectar patrones y predecir cuándo vamos a tener un día bueno o un día malo.
  • Días que pasamos por el fisioterapeuta. A muchos nos asalta la duda de cuándo darnos masaje, antes o después de las series, en un día de descanso o no. Si añadimos el dato de los días que han pasado desde que visitamos a nuestro físio podremos analizar ese parámetro y ver qué día es el que mejor nos encontramos tras un masaje de descarga. Por ejemplo, el día que recibimos el tratamiento sería el día CERO y a partir de ahí vamos sumando 1, 2, 3, 4 hasta que vayamos de nuevo al fisioterapeuta.
  • Si tenemos una lesión no invalidante pero que nos molesta y queremos detectar cómo evoluciona por la sensación subjetiva de molestia podemos utilizar una escala subjetiva de 0 a 10 dónde 0 es que no molestó nada y 10 es que no te dejó entrenar. Podremos analizar a posteriori la evolución de la lesión respecto a la cargas de entrenamiento.

IMG-20150329-WA0002

Y seguro que se os ocurren a vosotros muchos más datos de interés.

Yo me pongo manos a la obra y espero, la próxima semana, mostraros los datos e información que he podido extraer de los mismos.

Ya sabéis, si alguno se anima, que lo comparta, y cualquier duda preguntad.

Ya tenemos Big Data en el tenis, ¿lo hacemos predictivo?

tenis

El Proyecto de este blog, Datos y Deporte, como os comenté en la primera entrada, tiene entre sus objetivos presentar o descubrir a muchos amantes de los datos, de las estadísticas y el deporte, cómo una herramienta de análisis predictivo y de aprendizaje automático puede ayudarles a exprimir vuestros datos deportivos de una forma diferente o, al menos, con un objetivo más.

Por ello de vez en cuando me haré eco de proyectos o bases de datos en otros deportes que crea que son interesantes de cara a abrir la mente a los aficionados a los mismos y que puedan experimentar en primera persona, a través del acceso gratuito a BigML para pequeños archivos o Datasets, cómo podr trabajar con ellos.

Este es el caso del artículo de esta semana, mi primera incursión en un deporte diferente al mío, en concreto al TENIS. Un deporte con un gran seguimiento mundial gracias a desarrollo de la ATP y la WTA, circuitos profesionales masculinos y femenino respectivamente.

Todos estamos acostumbrados a ver datos de tenis, los juegos, los sets ganados por los jugadores, el porcentaje de primeros saques, de errores no forzados, son buenas estadísticas pero yo buscaba algo más, un punto mayor de extracción de datos como pueda ser el paso de saber los tiempos de mis series a tener el registro cada 3 segundos de posición, velocidad, pulso, etc.

Este punto de análisis existe en otros deportes como los deportes USA ( fútbol americano o béisbol) e incluso el vóley que ha especializado mucho el trabajo de análisis de datos incluyendo en sus equipos técnicos la figura del estadístico desde hace ya bastantes años.

Pero en tenis no me sonaba nada así que me puse a bucear por la red y no tardé encontrar lo que buscaba, un proyecto puesto en marcha a finales de 2013 por Jeff Sackmann denominado “The Match Charting Project” o, traducido, el “proyecto de cartografiado de partidos”, incluído dentro de un gran proyecto como es Tennis Abstract que debe ser la Biblia de los estadísticos del tenis mundial.

En dicho proyecto Jeff Sackmann desarrolla unas planillas en EXCEL para registrar o cartografiar partidos de tenis con gran cantidad de datos, más allá de los puntos, como la dirección y profundidad de los saques y de los golpeos de ambos contendientes, categorizando los golpes, trayectorias, errores forzados y no forzados, y, por tanto, generando una cantidad de datos de cara partido muy grande.

En su Web os podéis descargar la planilla, que él considera que con el registro de dos partidos completos tendréis habilidad suficiente para ir bastante rápido registrando partidos casi en tiempo real mientras los veis en la TV o Youtube, y también existe una App en Android para ello.

Jeff recopila los registros de decenas de colaboradores voluntarios que cumplimentan los datos y se los envían compartiendo posteriormente  la información con todo el mundo. Actualmente de más de 1000 partidos de tenis desde los años 80 y de multitud de torneos, superficies y, por supuesto, jugadores, aunque resta mucho trabajo por hacer. Supongo que el futuro, si la ATP/WTA y la asociación de entrenadores de tenis, se pone con ello, sería la automatización del registro de datos a través de un sistema de cámaras en las pistas de los torneos de todo el mundo (Puede ser un buen proyecto a presentar a la ATP/WTA y ser pionero como lo fue PROZONE Sports en fútbol).

Aquí os dejo el enlace al GitHub dónde os podéis descargar los diferentes CSVs con muchísima información extraída d ls partidos codificados hasta la fecha: https://github.com/JeffSackmann/tennis_MatchChartingProject

Creo que es un buen momento para proponeros, a los que os queráis mojar, os guste o no el tenis, a trabajar con esos datos y desarrollar un análisis o visualización de datos que podamos presentar en el Blog: Modelos, anomalías o predicciones, aunque sean simples, con los que dentro de un mes podamos armar un artículo sencillo con las mejores o más clarificantes.

Seréis protagonistas y coautores de un nuevo artículo en el blog con los puntos más interesantes y quién sabe si alguna sorpresa más.

Por mi parte ya me he puesto a trabajar sobre los datos para construirme un dataset del que extraer información relevante con la que responder a preguntas como: ¿Qué golpeos de Nadal son más determinantes para ganar puntos? ¿Cómo evoluciona el % de efectividad respecto al aumento de peloteo en los puntos? ¿Comportammiento del primer servicio respecto a situaciones adversas de marcador o qué diferencia de efectividad tienen los tenistas entre el primer saque de cada juego y el saque cuando el marcador es adverso (Puntos de break)? Y miles de preguntas que os podéis hacer.

¿Se puede predecir el “muro” en el maratón?

Pablo Villalobos tras cruzar la meta en el maratón del Campeonato del Mundo en Daegu (Corea del Sur) en 2011

Pablo Villalobos tras cruzar la meta en el maratón del Campeonato del Mundo en Daegu (Corea del Sur) en 2011

Esta semana os escribo desde Valencia dónde me encuentro participando en la “Summer School in #MachineLearning” organizado por BigML en colaboración con la Universidad Politécnica de Valencia y desarrollada en Las Naves.

Han sido dos días apasionantes en los que aprender un poco más sobre el aprendizaje automático, el análisis predictivo de datos, sus aplicaciones, etc.

Como os pedí la semana pasada he empezado a recibir algunos datos de colaboradores a través del Blog y me he traído a Valencia bajo el brazo un archivo de datos que me hizo llegar Jesús y que había recopilado y analizado por su cuenta.

Los datos: Jesús había recopilado las marcas, para corredores que habían participado en ambas pruebas en su edición de 2014, la marca del medio maratón y del maratón de Valencia del año 2014, además de los parciales cada 5km del maratón. Un total de 1178 atletas con marcas entre 2h30 y 4h30.

Nuestro amigo Jesús había jugado ya con los datos consiguiendo la relación entre la marca en la media de Valencia y el maratón y, por tanto, estableciendo un tiempo estimado por esta fórmula para cada participante que podía o no coincidir con el ritmo real que habían desarrollado en la maratón. A partir de ahí, comparando los parciales cada 5km con ese ritmo estimado, se estudió su linealidad y la estrategia de carrera dividiendo esta en tres partes: de la salida al km15, del km15 al 30 y del 30 al final. Todo ello de cara a establecer si la estrategia de carrera era correr a un ritmo constante, más a menos (Pinchando al final) o de menos a más (Corriendo en negativo).

Las conclusiones eran muy interesantes y ahora nosotros queríamos aportar el punto de vista predictivo.

Hemos querido analizar los mismos datos con el objetivo de detectar qué variables pueden tener más peso a la hora de poder predecir si el corredor se va a encontrar con el MURO en el maratón. Algo muy interesante ¿Verdad? Porque el MURO en el maratón no nos lo queremos encontrar ninguno.

Cuando nos planteamos correr un maratón, lo más probable es que nuestra estrategia sea correrlo a un ritmo más o menos constante, aunque “pinchemos” un poco en la parte final, o, en el mejor de los casos, ser capaz de acelerar más en la parte final para correr en negativo.

Cuando se da la tercera situación, o sea, corremos mucho más lentos la parte final de la prueba, lo habitual es que nos hayamos encontrado con “el MURO” y, por tanto, no consigamos el objetivo de marca buscado.

Por todo ello, si conseguimos despejar aquellas variables que pueden predecir la llegada del MURO en el maratón podremos dar información al corredor de lo que debe o no debe hacer si quiere tener más posibilidades de hacer una carrera constante y conseguir su marca objetiva.

PRIMER PROBLEMA

Al analizar los datos nos damos cuenta de que no queremos utilizar la fórmula de estimación elaborada por Jesús a partir de los datos de la media y el maratón de 2014 ya que utiliza el dato del tiempo final del maratón de esos mismos corredores, una información que no deberíamos tener aún, sería hacernos un poco de trampas.

Esto lo hemos solucionado tomando otra fórmula estándar de predicción de marca en maratón a partir de la marca en la distancia de media maratón que aplicaremos a dicha marca para obtener el tiempo estimado que nos correspondería hacer en el maratón: Nuestro OBJETIVO.

SEGUNDO PROBLEMA

Está claro que utilizaremos los datos de los parciales de 5km de la prueba, pero ¿hasta dónde? De nada nos sirve que nos digan a qué ritmo tenemos que correr entre el km25 y el km30 cuando ya no tenemos margen de maniobra para evitar el MURO que tenemos delante. Por ello hemos decidido que sólo vamos a utilizar variables de la primera mitad de la prueba de cara a buscar esa capacidad de predicción.

¿Qué datos hemos utilizado?

  • Marca del medio maratón de Valencia 2014
  • Marca de maratón estimada por una fórmula estándar
  • Ritmo minutos/km d la marca estimada en maratón
  • Tiempos parciales de la marca estimada en maratón para 5, 10, 15 y medio maratón
  • Tiempos parciales reales del maratón de Valencia en 5, 10, 15 y medio maratón
  • Tiempos reales del maratón de Valencia en Splits Salida-5km, 5km-10km, 10km-15km, 15km-Media.
  • Diferencial en % entre los tiempos real y estimado del maratón en los splits Salida-5km, 5km-10km, 10km-15km, 15km-Medio maratón.
  • Linealidad (pendiente de la recta definida por los parciales reales del maratón).
  • Si el atleta ha encontrado el muro o no. Definimos el muro como una variación entre dos splits consecutivos a partir del 20-25km de más de un 6%

Hemos subido el archivo en formato CSV a BigML (lo compartiremos en breve en la Galería de BigML ya que el acceso es gratuito con archivos pequeños como este y podréis hacer vuestros experimentos y análisis en la herramienta para ver si mejoráis mis resultados).

Ahora os dejo un vídeo para que podáis ver cómo hemos trabajado los datos en BigML y lo sencillo que puede llegar a ser generar un modelo, evaluarlo y jugar con él. Cuantos más conocimientos de análisis de datos tengáis más vais a disfrutar con ello.


CONCLUSIONES

Como habréis visto en el vídeo, no hemos tenido un resultado muy positivo respecto a las variables con las que hemos trabajado. La opción es buscar más o nuevas variables que nos permitan aumentar la “accuracy” del modelo.

Desde mi punto de vista, creo que los parciales de 5km son demasiado amplios por lo que restan mucha sensibilidad. Si en lugar de esos parciales tuviéramos los archivos de datos de los GPS de los corredores con parciales de cada kilómetro, se podrían sacar más variables que tuviera más correlación con evitar el MURO.

Además, sería interesante poder incluir más variables que nos podríamos plantear recoger de cara a las ediciones de 2015, como por ejemplo: Qué tipo de avituallamiento, zapatillas, descanso la noche anterior al maratón, a qué hora os despertasteis esa mañana, qué tomasteis para cenar y desayunar antes del maratón, etc.

Creo que es una buena idea para lanzar desde este blog si os animáis.