Historias de Data Science — Un lugar para aprender, con un toque personal.

Así que… Ciencia de Datos… eh?

Experiencias de un estudiante de veterinaria en su viaje para convertirse en líder de un equipo de ciencia de datos.

Juan Carlos Vázquez
Ciencia y Datos

--

¿Hacía falta otro artículo más sobre ésto?

Me decidí a escribir este artículo debido a una oferta de trabajo. Una que yo hice. Respondí una pregunta en un grupo de Facebook de Ciencia de Datos, donde alguien pregunto si había puestos disponibles para juniors o trainees en Ciencia de Datos, en mi ciudad. Nuestra empresa esta siempre abierta a nuevos talentos, y disfrutamos ayudándolos a crecer y desarrollar sus habilidades. Es más, muchas veces hemos preferido seleccionar juniors en lugar de seniors, para poder acompañarlos en ese proceso y formarlos de acuerdo a las necesidades y valores propios de nuestra compañía.

No voy a mentir, esperaba un montón de mensajes luego de esa respuesta. Y no me equivoqué. Sin embargo, fui bastante inocente en pensar que sólo serían aplicantes. En lugar de eso, recibí una lluvia de preguntas sobre Ciencia de Datos. Todos querían saber exactamente qué estábamos haciendo, cuál es el trabajo de un científico de datos, que tecnologías son necesarias y qué conocimiento es excluyente. Me tome el tiempo de responder cada pregunta lo más detalladamente posible, inclusive a través de conversaciones que, en algunos casos, duraron hasta media hora. Me encanta la Ciencia de Datos y me parece muy importante poder compartir esa información. Sin embargo, me quede preocupado. Era un grupo de Ciencia de Datos, después de todo. Los miembros deberían, al menos, saber de que se trataba.

He escrito cada línea de este artículo al menos dos veces. En mi primer intento, escribí una nota realmente genial, desde un enfoque científico, sobre Big Data, la cuarta revolución industrial y todo lo relacionado. Y luego la re-leí. No brindaba ningún conocimiento nuevo, nada valioso. Todo lo que había escrito podía encontrarse en cientos, sino miles, de artículos a través de la Web. Rápidamente lo tiré a la basura. Mi intención, en cambio, era entregar algo que solo yo pudiera dar, mis experiencias, el conocimiento obtenido y los problemas que encontré en el camino.

Todo esto me llevó a crear este artículo, y los que le seguirán, intentando transmitir lo mejor que pueda todo el camino recorrido y el enfoque que nosotros tenemos sobre Ciencia de Datos. En esta primera nota, discutiré sobre Qué es la Ciencia de Datos, desde mi punto de vista.

Conociendo la Ciencia de Datos

Mi primer acercamiento a la Ciencia de Datos fue alrededor del 2008. Yo era un estudiante de veterinaria en el tercer año de mi carrera, cuando comencé a cursar Mejoramiento Animal. En ese entonces ya había aprobado Estadística y estaba familiarizado con los conceptos de población, muestra, varianza y muchos otros. Sin embargo, nuestro abordaje siempre fue abstracto y no era sencillo realmente entender su utilidad. Por otro lado, las poblaciones animales de Mejoramiento Animal eran realmente tangibles, y los datos estaban ahí, en grandes hojas de cálculo de Excel (o al menos eso pensaba, con cerca de 30.000 filas por 25 columnas). La computación nunca fue un problema para mí, habiendo comenzado a usarlas desde que tengo memoria. A los 6 años ya había comenzado a realizar modificaciones sencillas en el código de algunos videojuegos que usaba en una IBM XT, en lenguaje Basic.

Una IBM XT como la que teníamos, aunque sin joystick. :(

Entonces, tenía los datos y debía realizar modelos mixtos (modelos estadísticos) para predecir el Valor Reproductivo de un animal. Ya sé, no estaba haciendo machine learning, ¡pero realmente era muy divertido! De hecho, era el único de mi clase que en realidad entendía qué estabamos haciendo y cómo hacerlo. Y si bien no era Ciencia de Datos, sino estadística, pero… son TAN distintas?

Después de un par de años (bueno, más de un par), finalmente me recibí de veterinario y probé trabajar en una clínica. Me tomó alrededor de una semana darme cuenta que no era lo que quería hacer. No había desafíos médicos, en cambio, pasaba más tiempo vendiendo comida y ropa para mascotas que tratándolas. Y sabía que no me gustaba la producción animal, quería que estuvieran saludables, no muertos.

Entonces recordé Mejoramiento Animal. No era mi trabajo soñado pero tal vez, solo tal vez, hubiera otra disciplina que uniera de alguna forma el desarrollo de software con la medicina. Comencé a investigar al respecto y me encontré con la Bioinformática, — más específicamente, la Genómica.

Para los que no lo sepan, la genómica es la ciencia que estudia el genoma de las distintas especies para comprender los distintos procesos biológicos inherentes a esa especie. En mi caso, empecé a realizar investigación en el ámbito académico en Genómica Humana (ya que no había mucho espacio para la Genómica Animal en mi país), desarrollando algoritmos para estudiar las mutaciones en genes relacionados a enfermedades como el Cancer, Neurodegenerativas y Enfermedades Raras.

La genómica es Ciencia de Datos. Un archivo de texto con la secuencia completa del genoma de una persona puede ocupar más de 30 gb.

Seamos claros, la Genómica es Ciencia de Datos, en todo sentido. Sólo considerar el Exoma (la parte del genoma que codifica proteínas) de una persona genera un archivo de texto de entre 10 y 30 gigabytes, dependiendo de la profundidad de cobertura. Así que cuando hablamos de estudiar una población, se pueden alcanzar los terabytes, o incluso petabytes, bastante rápido. En el mismo sentido, el poder de computo necesario para procesar esta información es bastante grande.

Entonces, ya podemos decir qué es Ciencia de Datos…

En este punto, ya estaba haciendo Ciencia de Datos, y también comencé a hacer cursos e investigación sobre Machine y Deep Learning. Pero, ¿qué estaba haciendo? Estaba manejando datos, una gran cantidad de datos. La cantidad de datos que no podes trabajar en tu computadora de uso diario, ni siquiera en una costosa. Tenía que trabajar en un servidor de 24 núcleos y 64 gb de ram. Y aún así, a veces no alcanzaba. Tuve que entender qué era un cluster y como trabajar en uno.

Y, ¿qué estaba haciendo con los datos? Primero, sólo los parsee. Escribí un script para transformarlos en datos que fueran legibles para las personas. Luego, los analice, tratando de conocer mis datos. Entendí cuáles eran los distintos tipos de datos que tenía, cómo se comportaban, cuánta importancia parecían tener por sí mismos y en conjunto.

Luego, tuve que limpiarlos. Estaban realmente sucios. Había valores extraños que no encajaban, valores nulos, datos sin importancia y datos demasiado dispersa como para ser valiosa. Comencé a transformarla, buscando construir conocimiento a través de esos datos. Porque “solo eran datos”, no significaban nada. Pero el conocimiento estaba allí, yo sabía que así era. Así que debía buscarlo. Las variables categóricas tuvieron que ser convertidas a unos y ceros. Los datos numéricos tuvieron que ser categorizados o filtrados para tomar valor. En otros casos, tuve que eliminar algunos datos, ya que no brindaba ningun valor. En cada paso, iba escribiendo qué había hecho. Necesitaba hacerlo para recordar todo, porque mucho surgía a partir de probar y equivocarme. Y sabía que, en algún punto, debería comunicar el proceso.

¿A quién no le ha pasado no recordar qué hace esa línea de código?

Termine con un Data Frame. Uno simple, pero poderoso. Un Data Frame que permitía que un genetista sacará conclusiones, que entendiera por qué un paciente presenta una cierta enfermedad y su hermano no. Seguí adelante, tratando de conseguir más conocimiento de todos esos datos. Leí publicaciones científicas, datos clínicos y sitios de investigación para anotar o etiquetar mis datos. Para clasificarlos. Esta parte fue especialmente interesante, porque ya no estaba sólo manejando datos, sino generando nueva información, uniendo datos previamente desconectados para crear una red de conocimiento.

“En los próximos 10 años, la ciencia de datos y el software harán más bien por la medicina que todas las ciencias biológicas juntas” — Vinod Khosla, co-fundador de Sun Microsystems.

Finalmente, cree una interfaz Web para permitir que los usuarios médicos accedieran a estos datos y crearan reportes con ellos. Este fue otro paso difícil, porque nunca había hecho desarrollo web. Y es un tipo especialmente complejo de desarrollo. Pero tenía que implementar algo utilizable por usuarios que no eran informáticos y a los que, en algunos casos, ni siquiera les gustaban las computadoras. De otra forma, todo el conocimiento que había generado sería inutil.

Existe mucho debate sobre si la Ciencia de Datos es sólo estadística moderna

Ésto es Ciencia de Datos. Fijense que todavía no he utilizado los términos Machine Learning, Deep Learning o Inteligencia Artificial . La Ciencia de Datos no los necesita, aún cuando son extremadamente útiles. Son sólo herramientas. La Ciencia de Datos es aquella ciencia que permite construir conocimiento partiendo de datos, de una inmensa cantidad de datos. Y lo hace a través de la aplicación de un enfoque científico iterativo, con la necesidad de ser repetible y documentado. Como toda investigación científica, resulta difícil transferir el conocimiento obtenido, pero también es crítico poder hacerlo.

Sin embargo, esto sólo es verdad cuando haces Ciencia de Datos sólo…

Como en los juegos, la Ciencia de Datos es mucho más divertida cuando la haces en grupos. Y su utilidad aumenta exponencialmente cuando tu equipo es interdisciplinar. Siempre estamos hablando sobre datos, pero los datos no son la parte importante. Lo más importante es para qué necesitas usar esos datos, cuál es el conocimiento que buscas obtener, cuál es el problema que tenes que resolver con tus datos.

Por lo tanto, si el conocimiento que querés obtener es médico, es fundamental entender el problema médico primero. Y en ese sentido, sería mejor tener a alguien con conocimiento médico en el equipo. Muchísimo mejor.

Así que la ciencia de datos es un campo multi-disciplinario. Aún cuando cualquiera puede llegar a conocer el dominio de un problema lo suficientemente bien como para resolverlo, un equipo realmente potenciará si tiene miembros de distintas disciplinas de origen. Es uno de esos casos en donde 2 + 2 no es 4, sino 10.

“Había 5 exabytes de información creada desdeel inicio de la civilización hasta 2003, pero esa misma cantidad se crea ahora cada dos días.” — Eric Schmidt, Executive Chairman de Google

A pesar del título académico de sus miembros, un equipo de ciencia de datos puede tener uno o más de los siguientes roles: Ingeniero de Datos, Científico de Datos, Data Ops, Desarrollador, Analista de Datos, Project Manager y Product Owner. En futuros artículos desarrollaré los distintos roles y los aspectos y tecnologías necesarios para cada rol. Sin embargo, es esencial que todos los miembros del equipo sean capaces de manejar datos para obtener conocimiento y puedan comunicar dicho conocimiento a los otros miembros, y a los clientes. No importan las tecnologías utilizadas, es fundamental que todos puedan trabajar los datos, aún utilizando hojas de cálculo, y también es excluyente la capacidad de comunicarse efectivamente.

En conclusión…

La Ciencia de Datos es un campo interdisciplinario que utiliza técnicas de muchas otras ciencias, tales como estadísticas, ciencias de la computación, inteligencia artificial y analítica de negocios, para construir conocimiento de grandes cantidades de datos. Busca responder una pregunta o solucionar un problema, y necesita un conocimiento profundo del domino de dicho problema. En ese sentido, un equipo de ciencia de datos debería tener miembros de distintas disciplinas de origen. Sin embargo, muchas empresas aún fallan en reconocer esta necesidad, solamente vinculándola con las ciencias de la computación o la estadística. Adicionalmente, como observación final, una persona no trabaja en Ciencia de Datos. En cambio una persona es un científico de datos. Con esto quiero decir que para trabajar en este área se debe ser apasionado sobre la búsqueda continua de nuevo conocimiento, constantemente dejando la zona de confort para encontrar nuevos desafíos y para descubrir nuevas cosas.

“Ingeniería, creo que puedes aprenderlo, pero la curiosidad es innata.” — Scott Nicholson, Líder de Ciencia de Datos en Accretive Health.

En los siguientes artículos me explayare sobre la composición de nuestros equipos de ciencia de datos, sus roles, qué habilidades son necesarias y cuáles son las tecnologías más utilizadas. Cada artículo será abordado desde mis experiencias, pues considero que es lo que realmente puede brindar algo distinto. Si te gusto, sígueme para estar al tanto de mis nuevos artículos.

--

--

Juan Carlos Vázquez
Ciencia y Datos

Lead Data Scientist at CoreBI S.A. PhD Student, Vet, teacher, researcher, developer, fell in love with Data Science. My academic research is in bioinformatics.