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

La ciencia de datos suele ser más un arte que una ciencia, a pesar del nombre. Comienza con datos sucios y un modelo predictivo estadístico antiguo y trata de hacerlo mejor con el aprendizaje automático. Nadie revisa tu trabajo ni intenta mejorarlo: si tu nuevo modelo encaja mejor que el anterior, lo adoptas y pasas 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 entorno 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, y las personas pueden refinar sus modelos hasta que el concurso se cierre, para mejorar sus puntajes y ascender en la escalera. 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 de aprendizaje automático, conjuntos de datos, computadoras portátiles, acceso a aceleradores de capacitación y educación. Anthony Goldbloom (CEO) y Ben Hamner (CTO) fundaron Kaggle en 2010 y Google adquirió la empresa en 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: Introducción, Zona de juegos, Destacado, Investigación y Reclutamiento.

Las competiciones de introducción son semipermanentes y están destinadas a ser utilizadas por nuevos usuarios que recién comienzan a entrar 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 de parques infantiles están un paso por encima de Comenzar en dificultad. Los premios van desde felicitaciones hasta pequeños premios en efectivo.

Las competencias destacadas 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 investigación 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 contratación, 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 (potencialmente) una entrevista de trabajo en la empresa u organización que organiza el concurso.

Hay 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, crear modelos a partir de los datos localmente o en Kaggle Notebooks (ver más abajo), 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. Algunos son concursos de códigos que deben enviarse desde un cuaderno Kaggle.

Conjuntos de datos de Kaggle

Kaggle aloja más de 35 mil conjuntos de datos. Estos se encuentran en una variedad 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 múltiples. Conjuntos de datos SQL de terabyte alojados en los servidores de Google.

Hay 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 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 orden) y un filtro de búsqueda. También puede usar etiquetas y páginas de etiquetas para localizar conjuntos de datos, por ejemplo, //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 salidas 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 portátiles de COVID-19. Ya ha habido varias contribuciones de la comunidad al esfuerzo por comprender esta enfermedad y el virus que la causa.

Cuadernos Kaggle

Kaggle admite tres tipos de cuadernos: scripts, scripts RMarkdown y cuadernos Jupyter. Los scripts son archivos que ejecutan todo como código de forma secuencial. Puede escribir cuadernos 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 cuadernos de Jupyter.

Las computadoras portátiles de cualquier tipo pueden tener opcionalmente aceleradores de GPU (Nvidia Tesla P100) o TPU gratuitos y pueden usar los servicios de Google Cloud Platform, pero existen 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 una computadora portátil a menos que necesite acelerar el entrenamiento de 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 cuadernos 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 cuadernos agregando la salida de un cuaderno a los datos de otro cuaderno.

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

Puede buscar cuadernos con una consulta de palabras clave del sitio y un filtro en los cuadernos, 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, el orden de los cuadernos en la lista es por "actualidad" de forma predeterminada. Leer cuadernos públicos es una buena forma de aprender cómo las personas hacen ciencia de datos.

Puede colaborar con otras personas en un cuaderno de varias formas, dependiendo de si el cuaderno 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 pública de Kaggle

Además de crear y ejecutar cuadernos 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 con el instalador de Python 3 pipy 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 cuadernos (kernels). La API es de código abierto y está alojada en GitHub en //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 comunitarios. Los temas del foro incluyen el propio Kaggle, cómo comenzar, comentarios, preguntas y respuestas, conjuntos de datos y micro-cursos. Los micro-cursos 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.

Con 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.