Si es un desarrollador en transición a la ciencia de datos, estos son sus mejores recursos

Parece que todos quieren ser científicos de datos en estos días, desde estudiantes de doctorado hasta analistas de datos y tu antiguo compañero de cuarto de la universidad que mantiene Linkedin enviándote mensajes para 'tomar un café'.

Quizás haya tenido el mismo indicio de que al menos debería explorar algunas posiciones de ciencia de datos y ver de qué se trata el bombo. Tal vez hayas visto artículos como Data Science de Vicki Boykis que ahora es diferente y dice:

Lo que está quedando claro es que, en la última etapa del ciclo de la exageración, la ciencia de datos se está acercando asintóticamente a la ingeniería, y las habilidades que los científicos de datos necesitan para avanzar están menos basadas en la visualización y las estadísticas, y más en línea con la informática tradicional. …: Conceptos como las pruebas unitarias y la integración continua se abrieron paso rápidamente en la jerga y el conjunto de herramientas que suelen utilizar los científicos de datos y los científicos numéricos que trabajan en la ingeniería de ML.

o tweets como el de Tim Hopper:

Lo que no está claro es cómo puede aprovechar su experiencia como ingeniero de software en un puesto de ciencia de datos. Algunas otras preguntas que puede tener son:

¿Qué debo priorizar el aprendizaje?

¿Existen mejores prácticas o herramientas que sean diferentes para los científicos de datos?

¿Mi conjunto de habilidades actual se trasladará a una función de ciencia de datos?

Este artículo proporcionará antecedentes sobre la función del científico de datos y por qué su experiencia podría ser una buena opción para la ciencia de datos, además de acciones paso a paso tangibles que usted, como desarrollador, puede llevar a cabo para mejorar la ciencia de datos.

¿Quiere ver los últimos puestos en ciencia de datos? Suscríbase al boletín quincenal de trabajos de ML para obtener nuevas ofertas de trabajo de ciencia de datos en su bandeja de entrada.

Científico de datos versus ingeniero de datos

Lo primero es lo primero, debemos distinguir entre dos roles complementarios: científico de datos versus ingeniero de datos. Si bien ambos roles manejan modelos de aprendizaje automático, su interacción con estos modelos, así como los requisitos y la naturaleza del trabajo para los científicos de datos y los ingenieros de datos, varían ampliamente.

Nota: El rol de ingeniero de datos que está especializado en aprendizaje automático también puede manifestarse en descripciones de trabajo como 'Ingeniero de software, aprendizaje automático' o 'Ingenieros de aprendizaje automático'.

Como parte de un flujo de trabajo de aprendizaje automático, el científico de datos realizará el análisis estadístico necesario para determinar qué enfoque de aprendizaje automático utilizar y luego comenzará a crear prototipos y desarrollar esos modelos.

Los ingenieros de aprendizaje automático a menudo colaborarán con científicos de datos antes y después de este proceso de modelado: (1) construyendo canalizaciones de datos para alimentar datos en estos modelos y (2) diseñar un sistema de ingeniería que servirá a estos modelos para garantizar la salud continua del modelo.

El siguiente diagrama es una forma de ver este continuo de habilidades:

Existe una gran cantidad de recursos en línea sobre la diferencia entre los científicos de datos y los ingenieros de datos; asegúrese de consultar:

  • Panoplia: ¿Cuál es la diferencia entre un ingeniero de datos y un científico de datos?
  • Trampolín: ingeniero de aprendizaje automático frente a científico de datos
  • O'Reilly: ingenieros de datos frente a científicos de datos

Como descargo de responsabilidad, este artículo cubre principalmente el rol de Data Scientist con un guiño hacia el lado de la Ingeniería de Aprendizaje Automático (especialmente relevante si está buscando un puesto en una empresa más pequeña donde es posible que tenga que servir como ambos). Si está interesado en ver cómo puede pasar a ser un ingeniero de datos o un ingeniero de aprendizaje automático, ¡háganoslo saber en los comentarios a continuación!

Tu ventaja como desarrollador

Para detrimento de todos, las clases sobre aprendizaje automático como 'Introducción a la ciencia de datos en Python' o el curso Coursera de Andrew Ng no cubren conceptos y mejores prácticas de ingeniería de software como pruebas unitarias, escritura de código modular reutilizable, CI / CD o control de versiones. Incluso algunos de los equipos de aprendizaje automático más avanzados todavía no utilizan estas prácticas para su código de aprendizaje automático, lo que genera una tendencia inquietante ...

Pete Warden describió esta tendencia como 'la crisis de reproducibilidad del aprendizaje automático':

todavía estamos en la edad oscura cuando se trata de rastrear cambios y reconstruir modelos desde cero. Es tan malo que a veces se siente como retroceder en el tiempo cuando codificamos sin control de fuente.

Si bien es posible que no vea estas habilidades de 'ingeniería de software' expresadas explícitamente en las descripciones de trabajo de los científicos de datos, tener una buena comprensión de estas habilidades como parte de su experiencia ya le ayudará a multiplicar por diez su trabajo como científico de datos. Además, se utilizarán cuando sea el momento de responder esas preguntas de programación durante su entrevista de ciencia de datos.

Para obtener una perspectiva interesante desde el otro lado, consulte el artículo de Trey Causey sobre 'Habilidades de desarrollo de software para científicos de datos' sobre las habilidades que recomienda que los científicos de datos aprendan a "escribir mejor código, interactuar mejor con los desarrolladores de software y, en última instancia, ahorrarle tiempo y dolores de cabeza ”.

Acelerando la ciencia de datos

Es genial que tenga una buena base con su experiencia en ingeniería de software, pero ¿cuál es el siguiente paso para convertirse en un científico de datos? El tweet irónico de Josh Will sobre la definición de científico de datos es sorprendentemente preciso:

Sugiere uno de los temas que debe ponerse al día si está interesado en seguir una función o carrera como científico de datos: las estadísticas. En la siguiente sección, cubriremos excelentes recursos para:

  • Construyendo conocimiento específico de ML
  • Conocimiento de la industria de la construcción
  • Herramientas en la pila de AA
  • Habilidades y cualidades

Construyendo conocimiento específico de ML

Es más efectivo construir una combinación de conocimiento basado en la teoría sobre probabilidad y estadística, así como habilidades aplicadas en cosas como disputas de datos o modelos de entrenamiento en GPU / computación distribuida.

Una forma de enmarcar el conocimiento que está adquiriendo es compararlo con el flujo de trabajo de aprendizaje automático.

Vea este flujo de trabajo detallado de Skymind AI

A continuación, enumeramos algunos de los mejores recursos que puede encontrar sobre el aprendizaje automático. Sería imposible tener una lista exhaustiva y para ahorrar espacio (y tiempo de lectura) no mencionamos recursos muy populares como el curso Coursera de Andrew Ng o Kaggle.

Cursos:

  • Fast.ai MOOC (cursos gratuitos que enseñan habilidades muy aplicadas a través del aprendizaje profundo práctico para codificadores, aprendizaje profundo de vanguardia para codificadores, álgebra lineal computacional e introducción al aprendizaje automático para codificadores)
  • academia Khan
  • Canal de youtube de 3Blue1Brown y mathmonk
  • Cursos de Udacity (incluido el preprocesamiento para aprendizaje automático en Python)
  • Pista específica de Springboard AI / ML

Libros de texto: * intenté encontrar archivos PDF gratuitos en línea para la mayoría de estos *

  • Programación probabilística y métodos bayesianos para piratas informáticos
  • Probabilidad y procesos aleatorios
  • Elementos del aprendizaje estadístico
  • Álgebra lineal bien hecha
  • Introducción al álgebra lineal
  • Diseño de algoritmos

Guías:

  • Guía de aprendizaje automático para desarrolladores de Google
  • Guías de dominio del aprendizaje automático (para un buen punto de partida, consulte este mini curso sobre aprendizaje automático de Python)
  • Pyimagesearch (para visión por computadora)

Meetups: * principalmente en Nueva York *

  • Papeles que amamos
  • Inteligencia artificial y aprendizaje automático de Nueva York
  • DataCouncil.ai
  • Inteligencia artificial de NY
Para un buen punto de partida, consulte los 'Maestros de aprendizaje automático de código abierto' de Will Wolf sobre cómo puede estructurar su tiempo a través del estudio de temas específicos y el trabajo en proyectos para mostrar su experiencia en una ubicación remota de bajo costo.

Construyendo conocimiento específico de la industria

Si tiene la sospecha de que le gustaría ser una industria específica como la salud, los servicios financieros, los bienes de consumo, el comercio minorista, etc., es invaluable ponerse al día con los puntos débiles y los desarrollos de esa industria en lo que respecta a los datos y las máquinas. aprendizaje.

Un consejo profesional = puede escanear los sitios web de nuevas empresas de IA específicas de verticales y ver cómo están posicionando su propuesta de valor y dónde entra en juego el aprendizaje automático. Esto le dará ideas para áreas específicas de aprendizaje automático para estudiar y temas para proyectos para mostrar su trabajo.

Podemos dar un ejemplo: digamos que estoy interesado en trabajar en el cuidado de la salud.

  1. A través de una búsqueda rápida en Google de " atención médica de aprendizaje automático", encontré esta lista de Healthcareweekly.com en 'Las mejores empresas emergentes de atención médica a tener en cuenta en 2019'
También puede realizar búsquedas rápidas en Crunchbase o AngelList con "atención médica" como palabra clave.

2. Tomemos como ejemplo una de las empresas que aparecen en la lista, BenevolentAI.

3. El sitio web de BenevolentAI dice:

Somos una empresa de inteligencia artificial con capacidad integral desde el descubrimiento temprano de fármacos hasta el desarrollo clínico en etapa tardía. BenevolentAI combina el poder de la medicina computacional y la inteligencia artificial avanzada con los principios de los sistemas abiertos y la computación en la nube para transformar la forma en que se diseñan, desarrollan, prueban y comercializan los medicamentos. Creamos la Plataforma Benevolent para comprender mejor las enfermedades y diseñar nuevos, y mejorar los tratamientos existentes, a partir de grandes cantidades de información biomédica. Creemos que nuestra tecnología permite a los científicos desarrollar medicamentos de forma más rápida y rentable. Cada 30 segundos se publica un nuevo artículo de investigación; sin embargo, actualmente los científicos solo utilizan una fracción del conocimiento disponible para comprender la causa de la enfermedad y proponer nuevos tratamientos. Nuestra plataforma ingiere,'lee' y contextualiza grandes cantidades de información extraída de documentos escritos, bases de datos y resultados experimentales. Es capaz de hacer infinitas deducciones e inferencias a través de estas fuentes de datos complejas y dispares, identificando y creando relaciones, tendencias y patrones, que serían imposibles de hacer para un ser humano solo.

4. Inmediatamente puede ver que BenevolentAI está utilizando el procesamiento del lenguaje natural (NLP) y probablemente esté trabajando con algunos gráficos de conocimiento si están identificando relaciones entre enfermedades e investigación de tratamientos.

5. Si consulta la página de carrera de BenevolentAI, puede ver que están contratando a un investigador senior de aprendizaje automático. Este es un puesto senior, por lo que no es un ejemplo perfecto, pero eche un vistazo a las habilidades y calificaciones que piden a continuación:

Nota:

  • procesamiento del lenguaje natural, inferencia de gráficos de conocimiento, aprendizaje activo y modelado bioquímico
  • fuentes de datos estructuradas y no estructuradas
  • enfoques del modelo bayesiano
  • conocimiento de herramientas modernas para ML

Esto debería darle algunos pasos sobre qué abordar a continuación:

  • trabajando con datos estructurados
  • trabajar con datos no estructurados
  • clasificar relaciones en gráficos de conocimiento (ver un buen recurso aquí)
  • Aprender enfoques de modelado y probabilidad bayesianos.
  • trabajar en un proyecto de PNL (es decir, datos de texto)

No recomendamos que se postule a las empresas que encuentre a través de su búsqueda, sino que vea cómo describen los puntos débiles de sus clientes, las propuestas de valor de su empresa y qué tipo de habilidades enumeran en sus descripciones de trabajo para guiar su investigación.

Herramientas en la pila de AA

En la descripción del puesto de BenevolentAI Senior Machine Learning Researcher, solicitan "conocimiento de herramientas modernas para ML, como Tensorflow, PyTorch, etc."

Aprender estas herramientas modernas para ML puede parecer abrumador ya que el espacio siempre está cambiando. Para dividir el proceso de aprendizaje en partes manejables, recuerde anclar su pensamiento en torno al flujo de trabajo de aprendizaje automático desde arriba: "¿Qué herramienta puede ayudarme con esta parte del flujo de trabajo?" ?

Para ver qué herramientas acompañan a cada paso de este flujo de trabajo de aprendizaje automático, consulte la 'Introducción a la pila de aprendizaje automático' de Roger Huang, que cubre herramientas como Docker, Comet.ml y dask-ml.

Tácticamente hablando, Python y R son los lenguajes de programación más comunes que usan los científicos de datos y puede encontrar paquetes complementarios diseñados para aplicaciones de ciencia de datos, como NumPy y SciPy, y matplotlib. Estos lenguajes se interpretan, en lugar de compilar, dejando al científico de datos libre para centrarse en el problema en lugar de en los matices del lenguaje. Vale la pena invertir tiempo en aprender programación orientada a objetos para comprender la implementación de estructuras de datos como clases.

Para ponerse al día con los marcos de ML como Tensorflow, Keras y PyTorch, asegúrese de consultar su documentación e intente implementar sus tutoriales de un extremo a otro.

Al final del día, querrás asegurarte de que estás construyendo proyectos que muestren estas herramientas modernas para la recopilación y disputa de datos, la gestión de experimentos de aprendizaje automático y el modelado.

Para obtener inspiración para sus proyectos, consulte el artículo de Edouard Harris sobre 'El problema del arranque en frío: cómo construir su cartera de aprendizaje automático'

Habilidades y cualidades

Dejamos esta sección para el final, ya que agrega gran parte de la información de las secciones anteriores, pero está específicamente orientada a la preparación de entrevistas de ciencia de datos. Hay seis temas principales durante una entrevista con un científico de datos:

  1. Codificación
  2. Producto
  3. SQL
  4. Pruebas A / B
  5. Aprendizaje automático
  6. Probabilidad (vea una buena definición frente a estadísticas aquí)

Notará que uno de estos temas no es como los demás (Producto). Para los puestos de ciencia de datos, la comunicación sobre los conceptos y resultados técnicos, así como las métricas y el impacto empresarial, es crucial.

Algunas agregaciones útiles de preguntas de entrevistas sobre ciencia de datos: ?? https: //github.com/kojino/120-Data-Science-Interview-Questions ?? https: //github.com/iamtodor/data-science-interview-questions-and-answers ???? https://hookedondata.org/red-flags-in-data-science-interviews/ ?? https://medium.com/@XiaohanZeng/i-interviewed-at-five-top-companies-in-silicon-valley-in-five-days-and-luckily-got-five-job-offers-25178cf74e0f

Notará que incluimos el artículo de Hooked on Data sobre 'Señales de alerta en las entrevistas de ciencia de datos'; mientras realiza una entrevista para los roles, se encontrará con empresas que aún están construyendo su infraestructura de datos o que pueden no tener una comprensión sólida de cómo su equipo de ciencia de datos encaja en el valor de la empresa más grande.

Es posible que estas empresas todavía estén escalando esta jerarquía de necesidades a continuación.

Para algunas expectativas en torno a las entrevistas de ciencia de datos, recomendaría leer el artículo de Tim Hopper sobre 'Algunas reflexiones sobre ser rechazado por muchos trabajos de ciencia de datos'

¡Gracias por leer! Esperamos que esta guía lo ayude a comprender si la ciencia de datos es una carrera que debe considerar y cómo comenzar ese viaje.

¿Quiere ver los últimos puestos en ciencia de datos? Suscríbase al boletín quincenal de trabajos de ML para obtener nuevas ofertas de trabajo de ciencia de datos en su bandeja de entrada:

Boletín de ML Jobs - Revue

Regístrese para recibir esta lista seleccionada quincenalmente de puestos vacantes en ciencia de datos en las mejores empresas de la industria. Roles… www.getrevue.co