Kaggle: 3 formas de acelerar el aprendizaje del Machine Learning

En este post les comparto tres formas de usar Kaggle (una comunidad online dedicada a la ciencia de datos y al Machine Learning) como una herramienta para acelerar el aprendizaje del Machine Learning. Al final les voy compartir también los mejores recursos para que le saquen el máximo provecho a Kaggle.

¡Así que listo, comencemos!

Video

Como siempre, en el canal de YouTube encontrarán el video de este post:

Introducción: ¿Qué es Kaggle?

En un post anterior les compartí una guía para aprender Machine Learning. Pues la herramienta perfecta para complementar este aprendizaje es Kaggle, una comunidad online en donde entusiastas y expertos del Machine Learning comparten su conocimiento para la solución de diferentes problemas.

En la actualidad Kaggle tiene más de 50,000 datasets públicos y más de 400,000 notebooks con código publicado por miembros de la comunidad. Además contiene una sección de competencias, en donde podemos ponernos a prueba independientemente de nuestro nivel.

Los requisitos para comenzar a usar Kaggle son realmente muy pocos. En esencia es necesario que se sientan cómodos usando Python o R como lenguajes de programación (personalmente les sugiero Python, el más usado en Machine Learning) y que sepan herramientas básicas de estos lenguajes como lectura, manipulación y almacenamiento de datos y las librerías básicas para procesar datos numéricos, para graficar y saber además usar modelos ya implementados en librerías. Cámara frontal y colocar ahí mismo el texto que se menciona

También, si volvemos a las etapas de un proyecto, que les mencioné en el post sobre cómo aprender Machine learning, veremos que Kaggle se puede aprovechar como herramienta para que desarrollen sus habilidades en la mayor parte de estas etapas, desde el análisis exploratorio y el pre-procesamiento de los datos hasta el desarrollo del modelo.

Las tres formas de usar Kaggle para acelerar el aprendizaje del Machine Learning

Bien, con esto ya estamos listos para ver las tres formas de aprovechar al máximo Kaggle para acelerar el aprendizaje del machine learning:

  1. los Notebooks,
  2. los sets de datos y
  3. las competencias.

Los Notebooks

La sección *Notebooks* de Kaggle

Los Notebooks son simplemente el código y tutoriales compartidos por los usuarios de Kaggle y que han usado para resolver diferentes problemas de Machine Learning.

Estos Notebooks son tal vez el recurso más útil en el aprendizaje del Machine Learning, pues allí podemos aprender de lo desarrollado por otros. Si aprovechamos esta herramienta podemos aprender de los expertos, y esto acelerará inmensamente nuestro aprendizaje del Machine Learning.

Kaggle cuenta con un buscador que nos permite encontrar fácilmente Notebooks asociados al tema que estemos trabajando:

El buscador de *Notebooks* en Kaggle

Esta búsqueda la podemos filtrar por tipo de lenguaje de programación (que puede ser Python o R), por el tipo de procesamiento que realice o si hace parte de una competencia o de un dataset (de esto vamos a hablar más adelante), o incluso por áreas de interés. Les recomiendo organizar los resultados de la búsqueda por los notebooks más votados.

Además, a medida que adquirimos experiencia, podemos también publicar y compartir nuestros propios Notebooks. Y lo interesante de Kaggle es que podemos no sólo compartir este código sino ejecutarlo en la misma plataforma.

Crear y compartir un Notebook es muy sencillo: simplemente vamos a la sección “Notebooks” y damos click en “New notebook”:

Creación de un nuevo *Notebook* en Kaggle

Automáticamente Kaggle abre un editor en el que podemos introducir código, texto, imágenes e incluso videos, y acceder a recursos de hardware online como CPUs, GPUs y TPUs:

El editor de *Notebooks* de Kaggle

Al final del post les voy a compartir el top-5 de los Notebooks más útiles, tanto para principiantes como para los que estén en un nivel intermedio o avanzado.

Los Datasets

La sección *Datasets* de Kaggle

La segunda forma de usar Kaggle para acelerar el aprendizaje del Machine Learning son los Datasets.

Supongamos que conocemos toda la teoría básica y las herramientas de programación y queremos comenzar a desarrollar modelos de visión por computador, pero no contamos con el set de datos.

Los Datasets de Kaggle son súper útiles en este caso porque fácilmente podemos realizar la búsqueda por palabra clave o por áreas de interés y encontrar un dataset para la aplicación que estemos desarrollando.

Cuando ingresamos a un dataset encontraremos una descripción general, con un breve resumen de su contenido (que para el caso de Machine Learning usualmente corresponde a los sets de entrenamiento y validación):

Pestañas de navegación de un *Dataset* en Kaggle

También encontraremos el enlace de descarga del set de datos así como un explorador que nos permite ver, en la mayoría de los casos, el contenido del Dataset desde el mismo navegador.

La pestaña “Tareas” sirve como un block de notas, en donde podemos describir brevemente el uso que daremos al Dataset, así como las posibles ideas sobre el pre-procesamiento de los datos, los modelos que podríamos usar, las métricas de desempeño para validarlo, etc.

En la pestaña “Notebooks” vamos a encontrar el código desarrollado por otros miembros o por nosotros mismos. Y en este caso Kaggle tiene una herramienta muy útil que nos permite enlazar directamente un dataset a nuestro Notebook en la plataforma, sin necesidad de descargarlo localmente.

También, al final del post les voy a compartir el top-5 de los datasets de Kaggle para diferentes campos de aplicación del Machine Learning.

Las competencias

Por ahora vamos con la tercera forma de usar Kaggle para acelerar el aprendizaje del Machine Learning. Estas son las competencias, que son retos abiertos a toda la comunidad de Kaggle y con diferentes niveles de complejidad, que en algunos casos incluyen hasta premios en dinero:

La sección *Competencias* de Kaggle

Los retos pueden ser desarrollados de forma individual o por equipos, y se dividen en varias categorías:

Así que las competencias de Kaggle son la estrategia perfecta para poner a prueba nuestras habilidades en el Machine Learning, pues a la vez que aprendemos haciendo estaremos comparando nuestro desempeño con el de otros miembros de la plataforma.

Y esta interacción nos va a permitir identificar en qué somos fuertes y qué habilidades debemos aún mejorar como parte de nuestro aprendizaje del Machine Learning.

Típicamente al ingresar a una competencia veremos un resumen de la misma, con una descripción del reto, así como la forma como se evaluará el desempeño del modelo de Machine Learning que desarrollemos. También se especifica el formato que se debe usar para subir los resultados y los requisitos del código implementado, junto con las fechas más importantes y las reglas para participar:

Opciones de navegación de una *Competencia* en Kaggle

Desde luego contiene una pestaña con el set de datos (usualmente dividido en entrenamiento y validación) y los “notebooks” desarrollados por cada competidor. Y por supuesto está la pestaña con la tabla de clasificación, que se actualiza constantemente.

Mis sugerencias: los mejores recursos en Kaggle

Bien, habiendo visto cómo usar Kaggle para acelerar el aprendizaje del Machine Learning, veamos los mejores recursos que les sugiero para aprovechar al máximo esta plataforma.

Top-5 Notebooks

Para los que estén interesados en visualización de datos les recomiendo estos dos notebooks con herramientas útiles para obtener gráficas usando las librerías Matplotlib y Plotly de Python:

Para el análisis exploratorio de datos, una de las fases más importantes del desarrollo de un proyecto de Machine Learning, les recomiendo este notebook que contiene un tutorial detallado con diferentes formas de realizar el análisis preliminar de los datos:

En el segundo lugar tenemos este notebook que resulta muy útil para trabajar con sets de datos muy grandes. Acá se muestran diferentes técnicas para procesar un set de datos cuando se tienen limitaciones de memoria RAM, así como diferentes librerías en Python para la manipulación de estos datos:

Y en el primer lugar está este tutorial donde con un completo ejemplo se pueden comprender todas las fases de desarrollo de un proyecto en data science y que se puede aplicar perfectamente al Machine Learning:

Mejores Datasets

En el caso de los datasets he organizado varios top-3 dependiendo de las áreas de interés.

Si quieren desarrollar proyectos de clasificación les sugiero los datasets de detección de enfermedades cardíacas de la universidad de California, el de lugares de referencia de Google y el de titulares para la detección de sarcasmo. Con estos tres podrán probar modelos de Machine Learning para la clasificación de datos estructurados, de imágenes y de texto:

Para el caso de visión por computador pueden utilizar los datasets para el reconocimiento facial, para la segmentación de escenas con aplicaciones a vehículos autónomos o el de detección de objetos en escenarios reales:

Si les interesa el procesamiento del lenguaje natural pueden usar los datasets de noticias falsas o reales, el de amazon reviews o el de reviews de hoteles de trip advisor (ambos para análisis de sentimientos):

Mejores competencias

Y en el caso de las competencias también les comparto el top-3 dependiendo del tipo de competencia.

Para principiantes están la clásica de titanic, en donde se debe crear un modelo de Machine Learning capaz de predecir qué pasajeros podrían haber sobrevivido; también está la de predicción de los precios de la vivienda (un problema de regresión) y la de twitter para predicción de desastres (usando técnicas de procesamiento natural del lenguaje):

En las competencias destacadas están la de inspección de pasajeros en aeropuertos, la de detección de deepfakes en videos y la de categorización automática de videos de youtube dependiendo de su contenido:

Y en las de investigación les sugiero la de predicción de terremotos, la de predicción de los mecanismos de acción de nuevos medicamentos y la de predicción del tráfico en la web:

Conclusión

Bien, espero que con todas las sugerencias y recursos que les acabo de mostrar puedan aprovechar al máximo Kaggle para acelerar su proceso de aprendizaje del Machine Learning.

comments powered by Disqus