Kaggle Simplificado: Guía Paso a Paso para Nuevos Competidores

Nicolás Alayo Arias
6 min readMar 23, 2024

--

Participar en una competición en Kaggle puede ser una experiencia transformadora. Es un salto significativo en tu viaje como experto en machine learning, ya que te permite aplicar tus conocimientos a datos del mundo real.

Empieza sin miedo. Aunque puedas encontrarte con modelos, algoritmos y técnicas desconocidas, hay algo valioso en Kaggle: su comunidad. Cuando te unes a una competencia, no estás solo. Los competidores más experimentados comparten sus notebooks y estrategias en los foros, lo que puede ser de gran ayuda para tu primera entrega.

En este blog, exploraremos superficialmente el flujo de trabajo para desarrollar una solución en Kaggle. También abordaremos algunos conceptos básicos que debes conocer. Para ilustrar, utilizaré mi última participación en la WiDS Datathon como ejemplo.

Cuando te sumerges en una competición de Kaggle, te encuentras con diferentes pestañas y secciones. Una de las primeras que debes explorar es la de Overview.

Overview

En la sección de resumen, podrás leer sobre el objetivo del datatón, las fechas de inicio y finalización, los organizadores, los premios y detalles generales sobre la participación.

Por ejemplo, en el caso del WiDS Datathon, el objetivo fue entrenar un modelo de clasificación binaria para determinar si a pacientes con metástasis se les detectó la condición dentro de los primeros 90 días después del triaje médico.

Aunque el premio mencionado es “Kudos” (que representa reconocimiento), en algunas competiciones, como WiDS, también puede haber un premio monetario. Esta información se encuentra en otras secciones del resumen.

El organizador puede proporcionar más detalles sobre la competición, como: criterio de evaluación, tutoriales, recursos, etc.

Data

En la sección de datos, encontramos el conjunto de datos en formato CSV que deberás descargar. Aquí también hallaremos información esencial sobre las diferentes columnas que servirán como predictores junto con la variable objetivo.

Generalmente, hay tres archivos disponibles:

  1. Train: Este archivo contiene datos para entrenar nuestro modelo. Es similar al siguiente archivo.
  2. Test: Similar al archivo de entrenamiento, pero sin la columna que contiene la variable objetivo. Recordemos que esta variable es la que intentamos predecir con nuestro modelo.
  3. Ejemplo de Entrega: Este archivo tiene solo dos columnas: el ID del paciente y las predicciones generadas por nuestro modelo.

En el caso específico de WiDS, tuvimos más de 80 columnas en el conjunto de datos de entrenamiento. La variable objetivo podía tomar dos valores: 1 o 0.

Aquí está el contexto: todos los pacientes en el conjunto de datos tuvieron cáncer de mama y luego desarrollaron una metástasis. Si a un paciente se le detecta dentro de los 90 días siguientes al cribado, el valor de la variable objetivo es 1. Esto significa que la detección fue temprana. De lo contrario, se coloca un 0.

En el conjunto de prueba (test), no existe esta columna de variable objetivo. Esto debido a que se utilizaran estos datos para hacer tus predicciones, subir tu entrega y calcular un puntaje en la tabla de clasificación.

El ejemplo de entrega inicialmente requería que las predicciones fueran 0 o 1. Sin embargo, dado que la métrica de evaluación era el AUC-ROC, los organizadores consideraron más apropiado proporcionar la probabilidad de detección temprana, es decir, la probabilidad de obtener un 1.

Ejemplo de entrega

Code y Discussion

Notebooks de los participantes

Para generar tus predicciones, deberás ejecutar scripts o notebooks. También podrías crear un notebook específico para el análisis exploratorio de datos. En esta sección de código, encontrarás ejemplos prácticos y soluciones implementadas por otros participantes. Los competidores más experimentados comparten sus enfoques y estrategias para obtener feedback y ayudar a la comunidad.

En la sección de discusión, los participantes comparten ideas, hacen preguntas y buscan asesoramiento. Aquí no necesariamente se trata de código, sino de intercambiar conocimientos y experiencias. Si te encuentras atascado o necesitas mejorar tu puntuación, este es el lugar perfecto para buscar ayuda. En el último WiDS, muchos participantes compartieron estrategias y tutoriales para superar obstáculos.

Participante pidiendo ideas

Si tienes alguna duda, te recomiendo publicar una discusión en el foro, preferiblemente en inglés. ¡La comunidad de Kaggle está lista para ayudarte!

Leaderboard

Tabla de clasificación pública

La tabla de clasificación, también conocida como leaderboard, es un elemento fundamental en las competiciones de Kaggle. Existen dos tipos de tablas:

  1. Pública: Durante una competición en curso, cuando realizas una entrega (submission), el puntaje que aparece en la tabla corresponde a la tabla pública. Esta utiliza una porción de los datos de prueba para evaluar tus predicciones. Por ejemplo, en el caso de WiDS, se utilizó el 52% de los datos de prueba para calcular los puntajes en esta tabla.
  2. Privada: La tabla privada es la que realmente importa al final de la competición. Aquí se evalúan tus predicciones utilizando el 48% restante de los datos de prueba. Es importante tener en cuenta que la evaluación final se basa en esta tabla, y puede haber cambios significativos en las posiciones finales.

Consejo clave: Evita sobreajustar tus predicciones en la tabla pública. A veces, incluso si apareces en los primeros puestos en la tabla pública, tu posición puede cambiar drásticamente en la tabla privada al final de la competición.

Un ejemplo interesante: en el último WiDS, el tercer lugar en la tabla privada estaba en la posición 127 en la tabla pública. Esto demuestra cómo las cosas pueden cambiar al considerar el resto de los datos de prueba.

Tabla de clasificación privada

Submissions

Mis 2 entregas finales

En esta sección, podrás realizar tus entregas de predicciones. Es fundamental que sigas el mismo formato que se muestra en el ejemplo de la sección Datos. De lo contrario, es probable que se produzca un error al intentar enviar tus resultados.

Todas tus entregas se listarán aquí, junto con su puntaje público y una casilla de verificación que podrás seleccionar durante la competencia.

Una estrategia común para elegir tus dos mejores entregas es seleccionar aquella con el puntaje público más alto y la que obtenga el mejor puntaje en tu validación local. Recuerda que el puntaje privado no se revela hasta la finalización de la competencia.

Flujo de Trabajo en Kaggle (visión general)

  1. Entendimiento del Problema: Comenzamos por comprender a fondo el problema. La información proporcionada suele ser suficiente para dar los primeros pasos.
  2. Análisis Exploratorio de Datos: En esta fase, exploramos los datos. Identificamos características relevantes en el conjunto de datos que pueden servir como predictores durante el entrenamiento del modelo.
  3. Validación Local: Desarrollamos una estrategia sólida para validar nuestro modelo localmente. Esto nos permite evaluar la capacidad predictiva del modelo y tomar decisiones informadas.
  4. Modelado: Aquí es donde entra en juego el modelado. Probamos diferentes modelos, ajustamos hiperparámetros y refinamos nuestra solución. En competiciones como estas, se permiten múltiples envíos, por lo que iteramos y mejoramos continuamente.

Para complementar este blog, te invito a ver la entrevista “MINDS #1 con Ulises Montoya” en YouTube, donde se revelan claves para triunfar en datathons y comenzar en el machine learning.

--

--

Nicolás Alayo Arias
0 Followers

Ingeniero de Sistemas | Machine Learning | Escribo sobre datos e inteligencia artificial para The Minds Incubator | linkedin.com/in/isma-alayo | 🧠🚀