[en] This study focused on predicting the completion times of marathon races. This prediction is based on the runners workouts during the 6 weeks prior to the race. In this work we did not have any database of training neither races. In order to do this an analysis on the different sources of information (meaning their training, marathon time and physical qualities) was carried out. Strava turned out to be the chosen source. Once this was done, it became necessary to automatize the download to get as much information as possible. This automation is needed since the bigger the volume of the available data, the more accurate the algorithms output. In the beginning, data gathering was made in a semi-automatic way due to the problems caused in the page by the use of Javascript. After looking for possible solutions, automation was achieved thanks to different crawlers and scrapping software such as CasperJS. After getting the raw data, a transformation of the information was needed so the automatic learning algorithms could achieve their predictions. This information processing was made with software in Java. Afterwards, several analysis were carried out to help us reduce the error of the regression. These analysis consisted on figures made with scripts on R using the most representative attributes of the athletes, which allowed to draw conclusions on the low number of workouts of some runners. Through a filter of said runners we managed to considerably reduce the error. Lastly, a proof of concept test was carried out with the help of an athlete in our environment. His previous workouts were collected, as well as his marathon record, for the purpose of formatting them in the way that resulted more efficient during the tests and that is legible by the automatic learning algorithms. It is worth highlighting the fact that in spite of the runner's problems toward the end of the race, when his records worsened due to recent medical tests, the results of the predicting algorithm were satisfactory.

[es] Este estudio se ha centrado en predecir los tiempos de finalización de carreras de atletismo de distancia maratón. Esta predicción está basada en los entrenamientos de los corredores durante sus 6 semanas previas a la prueba. En el punto de partida de este trabajo no se disponía de ninguna base de datos ni de entrenamientos ni de carreras, por lo que para lograr el objetivo de este trabajo se ha realizado un análisis de las distintas fuentes de las que extraer la información necesaria, es decir, sus entrenamientos, su marca de maratón y las características de los corredores. La fuente por la que se ha optado después de este análisis es Strava. Una vez elegida la fuente ha sido necesario la automatización de la descarga para conseguir el mayor número de datos posibles. La automatización es importante puesto que cuanto mayor sea el volumen de datos disponibles, mayor es el rendimiento que nos ofrecen los algoritmos de aprendizaje automático. En primer lugar la recopilación de los datos se efectuó de manera semiautomática debido a dificultades para ejecutar el Javascript de las páginas. Finalmente, tras analizar distintas posibles soluciones, la completa automatización del proceso se realizó con diversos crawlers y programas de scrapping como CasperJS. Después de conseguir todos los datos en bruto ha sido necesaria una transformación de los datos disponibles para que los algoritmos de aprendizaje automático pudieran conseguir predicciones válidas. Este procesado de datos se ha realizado mediante programas en Java. Posteriormente se han realizado diversos análisis y filtrados de los datos que nos han permitido mejorar la predicción de las marcas. Estos análisis han consistido en elaborar gráficas mediante scripts en R con los atributos más representativos de los corredores, con las cuales se han extraído conclusiones sobre el bajo número de entrenamientos de algunos corredores o entrenamientos anómalos. Mediante el filtrado de los corredores con información limitada se ha conseguido reducir el error de forma considerable. Por último se ha llevado a cabo una prueba de concepto con un atleta de nuestro entorno. Se han recogido sus entrenamientos previos y su marca de maratón para, posteriormente, darles el formato que mejor nos ha funcionado durante las pruebas y que es legible por los algoritmos de aprendizaje automático. Cabe resaltar que a pesar de los problemas que el atleta tuvo en la prueba, en la que sus tiempos cayeron en los últimos kilómetros por unas pruebas médicas recientes, los resultados han sido satisfactorios.