¿Cómo funciona una competición de Data Science?

¿En qué consiste una competición de Data Science?

Una competición empieza con el planteamiento del problema que se quiere resolver. Nos darán información básica diciendonos quién está esponsorizando esta competición, quién y cómo ha recogido los datos. Nos darán una breve descripción del problema y nos pondrán en contexto, explicándonos todo lo que hemos de saber sobre el tema. Normalmente no tendrás conocimientos previos ya que se trata de datos sobre temas muy específicos (por ejemplo funcionamiento de una turbina o tipos de insectos en el Amazonas).

También nos dirán qué es lo que se quiere conseguir de la competición, y unas métricas de evaluación.

Finalmente nos darán un dataset que puede tener muy diversos formatos. Lo más común es un par de archivos CSV que se correspondan a train y test set. Otros posibles formatos pueden ser carpetas con imágenes de distintas categorías, archivos de sonidos, documentos PDF, … Las posibilidades son infinitas. Los datos que nos den dependerán mucho de cada competición, de quien haya procesado los datos y con qué objetivo (su objetivo puede ser ofuscar los datos para complicarnos el trabajo).

La calidad de los datos puede ser de muchos tipos, nos podremos encontrar con unos datos que ya han sido procesados previamente y podemos empezar a trabajar con ellos directamente, o nos podemos encontrar unos datos con muchos problemas (faltan valores, tipos de datos distintos mezclados en una misma columna, datos mal escalados, …). Esto solo lo sabremos una vez hayamos empezado a analizar los datos y nos hayamos encontrado con los problemas.

Además de los datos nos darán una descripción de ellos, nos dirán qué significa cada columna, cómo se ha recogido la información, qué valores puede tener, …

En algunas competiciones podremos utilizar datos externos que nos ayuden. Por ejemplo podríamos buscar datos de meteorología para una competición en la que trabajamos con datos de ventas de una tienda para ver si los días de lluvia afectan a las ventas. Es importante leer bien las reglas de la competición ya que si no está permitido, el uso de datos externos nos puede descalificar de la competición.

También nos explicarán cómo se evaluará la competición, cómo se decidirá quien es el ganador de una competición. Se pueden utilizar diversas métricas para evaluar la calidad del trabajo, algunos ejemplos son:

  • Accuracy (precisión)
  • AUC
  • RMSE
  • MAE

¿Qué hacemos durante la competición?

Generalmente lo que nos pedirán será generar unas predicciones para unos datos concretos. Es decir tendremos que crear un algoritmo/modelo de inteligencia artificial capaz de predecir la variable objetivo con los datos de train que nos hayan dado y obtener las predicciones para los datos de test que nos den. Estas predicciones las guardaremos en un archivo de las características que nos pidan en la competición y lo enviaremos para que sea juzgado (según la competición será ejecutado automáticamente por un sistema informático o manualmente por una persona).

No todas las competiciones serán así. Algunas competiciones sólo nos pedirán generar visualizaciones de los datos, otras juzgaran no solo el resultado de las predicciones, sino también la calidad del código que las genera. Otras competiciones evaluarán el rendimiento del algoritmo y valorarán lo rápido que se ejecute. Cada competición es un mundo y nos podemos encontrar con muchos casos distintos donde utilicen otros criterios de evaluación.

El leaderboard

El leaderboard es el ranking de los participantes. Aquí podrás ver cómo ha funcionado tu trabajo en comparación con el resto de participantes.

Ejemplo de leaderboard en Kaggle
Ejemplo de leaderboard en Kaggle

En muchas competiciones el leaderboard que ves mientras la competición aún está activa es distinto al que verás cuando la competición acabe. Mientras la competición está activa, el leaderboard se calcula solo con un porcentaje de los datos del test set. Cuando la competición acaba, se calcula el leaderboard con el resto de datos del test set. Esto se hace porque si se evaluase el ranking con todos los datos de test, los participantes podrían ir enviando predicciones específicamente diseñadas para ver cuales son las respuestas correctas. También se podría hacer overfitting a los datos de test, dando por buena una solución solo porque nos ha hecho subir posiciones en el ranking cuando en realidad no estamos generalizando bien.

Debido a esto al finalizar la competición el ranking cambia totalmente y las soluciones malas que no generalizan bien pierden puestos mientras que las que sí generalizan bien, suben.

La predicción que se usa para evaluarte al finalizar la competición variará según la competición. En algunas se usará tu mejor predicción y en otras serás tú quien la elija (ojo que puedes elegirla mal!). En Kaggle por ejemplo te darán a elegir dos de tus predicciones y se utilizará la que puntue mejor de ellas para clasificarte.

¿Por qué participar en una competición de Data Science?

Una competición es una gran oportunidad para aprender, te vas a forzar a ti mismo a buscar nuevas técnicas para conseguir el mejor resultado. El hecho de tener unas fechas límites también va a sacar lo mejor de ti mismo para acabar la competición a tiempo y en la mejor posición posible.

Son también un gran lugar para compartir conocimientos, en Kaggle puedes encontrar un apartado de Kernels que es donde otros competidores han colgado el código de su solución. Se pueden encontrar explicaciones muy buenas y aprender mucho. También hay un apartado de discusiones que funciona como un foro donde puedes hablar con otros competidores y compartir experiencias y pensamientos.

Si obtienes un buen resultado de una competición, darás a conocer tu nombre entre la comunidad de data science y te será más fácil encontrar un trabajo. Por su puesto nadie te asegura nada.

Foto de un trofeo
Photo by Giorgio Trovato on Unsplash

No nos olvidemos del premio que puede ser un regalo o directamente dinero.

¿Dónde encontrar competiciones de Data Science?

Hay varias webs en las que se van colgando regularmente competiciones de data sicence. Estas son algunas de ellas:

Por último aunque quizá lo más recomendable para empezar, puedes participar en competiciones locales en las que harás un equipo con otros participantes. Esta es una gran ocasión para aprender a trabajar en equipo y aprender técnicas nuevas de tus compañeros. Para encontrar competiciones locales variará mucho según donde vivas, un inicio puede ser buscar en Meetup, o preguntarle a personas que conozcas que puedan conocer alguna competición local.

Albert Sanchez Lafuente

Estudié Ingenieria Industrial en la UPC. Continué mi formación en inteligencia artificial junto a la asociación Saturdays.AI de la que he formado parte del equipo de Barcelona desde sus inicios.