Mostrando las entradas con la etiqueta Data Science. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Data Science. Mostrar todas las entradas

viernes, 9 de abril de 2021

Data Engineer vs Data Scientist

Si, hace mucho tiempo (varios meses) que no escribo una entrada para este blog de Idea Falaz, aquí en esta entrada quiero compartir algo que me encuentro aprendiendo de gran utilidad para el rol que actualmente desempeño laboramente como Data Engineer. Aquí aprovecho hacer una aclaración y es que voy a compartir mi opinión y sólo una pequeña parte de lo que he podido aprender y evidenciar, no es un hecho tácito y me gustaría conocer la opionión de otras personas con respecto al tema. (escribiendo esta entrada me alejé un poco de la parte técnica, voy a escribir otra entrada para la parte técnica)

Primero quiero comentar algunas de las dificultades que se me han presentado durante el desarrollo de algunos proyectos.

Un panorama difuso entre Data Scientist y Data Engineer; esto es algo a lo que me enfrenté en los últimos 2 años. En la industria del software no existía y aún no existe (con algunas excepciones) una distinción o claridad en cuanto al role y funciones que debe cumplir una persona dedicada al Data Scientist ó Data Engineer, es más, hay personas y empresas que todavía tienen la idea errónea de que el Data Scientist es toda una profesión en la cual se le delega como funciones tódo el trabajo y esfuerzo que se debe realizar como Data Engineer, ésto es un gran error tanto para una empresa de la industria del software como para las personas que están construyendo un perfil profesional en este tipo de industria, al final esto puede ser contraproducente, para ambas partes.

Al momento de escribir esta entrada no me considero un Senior ni mucho un Luminary como Software Developer, pero considero que tengo la suficiente experiencia para determinar que soy un mid-senior, con esto en mente y a raíz de la premisa del anterior parrafo, consultando con amigos que han estado relacionados tanto directamente como inderectamente con la industria del software y después de leer varios artículos y blog posts, encontré una zona común en cuanto a las diferencias más evidentes entre el Data Scientist y Data Engineer, esto me ayudó mucho a tener un panorama un poco más claro en cuanto a cuáles son mis intereses, como también definir profesionalmente mis skills y cómo integrarme a un gran equipo interdisiplinario dedicado a la industria del software con proyectos Big Data.


Data Engineer vs Data Scientist

Responsabilidades de un Data Engineer

Empezando a definir de forma general, el Data Engineer es alguien quien desarrolla, construye, prueba y mantiene arquitecturas como bases de datos y sistemas a gran escala. Los Ingenieros de Datos operan con datos "Crudos", estos datos casi siempre, pero que en la vida real es siempre, contienen errores ya sea humanos, provenientes de máquinas o instrumentos. Los datos puede ser no válidos o contener registros sospechosos, esto se debe a que los datos no tienen un formato o contienen códigos específicos de un sistema.

Los Ingenieros de Datos necesitan recomendar, ademas deben implementar formas de mejorar la confiabilidad, eficiencia y calidad de los datos. Para hacer esto, los Ingenieros de Datos necesitan emplear una gran variedad de lenguajes y herramientas para operar en conjunto o tratar de buscar nuevas oportunidades de adquirir nuevos datos desde otros sistemas adecuados para el sistema en específico, estos datos pueden convertise en información para que posteriormente sean procesados por los Data Scientists.

Los Ingenieros de Datos deben asegurar que la arquitectura implementada sea soportada con los requisitos de los Científicos de Datos, Stackholders y el tipo de negocio a la cual sea aplicada.

Al final de este proceso el equipo de Ingenieros de Datos deben generar conjuntos de datos que deben poner a disposicion de los Científicos de Datos para el posterior modelamientos de datos, mineria de datos y producción.


Responsabilidades de un Data Scientist

Empezando a definir de forma general, el Data Scientist obtiene los datos del Data Ingeneer que son inicialmente limpiados y manipulados para poder ser operados en un flujo de trabajo de forma tal que el Científico de Datos puedan usar estos datos para desarrollar sofisticados métodos y procesos que hacen parte de modelos predictivos o descriptivos.

Los cientificos de datos necesitan tener acceso a las preguntas propuestas por la industria o el negocio en particular, para dar respuestas a estas preguntas se requiere que los Data Scientist tengan a su disposicion grandes volumenes de datos tanto de fuentes internas de la misma organización como también de fuentes externas a la organización, uno de los objetivos principales en este proceso consiste en identificar patrones en los datos.

Encontrar patrones en los datos incurre en generar un análisis para la adquisición de información que responda o no a las preguntas propuestas, deben tener habilidades para presentar informes a los stakeholders de forma clara sin tanto tecnicismo, una vez los stakeholders dan un parte de aceptación se debe asegurar que el trabajo realizado se pueda automatizar generando informes de forma recurrente ya sea diariamente, mensualmente o cada año.


¿Y ahora qué?

Bueno, pues aquí algo importante a tener en cuenta, tanto Data Engineer como Data Scientist, deberían trabajar coordinadamente, no son cómo el agua y el aciete, deben tener objetivos claros definidos al inicio de un proyecto, dado que el flujo de los procesos deben/están integrados en ambas partes.

En la vida real existen muchos inconvenientes dado que las teconologías usadas son muy variadas, en algunos casos tenemos Data Scientist expertos usando tecnologias como R, RStudio son muy buenos en eso pero carecen de conocimientos en Python y Jupyter Notebooks, contrario a algunos Data Engineers que son expertos usando estas tecnologías.

Este es un punto a tener en cuenta, la parte técnica podría convertirse en un cuello de botella en el flujo natural de los datos, en algunos proyectos he tenido la experiencia de vivir esto, por lo que buscando opciones de herramientas que permitan ambos mundos, Data Engineers y los Data Scientist, me encontré con una herramienta que actualmente me encuentro aprendiendo y espero compartir en otra entrada algunas razones por las cuales me parece interesante aprender y a tener en cuenta en futuros trabajos, esta herramienta se llama Kedro, desarrollada por el equipo de Quantum Black Labs, son lideres en la industria de los datos.



sábado, 25 de abril de 2020

Colombia Covid19 Pipeline and Datasets

Hi everybody,

In this post, I want to share my auto-learning process about data science, since two weeks ago I have been working in the Covid19 dataset from Colombia, and now I have a dataset that I want to share with the open community.

The Project: Colombia Covid19 Pipeline

Pipeline to get data sources from Instituto Nacional de Salud - INS related to Covid19 cases daily report in Colombia to create datasets.

Context


The number of new cases is increasing day by day around the world. This dataset has information about reported cases from 32 Colombia departments.


Here you can find the result from my auto-learning process about data science, this dataset has a daily report from Instituto Nacional de Salud - INS about Covid19 cases reported in Colombia, also has a history report from Instituto Nacional de Salud - INS about Covid19 Samples processed in Colombia.

Content

This dataset uses the INS Covid19 report data source, I did clean the data source and fill the NaN values to generate this dataset with additional attributes like, day of the week, year, and month of the year.

covid19co.csv -> Daily report, Cases reported in Colombia

covid19co_samples_processed.csv -> Daily report, Samples processed in Colombia

This dataset is updated from an automatic pipeline, you can find the GitHub code repository here: Colombia Covid19 Pipeline

Acknowledgements

Dataset is obtained from Instituto Nacional de Salud - INS daily report Covid19 in Colombia. You can get the official dataset here: INS - Official Report

Inspiration

What questions do you want to see answered?

You can view and collaborate with the analysis here: colombia_covid_19_analysis Kaggle Notebook Kernel.




Work in progress ...


viernes, 31 de enero de 2020

Introducción a Web Scraping

Buenas, ahora vengo con esta entrada donde quiero compartir una breve y corta introducción sobre Web Scraping. En principio quiero hacer esta introducción porque actualmente me encuentro trabajando en la Industria de Ciencia de Datos o como le dicen en ingles y suena mas bonito, 'Data Sciencie Industry'.

Una parte importante del proceso de Data Science consiste en la busqueda de fuentes de datos, en muchas ocaciones estas fuentes de datos no se encuentran en un formato común o estandar como bases de datos SQL o archivos CSV, simplemente son fuentes de datos en documentos no estructurados o que se encuentran en la web a modo de documentos HTML.

Creo que algunas personas de alguna forma u otra han realizado este proceso de obtener información de un sitio web para ser usado en algún otro proyecto, con un rudimentario copy/paste, se puede decir que es el abuelito del scraping a una escala muy pequeña.

El proceso de extracción de datos en la web puede ser infinitamente complejo en la medida que se realice manualmente, actuamente existen miles y millones de sitios web que contienen millones de vinculos a otros sitios web, ahora pensemos que cada segundo se crean nuevos sitios web, al mismo tiempo que son vinculados a otros sitios web, la web está en constante crecimiento podríamos decir que tiene vida, surge entonces la necesidad de crear sistemas inteligentes que permitan o faciliten la toma de decisiones.

Entonces nace el concepto de Web Scraping, se han desarrollado una gran variedad de herramientas y soluciones que permiten analizar un sitio web para configurar un proceso de extracción automatica de datos desde un sitio web navegando por todos sus vinculos según sea la necesidad específica del proyecto a realizar.

Web Scraping tiene dos componentes básicos que permiten la extracción automática de datos, estos corresponden al Crawler y el Scraper.

El Crawler tambien se conoce como la araña o el 'Spider', consiste en una inteligencia artificial que tiene el proposito de navegar en internet para indexar documentos, buscar contenido y seguir los enlaces entre documentos, explorando como lo haria un humano pero de forma automatica con una gran velocidad de procesamiento que permite visitar y navegar atraves de cientos y miles de documentos en muy poco tiempo.


Crawler
Crawler


El Scraper consiste en el algoritmo o herramienta que se especializa en la extracción de datos desde una pagina web, usando las etiquetas HTML y clases CSS para identificar los datos que deseamos obtener, un Scraper puede ser tan simple como obtener el título de cada página web o muy complejo según las necesidades del proyecto.



Scraper
Scraper

Bueno esto es todo lo que quería compartir, como dije al inicio esto es solo una corta introducción a Web Scraping.

Estaré ampliando un poco más el contenido relacionado con esta introducción en los próximos días, semanas o meses.