¿Cómo me convierto en un Científico de Datos?

Pablo Casas
Ciencia y Datos
Published in
9 min readSep 22, 2017

Varias veces me preguntaron, como a otros colegas, ¿cómo se empieza a estudiar ciencia de datos? Quería enfocar en no dar solamente unos links a libros y algún consejo, sino hacer algo más integral.

¡Ojalá este artículo les sirva de motivación si están arrancando en este mundo de datos!

Quién sí— Quién no

Una pregunta común hoy en día. Vamos a encarar la respuesta desde un punto de vista técnico y otro más filosófico.

Normalmente esperaríamos ver un listado de cursos, (los mejores), un listado de pocos libros (los más breves, y los más completos) y alguna recomendación personal sobre ingresar en competencias o escribir un blog post. ¿No?

Eso lo cubriremos pero…

Sería difícil de definir el punto de inflexión entre definir si somos o no científicos de datos (CdD, de ahora en más). ¿Un año trabajando es suficiente para adquirir este título? ¿O bien dos?

¿Qué tal acerca de tener un Master en Ciencia de Datos, y ninguna experiencia laboral? O más bien el caso opuesto.

O esta situación: Haber trabajado en empresas creando modelo predictivos por 7 años, ¿somos en este caso un científico (o científica) de datos? ¿Somos Senior?

¿Y si en vez de trabajar en el mundo corporativo somos investigadores?

Quizás la maestría en ciencia de datos sea una cuestión del tiempo que invertimos exponiéndonos a problemas en donde la creatividad es puesta a prueba todo el tiempo.

Existe una alta subjetividad entre “ser o no” un CdD.

¿Cuál es la persona o institución con la autoridad para determinar quién puede o no llevar dicho título?

Un paso más

Ahora vamos a usar un poco de la filosofía de Confucio para establecer tres marcos de aprendizaje de Ciencia de Datos.

“Hay tres maneras de adquirir sabiduría. Primero por la reflexión que es la más noble. Segundo por la imitación, que es la más sencilla. Y tercero por la experiencia que es la más amarga.”

Reescribiendo un poco para nuestro propósito:

“Hay tres maneras de convertirse en Científico de Datos. Primero por la lectura, que es la más simple. Segundo copiando-y-pegando código, tratando de hacer que nos ande el ejemplo y modificandolo. Y tercero, mediante la creación del propio código y flujos de análisis.”

Las tres maneras son distintos niveles de profundización, ¿cuál es el que se está buscando?

La enorme ventaja de aprender ciencia de datos (y otros tópicos de informática), es que se dispone de una enorme cantidad de recursos, gratuitos y/o open-source, accesibles mediante la voluntad nuestra de aprender. No es necesario gastar dinero.

¿Hace falta aprender a programar?

Acá hay un punto de inflexión importante. Para llegar al “tercer nivel” antes mencionado, es casi necesario programar. Sobretodo para crear soluciones complejas y óptimas.

Hay algunas preguntas básicas que podemos hacer para ir encontrando el camino:

Caso A: Aprender ciencia de datos sin programar.

Hay programas o aplicaciones web de estadística y machine learning, en los que se puede evitar bastante la programación como lo sería en lenguajes como Julia, R y Python, mediante el uso de interfaces visuales.

Yo particularmente no las recomiendo porque los costos de los cursos suelen ser muy altos, y se puede aprender los mismos conceptos, por ejemplo como validar modelos, o el uso de modelos gratis en internet.

Este tipo de herramientas suelen estar en empresas grandes donde la burocracia a veces aleja al CdD del arte de crear soluciones más innovadoras.

Aprender ciencia de datos sin programar es posible, y el usar este conocimiento en entornos de investigación o laborales también. Se pueden seguir los ejercicios paso a paso que proponen, viendo y analizando los distintos resultados.

Por ejemplo, se puede comprender el concepto que desarrollar un modelo predictivo con todas las variables posibles, probablemente lleve a resultados menos precisos, que si se usan solo las variables que contienen información.

Las soluciones que proveen acceso visual a la creación de modelos predictivos, normalmente suelen tener menos parámetros para optimizar la solución. Pero quizás lo más importante, es que al momento de buscar soluciones a los errores que puedan aparecer, la comunidad es mucho más pequeña que la que pueda tener el open-source.

El software open-source democratiza el acceso a los últimos avances en algoritmos predictivos, descentralizando el acceso a los recursos para aprender.

Libertad! — Película: The Shawshank Redemption

Otro caso puede ser el aprender a no introducir variables que contengan información del futuro, afectando silenciosa y peligrosamente las predicción una vez puesto en producción.

Desarrollar este conocimiento puede ayudar al CdD a crear o validar los modelos con una segunda mirada no tan técnica.

Es importante leer y analizar críticamente las entradas y salidas a este tipo de procesos.

Interfaces gráficas en R: Rattle

Excluyendo las comerciales, la interfaz de Rattle para R (https://rattle.togaware.com) puede ser una de las pocas existentes junto a R commander (http://www.rcommander.com). Esta más orientada a estadística y gráficos simples.

Enfocándonos en Rattle, este dispone de una gama importante de preparación de datos y conversión de variables, así como también soporte a los modelos predictivos y de clustering más conocidos.

Brochure: https://rattle.togaware.com/RattleBrochure.pdf

Tutorial: https://eric.univ-lyon2.fr/~ricco/tanagra/fichiers/en_Tanagra_Rattle_Package_for_R.pdf

Uno de los puntos que puede ayudar mucho es que todas las acciones o “clicks” quedan registrados en código de R en su log. Por lo cual se puede empezar a aprender R o bien, extraer las lineas de código de lo que va haciendo Rattle por detrás.

Rattle puede quedar corto una vez que se tiene más experticia en R, ya que es mas cómodo y mas performante programar todo directamente. Pero puede ser un buen punto de partida.

Caso B: No programo, pero quiero aprender

Si se quiere aprender a programar en general, y también hacer Ciencia de Datos, quizás sea mas adecuado Python a R, ya que este lenguaje es de proposito mas general que R.

R está enfocado en analisis de datos, por lo cual es mas abarcativo en materia de machine learning. Cada herramienta tiene sus puntos fuertes y debiles.

Por ejemplo en Python es mucho mas fácil crear APIs que usen modelos predictivos, mientras que en R es mas facil encontrar una amplia variedad de algoritmos de machine learning.

Aclaración: No es el objetivo del articulo discutir uno vs el otro, es tan polémico como la comparación entre “el enfoque frecuentista vs el bayesiano”, temas tienden a infinito. Para mas información y debates googlear: “R vs Python”.

Se puede trabajar, investigar y/o jugar sabiendo solamente R, ó Python, ó ambos (e incluso, ninguno de los dos…).

Volvamos a R. Con él se puede aprender a programar, no es igual que la programación de lenguajes como C++, Java, Ruby, pero servirá para aprender cuestiones genéricas de la programación.

Por lo que se pueden encontrar funciones que resuelven lo mismo que en SQL requeriría 50 líneas de código, en tan solo una sola.

En este caso se pueden aprender los conceptos de matrices, vectores, funciones, buenas prácticas de programación, entre otros.

Acá es importante preguntarse si realmente se desea profundizar en lo técnico, o solo existe una motivación económica, ya que pueden aparecer una gran cantidad de errores de programación básicos, tan solo para querer generar un gráfico! Puede fomentar que se abandone el aprendizaje.

Caso C: Ya se programar en algún lenguaje

El salto en este caso, es el más breve, ya que se conoce bastante de lo mencionado en el caso anterior.

Aquí el foco puede estar mas enfocado en conceptos de machine learning.

En este punto se puede comenzar por Rattle o bien por algunos de los links que describen a continuación.

Programando en R!

Para el Caso B y C, se puede empezar bajando el entorno de desarrollo Rstudio, y por supuesto el motor R:

Hora de los libros de la 1er parte…

Libro: R for Data Science (open-source)

http://r4ds.had.co.nz/

Este libro contiene el manejo de estructuras de datos de R, explicando los tipos de datos, como transformarlos y los gráficos.

Para comenzar, los capítulos recomendados: Data visualisation, Data transformation y Factors.

Con respecto a los gráficos, la librería usada es ggplot2, puede ser un tanto compleja de aprender al principio, por eso la recomendación es, no intentar entender todos sus parámetros ni forma de escribir, sino más bien quedarse con los gráficos más básicos. Este libro en particular está escrito por el creador de ggplot2, Hadley Wickham, por lo cual la explicación es más detallada aún.

Otro excelente libro, open-source tambien: YaRrr! The Pirate’s Guide to R.

https://bookdown.org/ndphillips/YaRrr/

Autor: Nathaniel D. Phillips.

Esta muy bien explicado, con bromas y un lenguaje muy ameno. Cubre aspectos de manipulación de datos y de estadística inferencial. En palabras de su autor:

“This book is meant to introduce you to the basic analytical tools in R, from basic coding and analyses, to data wrangling, plotting, and statistical inference.”

Invito a leer el libro que publique hace poco:

Data Science Live Book”,

En él podrán ver problemas comunes y algunas soluciones, en todo lo referente a la preparación de datos para la creación de modelos predictivos.

Próximamente en español ;)

https://librovivodecienciadedatos.ai/🚀 (en español!)

Además disponible en PDF , Kindle y papel en Amazon 📗:

Link a la pagina de descarga!

Como diría Confucio

Haciendo una libre interpretación: “Leer, copiar y luego crear”. Las siguientes páginas tienen cientos de ejemplos del estilo copiar-pegar y ver los resultados:

Manejo de las estructuras de datos básicas de R, y funciones estadísticas explicando sus resultados. Esta página útil para los que están arrancando a programar también: http://www.r-tutor.com/r-introduction

Cientos de ejemplos breves, desde clustering hasta text mining con datos de twitter: http://www.rdatamining.com

Para hacer operaciones de transformación y creación de campos, filtros, etc, uno de los paquetes más usados es dplyr:

Https://cran.r-project.org/web/packages/dplyr/vignettes/dplyr.html

Dentro de dplyr, se puede trabajar data frames (tablas), haciendo “joins”: https://cran.r-project.org/web/packages/dplyr/vignettes/two-table.html

Usar dplyr es importantísimo, ya que se suele pasar mucho tiempo del proyecto transformando y acomodando los datos para que sean útiles para su análisis.

¿Algun curso?

Cree una página con cursos y notas de blog, los/as invito a inscribirse como alumn@s :)

https://escueladedatosvivos.ai/

Algunos son pagos, otros gratuitos. Hacer un curso puede ser útil para tener una estructura de principio (carga de datos) a final (creación e implementación del modelo predictivo).

Sin embargo, no hay que quedarse solo con lo que ahí se aprende. Cuando se enseña el capacitador/docente suele hacer simplificaciones o abstracciones. Hay que practicar lo aprendido para fijar lo visto. Sino puede incurrir en una falsa seguridad para con uno mismo, de conocer algo.

Es como ocurre cuando se aprende cocina por youtube, una cosa es ver como se hace la torta, y otra es hacer la torta.

Cerrando…

Hasta el momento vimos libros que pueden proveernos una estructura para aprender tanto aspectos de programación en general, como orientado a ciencia de datos.

La 2da Parte está orientada a la comunidad y su soporte técnico detrás de los lenguajes de programación. Consejos y estrategias para aprender-haciendo, paquetes (librerías) que mas uso de R, competencias masivas de machine learning, publicaciones de análisis… y quizás algo mas ;)

Hasta la próxima :)

Me encuentran en:

TwitterGithubBlog

https://escueladedatosvivos.ai/

--

--