Kaggle: Donde los científicos de datos aprenden y compiten

0
11

La ciencia de datos suele ser más un arte que una ciencia, a pesar del nombre. Empieza con datos sucios y un modelo predictivo estadístico antiguo y trata de hacerlo mejor con el aprendizaje automático. Nadie revisa su trabajo ni intenta mejorarlo: si su nuevo modelo encaja mejor que el anterior, uno lo adopta y pasa al siguiente problema. Cuando los datos comienzan a derivar y el modelo deja de funcionar, actualiza el modelo desde el nuevo conjunto de datos.

Hacer ciencia de datos en Kaggle es bastante diferente. Kaggle es un ambiente y una comunidad de aprendizaje automático en línea. Tiene conjuntos de datos estándar que cientos o miles de personas o equipos intentan modelar, y hay una tabla de clasificación para cada competencia. Muchos concursos ofrecen premios en efectivo y puntos de estatus. Asimismo, para mejorar sus puntajes y ascender de nivel, las personas pueden refinar sus modelos hasta que el concurso se cierre. Pequeños porcentajes a menudo marcan la diferencia entre los ganadores y los subcampeones.

Kaggle es algo con lo que los científicos de datos profesionales pueden jugar en su tiempo libre, y los aspirantes a científicos de datos pueden usar para aprender a construir buenos modelos de aprendizaje automático.

¿Qué es Kaggle?
Visto de manera más integral, Kaggle es una comunidad en línea para científicos de datos que ofrece competencias en aprendizaje automático, conjuntos de datos, notebooks, acceso a aceleradores de capacitación y educación. Anthony Goldbloom (CEO) y Ben Hamner (CTO) fundaron Kaggle en el 2010, y Google adquirió la empresa en el 2017.

Las competencias de Kaggle han mejorado el estado del arte del aprendizaje automático en varias áreas. Uno es el mapeo de la materia oscura; otro es la investigación del VIH/SIDA. Si observa a los ganadores de las competencias de Kaggle, verá muchos modelos de XGBoost, algunos modelos de Random Forest y algunas redes neuronales profundas.

Competiciones de Kaggle
Hay cinco categorías de competencia de Kaggle: Getting Started, Playground, Featured, Research y Recruitment.

Las competiciones Getting Started son semipermanentes y están destinadas a ser utilizadas por los nuevos usuarios que recién ingresan en el campo del aprendizaje automático. No ofrecen premios ni puntos, pero tienen amplios tutoriales. Las competiciones de introducción tienen tablas de clasificación móviles de dos meses.

Las competiciones Playground están un paso por encima de Getting Started. Los premios van desde felicitaciones hasta pequeños premios en efectivo.

Las competencias en Featured son desafíos de aprendizaje automático a gran escala, que plantean problemas de predicción difíciles, generalmente con un propósito comercial. Las competiciones destacadas atraen a algunos de los expertos y equipos más formidables y ofrecen premios acumulados que pueden llegar a un millón de dólares. Eso puede sonar desalentador, pero incluso si no gana uno de estos, aprenderá de probar y leer las soluciones de otras personas, especialmente las soluciones de alto rango.

Los concursos de Research involucran problemas que son más experimentales que los problemas de competencia presentados. No suelen ofrecer premios ni puntos por su carácter experimental.

En las competiciones de Recruitment, las personas compiten para crear modelos de aprendizaje automático para los desafíos seleccionados por la empresa. Al cierre de la competencia, los participantes interesados pueden subir su currículum para que el anfitrión lo considere. El premio es, probablemente, una entrevista de trabajo en la empresa u organización que organiza el concurso.

Existen varios formatos para concursos. En una competencia estándar de Kaggle, los usuarios pueden acceder a los conjuntos de datos completos al comienzo de la competencia, descargar los datos, construir modelos a partir de los datos localmente o en Kaggle Notebooks, generar un archivo de predicción y luego cargar las predicciones como un envío en Kaggle. La mayoría de las competiciones en Kaggle siguen este formato, pero existen alternativas. Algunas competiciones se dividen en etapas. Algunas son concursos de códigos que deben enviarse desde un Kaggle Notebook.

Conjuntos de datos de Kaggle
Kaggle aloja más de 35 mil conjuntos de datos. Estos se encuentran en varios tipos de formatos de publicación, incluidos valores separados por comas (CSV) para datos tabulares, JSON para datos en forma de árbol, bases de datos SQLite, archivos ZIP y 7z -a menudo utilizados para conjuntos de datos de imágenes- y conjuntos de datos de BigQuery, que son conjuntos de datos SQL de varios terabytes, alojados en los servidores de Google.

Existen varias formas de encontrar conjuntos de datos de Kaggle. En la página de inicio de Kaggle  encontrará una lista de conjuntos de datos «populares” y conjuntos de datos cargados por las personas a las que sigue. En la página de conjuntos de datos de Kaggle, encontrará una lista de conjuntos de datos -inicialmente ordenados por «más calientes” pero con otras opciones de pedido- y un filtro de búsqueda. También puede utilizar etiquetas y etiquetar páginas para localizar conjuntos de datos, por ejemplo https://www.kaggle.com/tags/crime.

Puede crear conjuntos de datos públicos y privados en Kaggle desde su máquina local, URL, repositorios de GitHub y outputs de Kaggle Notebook. Puede configurar un conjunto de datos creado a partir de una URL o un repositorio de GitHub para que se actualice periódicamente.

Por el momento, Kaggle tiene bastantes conjuntos de datos, desafíos y notebooks de COVID-19. Ya existen varias contribuciones de la comunidad al esfuerzo por comprender esta enfermedad y el virus que la causa.

Kaggle Notebooks
Kaggle soporta tres tipos de notebook: scripts, scripts de RMarkdown y Jupyter Notebooks. Los scripts son archivos que ejecutan todo como código de forma secuencial. Puede escribir notebooks en R o Python. Los codificadores de R y las personas que envían códigos para concursos suelen utilizar scripts; los codificadores de Python y las personas que realizan análisis de datos exploratorios tienden a preferir los Jupyter Notebooks.

Los notebooks de cualquier tipo pueden tener opcionalmente GPU (Nvidia Tesla P100) o aceleradores de TPU gratuitos y pueden utilizar los servicios de Google Cloud Platform, pero hay cuotas que se aplican, por ejemplo, 30 horas de GPU y 30 horas de TPU por semana. Básicamente, no use una GPU o TPU en un notebook a menos que necesite acelerar el entrenamiento del aprendizaje profundo. El uso de los servicios de Google Cloud Platform puede generar cargos en su cuenta de Google Cloud Platform si excede las asignaciones de nivel gratuito.

Puede agregar conjuntos de datos de Kaggle a los notebooks de Kaggle en cualquier momento. También puede agregar conjuntos de datos de la competencia, pero solo si acepta las reglas de la competencia. Si lo desea, puede encadenar notebooks agregando la salida de un notebook a los datos de otro notebook.

Los notebooks se ejecutan en kernels, que son esencialmente contenedores de Docker. Puede guardar versiones de sus notebooks a medida que los desarrolla.

Puede buscar notebooks con una consulta de palabras clave del sitio y un filtro en los notebooks, o navegando por la página de inicio de Kaggle. También puede utilizar la lista de Notebook; al igual que los conjuntos de datos, por defecto, el orden de los notebooks en la lista es de acuerdo con su «hotness”. Leer notebooks públicos es una buena forma de aprender cómo las personas hacen ciencia de datos.

Usted puede colaborar con otras personas en un notebook de varias formas, dependiendo de si el notebook es público o privado. Si es público, puede otorgar privilegios de edición a usuarios específicos -todos pueden ver-. Si es privado, puede otorgar privilegios de visualización o edición.

API publica de Kaggle
Además de crear y ejecutar notebooks interactivos, puede interactuar con Kaggle utilizando la línea de comandos de Kaggle desde su máquina local, que llama a la API pública de Kaggle. Puede instalar la CLI de Kaggle utilizando el pip del instalador de Python 3, y autenticar su máquina descargando un token de API del sitio de Kaggle.

La CLI y la API de Kaggle pueden interactuar con competiciones, conjuntos de datos y notebooks (kernels). La API es de código abierto y está alojada en GitHub en https://github.com/Kaggle/kaggle-api. El archivo README proporciona la documentación completa para la herramienta de línea de comandos.

Comunidad y educación de Kaggle
Kaggle alberga microcursos y foros de discusión de la comunidad. Los temas del foro incluyen Kaggle en sí, cómo comenzar, comentarios, preguntas y respuestas, conjuntos de datos y microcursos. Los microcursos cubren habilidades relevantes para los científicos de datos en unas pocas horas cada uno: Python, aprendizaje automático, visualización de datos, Pandas, ingeniería de funciones, aprendizaje profundo, SQL, análisis geoespacial, etc.

Considerando todo, Kaggle es muy útil para aprender ciencia de datos y para competir con otros en desafíos de ciencia de datos. También es muy útil como repositorio de conjuntos de datos públicos estándar. Sin embargo, no sustituye a los servicios de ciencia de datos en la nube de pago ni a la realización de su propio análisis.

Martin Heller, InfoWorld.com