Visión general
- Los proyectos de ciencia de datos de código abierto agregan mucho valor a su currículum y lo ayudan a destacarse en una entrevista
- Aquí hay 7 proyectos de ciencia de datos de código abierto en los que debería trabajar este mes
Introducción
Les voy a dar un consejo que desearía que alguien me hubiera dado cuando comencé mi carrera en ciencia de datos. Cuando navegaba por el viaje lleno de obstáculos a través de los remansos de la ciencia de datos, tuve una gran lucha antes de conseguir mi primer papel. Tenía todas las calificaciones (o eso pensé) pero algo parecía estar mal.
Esa brecha entre lo que traje a la mesa y lo que el entrevistador esperaba era experiencia en proyectos de ciencia de datos.
Los proyectos de ciencia de datos agregan mucho valor a su currículum, especialmente si es un principiante. La mayoría de los recién llegados tendrán certificaciones, pero agregar proyectos de ciencia de datos de código abierto le dará una ventaja significativa sobre la competencia. Y créame, hay una asombrosa cantidad de proyectos de ciencia de datos de código abierto para usted.
Aquí, he reunido una lista de los principales proyectos de ciencia de datos de código abierto que se crearon o lanzaron en junio. Esto es parte de mi serie de proyectos mensuales donde presento los mejores proyectos de ciencia de datos de código abierto en GitHub.
Si desea ver los proyectos anteriores, los he reunido en forma de curso gratis. Están estructurados por dominio (proyectos de visión por computadora, proyectos de PNL, etc.) para que pueda concentrarse en el proyecto que desea. Y si es nuevo en GitHub, asegúrese de estar inscrito en este curso gratuito de introducción a Git y GitHub.
Proyectos de ciencia de datos de código abierto para mejorar su currículum
He dividido los proyectos en tres categorías según su dominio:
- Aprendizaje automático
- Visión por computador
- Otros proyectos de ciencia de datos de código abierto, incluido un impresionante conjunto de datos
Veamos cada categoría individualmente.
Proyectos de aprendizaje automático de código abierto
Aquí es donde obtendrá el terreno del aprendizaje automático. Aquí cubriremos tres proyectos útiles de código abierto relacionados con el aprendizaje automático. Puede elegir un proyecto en función de sus intereses o probarlos todos. Intenté mantenerlos lo más diversos posible para que veas un proyecto sobre documentos de aprendizaje automático y otro sobre la creación de canalizaciones de aprendizaje automático.
Si está buscando orientación o es nuevo en este campo, lo dirigiré a algunos recursos de aprendizaje útiles:
Leer artículos de investigación sobre aprendizaje automático es una perspectiva bastante abrumadora para la mayoría de los profesionales, y mucho menos para los principiantes. Los científicos de datos y los investigadores de aprendizaje automático tienden a escribir artículos extremadamente técnicos que incluso los expertos tienen dificultades para decodificar. En realidad, este es uno de los mayores puntos débiles en nuestro campo.
Por lo tanto, cualquier esfuerzo por romper la complejidad es siempre bienvenido. Este útil proyecto es una colección de artículos sobre ciencia de datos y aprendizaje automático «con ilustraciones, anotaciones y breves explicaciones de palabras clave técnicas, términos y estudios previos que facilitan la lectura del artículo y la idea principal».
Este proyecto fue de código abierto en GitHub la semana pasada, por lo que se actualiza con regularidad. En este momento, ya podemos ver algunos artículos allí para que pueda revisarlos y tener una idea de cómo se han realizado las anotaciones. Me encanta especialmente la anotación YOLOv1:
¡Muy genial! Continúe y explore esto y los otros documentos. ¡Hay mucho que aprender!
Este es un proyecto bastante interesante para cualquiera que tenga un poco de conocimiento en ciencia de datos.
NeoML es un marco integral de aprendizaje automático que nos permite crear, entrenar e implementar modelos de aprendizaje automático. En resumen, podemos crear una canalización de aprendizaje automático de extremo a extremo sin la molestia de gastar mucho dinero en soluciones listas para usar.
Los científicos de datos y los ingenieros de datos pueden usarlo para tareas de visión por computadora y procesamiento de lenguaje natural (NLP), como preprocesamiento de imágenes, clasificación, análisis de diseño de documentos, OCR y extracción de datos de documentos estructurados y no estructurados.
Aquí está la característica clave de NeoML que tomé de su repositorio de GitHub:
- Redes neuronales compatibles con más de 100 tipos de capas
- Aprendizaje automático tradicional: más de 20 algoritmos (clasificación, regresión, agrupación en clústeres, etc.)
- Soporte de CPU y GPU, inferencia rápida
- Soporte ONNX
- Idiomas: C ++, Java, Objective-C
- Multiplataforma: el mismo código se puede ejecutar en Windows, Linux, macOS, iOS y Android
Aquí hay un artículo para principiantes sobre cómo crear canalizaciones de aprendizaje automático:
Aquí hay otro proyecto que a cualquier científico de datos le encantaría, especialmente si está inclinado hacia la investigación. A menudo nos cuesta pasar de un entorno de prueba a una implementación a gran escala; no es un paso fácil de dar (realmente deberíamos apreciar el papel que desempeñan los ingenieros de datos).
Google, por supuesto, tiene una solución potencial para nosotros en forma de Caliban. Esta es una herramienta que le ayudará a iniciar y realizar un seguimiento de sus experimentos numéricos en un entorno informático aislado y reproducible. Caliban fue desarrollado por investigadores e ingenieros de aprendizaje automático en Google.
Como dicen, Caliban “hace que sea fácil pasar de un simple prototipo que se ejecuta en una estación de trabajo a miles de trabajos experimentales que se ejecutan en la nube”. Estos son los aspectos más destacados que debe tener en cuenta:
- Desarrolle su código experimental localmente y pruébelo dentro de un entorno aislado (Docker)
- Desplácese fácilmente sobre los parámetrosLos "parámetros" son variables o criterios que se utilizan para definir, medir o evaluar un fenómeno o sistema. En diversos campos como la estadística, la informática y la investigación científica, los parámetros son fundamentales para establecer normas y estándares que guían el análisis y la interpretación de datos. Su adecuada selección y manejo son cruciales para obtener resultados precisos y relevantes en cualquier estudio o proyecto.... experimentales
- Envíe sus experimentos como trabajos en la nube, donde se ejecutarán en el mismo entorno aislado
- Controle y realice un seguimiento de los trabajos
Proyectos de visión artificial de código abierto
Estoy asombrado por el progreso que estamos viendo en la visión por computadora (¡sin juego de palabras!). Parece que todos los meses, cuando me siento a escribir este artículo, me encuentro con más y más marcos innovadores y nuevos enfoques que mejoran el estado de la técnica en este campo.
Las organizaciones están recorriendo el mundo en busca de talento en visión por computadora en este momento, por lo que es un buen momento para trabajar en estos proyectos y entrar en el campo. Si aún no ha comenzado a leer sobre visión artificial, aquí hay algunos recursos útiles:
¿Qué pasa si le di una imagen de destino y le pidiera que escribiera un programa de visión por computadora que creara la imagen desde cero? ¡Sí, ese es el poder de la visión por computadora!
Este proyecto de código abierto realmente genial nos permite imitar un proceso de dibujo cuando se nos proporciona una imagen de destino. Aquí hay una pequeña demostración de cómo se ve el proceso:
No puedo esperar para poner mis manos en esto y empezar a dibujar todo tipo de cosas. Necesitará las siguientes bibliotecas de Python para ejecutar esto:
- OpenCV 3.4.1
- NumPy 1.16.2
- matplotlib 3.0.3
El desarrollador también nos ha dado un ejemplo para que pueda ejecutarlo y ver cómo se desarrolla la magia de la visión por computadora. También te sugiero que revises los siguientes artículos de OpenCV si no has trabajado con ellos antes:
Este proyecto de código abierto está dirigido a científicos de datos un poco más avanzados. Para comprender de qué se trata este proyecto, debemos comprender el concepto de superresolución de una sola imagen. En términos simples, el objetivo aquí es construir una imagen de alta resoluciónLa "resolución" se refiere a la capacidad de tomar decisiones firmes y cumplir con los objetivos establecidos. En contextos personales y profesionales, implica definir metas claras y desarrollar un plan de acción para alcanzarlas. La resolución es fundamental para el crecimiento personal y el éxito en diversas áreas de la vida, ya que permite superar obstáculos y mantener el enfoque en lo que realmente importa.... a partir de una entrada correspondiente de baja resolución.
¡Suena como un proyecto clásico de visión por computadora!
PULSE es una solución novedosa a este planteamiento de problema. PULSE, abreviatura de Photo Upsampling a través de la exploración espacial latente, genera imágenes de alta resolución y ultrarrealistas a resoluciones increíblemente altas. Y esto se logra de una manera totalmente auto-supervisada y no se limita a un operador de degradación específico utilizado durante el entrenamientoEl entrenamiento es un proceso sistemático diseñado para mejorar habilidades, conocimientos o capacidades físicas. Se aplica en diversas áreas, como el deporte, la educación y el desarrollo profesional. Un programa de entrenamiento efectivo incluye la planificación de objetivos, la práctica regular y la evaluación del progreso. La adaptación a las necesidades individuales y la motivación son factores clave para lograr resultados exitosos y sostenibles en cualquier disciplina.....
A continuación, se muestra un ejemplo de cómo funciona PULSE:
Te animo a que primero leas el trabajo de investigación antes de mirar el código. Esto le dará una mejor idea de cómo funciona PULSE debajo para que pueda abordar el código con mucha más claridad.
Otros proyectos de ciencia de datos de código abierto
Aquí hay un par de proyectos de ciencia de datos de código abierto que no se ajustan a las dos categorías anteriores. En realidad, estos son dos proyectos contrastantes: uno está dirigido a principiantes en ciencia de datos, mientras que el otro se ocupa del mundo del aprendizaje por refuerzoEl aprendizaje por refuerzo es una técnica de inteligencia artificial que permite a un agente aprender a tomar decisiones mediante la interacción con un entorno. A través de la retroalimentación en forma de recompensas o castigos, el agente optimiza su comportamiento para maximizar las recompensas acumuladas. Este enfoque se utiliza en diversas aplicaciones, desde videojuegos hasta robótica y sistemas de recomendación, destacándose por su capacidad de aprender estrategias complejas.....
Elija el que funcione mejor para usted y comience a explorarlo.
Estoy seguro de que la mayoría de ustedes ha trabajado con el conjunto de datos de Iris. De hecho, incluso podría haber sido el primer conjunto de datos que utilizó para comprender el concepto de clasificación en el aprendizaje automático. Me encanta lo sencillo que es comprender y explorar el conjunto de datos.
Pero trabajar con el mismo conjunto de datos puede volverse un poco aburrido, especialmente cuando está aprendiendo los entresijos del aprendizaje automático.
Aquí es donde entra en juego el conjunto de datos de PalmerPenguins. Este conjunto de datos, de código abierto el mes pasado, se posiciona como una alternativa a Iris y tiene como objetivo proporcionar un gran conjunto de datos para la exploración y visualización de datos, especialmente para principiantes. Aquí hay una muestra de las visualizaciones que se le pueden ocurrir:
El enlace que mencioné anteriormente contiene ejemplos de cómo comenzar a explorar estos datos. Incluso han proporcionado detalles sobre las diferentes variables, pero ¿no le gustaría explorar eso usted mismo? 🙂
Puede obtener PalmerPenguins en su máquina usando el siguiente código:
# install.packages("remotes") remotes::install_github("allisonhorst/palmerpenguins")
También recomiendo consultar los artículos populares a continuación sobre exploración y visualización de datos:
Ah, aquí hay un proyecto de código abierto para todos ustedes, amigos del aprendizaje por refuerzo. SlimeVolleyGym es un entorno de gimnasio simple para probar algoritmos de aprendizaje por refuerzo de agentes únicos y múltiples. Esto ha sido creado y de código abierto por hardmaru, una leyenda en el espacio del aprendizaje automático.
Así es como funciona el juego según él (él mismo creó el juego en JavaScript):
El juego es muy simple: el objetivo del agente es hacer que la pelota caiga al suelo del lado de su oponente, provocando que su oponente pierda una vida. Cada agente comienza con cinco vidas. El episodio termina cuando cualquiera de los agentes pierde las cinco vidas, o después de que hayan pasado 3000 pasos. Un agente recibe una recompensa de +1 cuando su oponente pierde o -1 cuando pierde una vida.
Puedes instalar limovolleygym directamente de pip:
pip install slimevolleygym
Aquí hay un par de excelentes tutoriales de nuestro experto en aprendizaje por refuerzo residente Ankit Choudhary:
Notas finales
Uf, son muchos proyectos. Mi objetivo, como siempre, fue mantener los proyectos lo más diversos posible para que pueda elegir los que encajan en su viaje de ciencia de datos. Si eres un principiante, te sugiero que comiences con el conjunto de datos de PalmerPenguins, ya que la mayoría de la gente ni siquiera lo sabe en este momento. Una gran oportunidad para empezar con ventaja.
Me encantaría escuchar tu opinión sobre qué proyecto de código abierto te resultó más útil. O avíseme si desea que presente otros proyectos de ciencia de datos aquí o en la edición del próximo mes.