entonces… ¿qué hace un científico de datos?

En esta entrada y muchas otras subsecuentes que hablen de ciencia de datos, pondré información que me parece destacada del libro de Field Cady, The Data Science Handbook, con el fin de ir aclarando todo lo relacionado con este gran universo. Como lo introduce el autor:

Data Science o Ciencia de datos significa hacer análisis que por una razón u otra, requiere una cantidad sustancial de habilidades de ingeniería de software.

Por ejemplo:

  1. Una base de datos puede ser tan grande que se requiera usar computación distribuida para hacer el análisis.
  2. La base de datos puede ser tan enredada que sean necesarias varias líneas de código para desenredarla y poder analizarla.
  3. Escribir grandes pedazos de software que implementen los análisis en tiempo real.

Un científico de datos necesita una buena dosis de los siguientes conocimientos: modelos estadísticos + software y programación + problemas de negocios, aparte de saber esto muy bien se debe relacionar de una manera que todo adquiera significado. Es un profesionista que pasa la mayor parte de su tiempo acomodando los datos de manera que se les puedan aplicar métodos estadísticos, para lo cual, necesita habilidades que un estadístico normal no tiene.

Las Etapas del trabajo de un Científico de Datos se muestran a continuación, cabe mencionar que para cada proyecto, estas etapas no se recorren una sola vez, ya que se obtiene en cada etapa información y perspectivas que pueden hacer que el problema necesite ser replanteado, o mover los parámetros con los que se hace el análisis.

Imagen del ibro The Data Science Handbook, de Field Cady, traducido.

1. Encuadrar el problema. Es necesario conocer el negocio y elaborar un problema bien definido para analizar; para lograr esto es importante hacer las preguntas adecuadas. Si el objetivo del análisis será informar a los interesados las conclusiones del análisis hay que conocer bien el problema, hacer preguntas sustanciosas que den un panorama amplio del negocio y de lo que hay que resolver.

Por otro lado, si el objetivo es entregar un software habrá que determinar varias cosas como qué lenguaje usar, cuál será el tiempo de ejecución, que tan precisas deben ser las predicciones.

En fin, se debe vislumbrar desde un principio qué sería una solución al problema. Acordar entre las partes involucradas cuándo se considerará al proyecto terminado y en qué casos será exitoso. Para ello es conveniente elaborar un documento que especifique claramente todas las cuestiones anteriores. Este documento se llama comúnmente “Statement of Work”.

2. Entender los datos. Involucrarse con ellos y con las cosas del mundo real que describen. Unas preguntas que para empezar estaría bien hacer son:

  • ¿Qué tan grande es el conjunto de datos?
  • ¿Es suficientemente representativo?
  • ¿Contienen valores atípicos o ruido?
  • ¿Puede tener datos artificiales?

A lo mejor, lo que más interesa saber a un científico de datos es si la base de datos contiene información que será útil para resolver el problema. En caso de que no, habrá que modificar los planes.

Luego viene pelearse con los datos, este proceso es uno donde los científicos de datos deben tener habilidades que los estadísticos no tienen. Se necesitan herramientas especiales para acceder a bases de datos para obtener los que se necesiten. Una vez que se tienen, hay que revisar que los datos estén completos; esto se puede hacer de muchas maneras dependiendo el formato del archivo obtenido, como abrirlo con lectores adecuados, hacer histogramas, gráficas de dispersión, hacer sumas sencillas que den luz sobre la precisión de los datos.

Finalmente, dentro del marco de entender los datos, hay que pasar un rato husmeando en ellos, creando visualizaciones de varias maneras, transformarlos para encontrar en ellos lo que hay que encontrar. Este momento es un buen lugar para dar rienda suelta a la curiosidad, se pueden calcular correlaciones. En particular, se puede desarrollar una intuición visual de los datos y hacer hipótesis concretas sobre lo que los datos pueden mostrar.

¡Los científicos de datos necesitan visualizaciones de los datos!

3. Extraer características que tengan sentido. En este paso hay que poner los datos en columnas y filas; cada fila corresponde a una entidad del mundo real y cada columna a un pedazo de información de esa entidad. Es decir, es conveniente tabular los datos.

Casi todas las técnicas de análisis operan sobre tablas, ¡Es muy importante tener una buena tabla!

Esta parte es la más creativa de la Ciencia de Datos y es un área donde se requiere un vínculo estrecho con los expertos en el campo para entender el significado del fenómeno e interpretar los números correctamente. A veces se trata de encontrar cómo medir lo que solicita con los datos que se tienen.

4. Poner estas características en un modelo y analizar. Un modelo que adivine si un cliente sigue siendo fiel, una regresión lineal que pronostique el precio del mercado para el día siguiente o un algoritmo que clasifique a los clientes en diferentes segmentos.

Es importante ajustar cuidadosamente los modelos y la ejecución, a veces se cambian los ajustes para la siguiente iteración si es que hay. Esta es la etapa donde se obtienen datos duros.

Si el cliente es humano se pueden presentar resultados de diferentes modelos, si es una máquina muchas veces se necesita sólo un algoritmo para ser usado en producción.

5. Presentar resultados y/o desarrollar código. En esta etapa es donde se necesitaran las habilidades de comunicar. Los resultados obtenidos se muestran en una presentación o en un reporte escrito. Se debe emplear un lenguaje apropiado para el público al que vaya dirigido y se logre la transmisión del mensaje.

Si el cliente es una máquina, tal vez a parte de lo anterior, se tendrá que hacer código que será ejecutado por otras personas. En este caso el resultado final consistirá de el código, la documentación de cómo correr el código y una muestra donde se ocupe el código recién creado que muestre su correcta ejecución.

6. Iterar el proceso. Una pregunta abierta al iniciar un proyecto en Ciencia de Datos es cuáles son las características que serán útiles y para qué modelo; en dado caso de ser necesario (que muchas veces lo es), tanto las características como el modelo se deben poder cambiar sin problemas.

El código debe ser flexible para poder hacer los cambios, debe ser lo suficientemente poderoso para que su desempeño sea eficiente y muy comprensible para editarlo rápidamente si los objetivos cambian. Por lo que los conocimientos de programación del científico de datos deben ser sólidos.

Todo lo anterior, se resume en una imagen, que hay que tener presente en el momento de una entrevista de trabajo.

2 comentarios en “entonces… ¿qué hace un científico de datos?

  1. Arturo

    Muy interesante!
    Que lenguajes de programación son los más usados en el área de análisis de datos?
    Saludos.

    Responder

Responder a Arturo Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *