Analizando Datos con Python en datahack Sur

Analizando datos con python

Datahack Sur, en Sevilla, se centra ahora en Python. La sede andaluza sigue avanzando en su afán de traer formación de Big Data y Analytics de calidad. Y en este tercer evento, tras hablar de Machine Learning y Blockchain en las otras ediciones, ahora le tocaba al Análisis de Datos usando una de las herramientas más empleadas por los profesionales, el lenguaje de programación Python.

La mejor formación en Big Data y asequible para todos.

Esta charla cerraba el círculo con la primera de Machine Learning, pues como se nos recalcaba, no es posible dar ese paso sin haber realizado antes un exhaustivo Análisis de los Datos. Se dividió en dos partes, una primera más teórica sobre los pasos para ese análisis y los fundamentos de Python como herramienta para realizarlo. Y una segunda en la que se hizo un ejercicio sobre unos datos reales para reforzar lo explicado antes, y ver el potencial de este lenguaje.

Proceso de Ciencia de Datos

Tras el índice, fue lo primero que se presentó. El marco completo del proceso que lleva a cabo un científico de datos, desde el origen de éstos hasta la solución final que se le dé al problema que se quiere resolver, pasando por las etapas de Extracción, Procesado, Limpieza, EDA (Análisis Exploratorio de datos o como se conoce en inglés: Exploratory Data Analysis), Machine Learning e Implantación.

Se recalcó con insistencia en que lo que hay que tener presente en todo momento, y por su puesto bien definido, es el problema que se quiere resolver. Esta concreción del problema nos ayudará a enfocar cada una de las etapas del proceso, especialmente en la etapa del EDA.

Y respecto al EDA, en la presentación se nos recordaba que el término fue acuñado por el conocido estadístico John Tukey en 1977, y lo definía como “una actitud, un estado de flexibilidad, una voluntad de buscar aquellas cosas que creemos que no están allí, también aquellas que creemos que sí están”.

Después de explicar los pasos habituales que se hacen en este EDA, que es la base del Análisis de los Datos, y recordándonos también que el EDA es algo que se hace en paralelo con las otras etapas de procesado de la información, se pasó a hablar de la herramienta Python.

Python, herramienta extendida para el Análisis de Datos

Asentada la base del Análisis de los Datos, ahora tocaba ver cómo se hacía. Y en esta ocasión se aborda usando el lenguaje de programación Python, lenguaje interpretado creado en 1989 por Guido Van Rossum. Está claro, ¿no? Desde siempre se está haciendo un guiño al grupo británico de humor “Monty Python” a la hora de elegir el nombre.

Lo primero que se habló es el porqué de su popularidad, destacándose que tenía una comunidad que lo soportaba muy grande, que está esponsorizado por Google y Facebook entre otros. Y, además, que tenía Big Data, 140000 librerías y que además era eficiente, fiable y abierto. ¡ Qué más se puede pedir !

Las librerías imprescindibles de Python

Y sin más, se pasó a describir las librerías más importantes para el análisis de datos: numpy, pandas, matplotlib y seaborn.

Numpy es la base, la librería para los cálculos rápidos, usando la vectorización, o lo que es lo mismo, operaciones entre vectores evitando usar bucles “for”. Y ahí se aprovechó para recordarnos el evitar usar bucles “for” cuando se manejan grandes volúmenes de datos.

El hecho de que la librería numpy esté pensada para manejar grandes volúmenes de datos, esté realizada en C, y tenga un esquema optimizado de memoria, independiente del resto de objetos de Python, es la que la hacen tan importante.

Para facilitar el uso de todas las funciones de esta librería, se explicó que es recomendable tener una “chuleta” a mano siempre.

A continuación, se pasó a hablar de la librería más importante del proceso de Ciencia de Datos, pandas, que usando como base la anterior librería con potencial de cálculos muy rápidos, une la posibilidad de manipular datos estructurados (Dataframes y Series) con funciones muy parecidas a las que se usan en las bases de datos (SQL).

Por supuesto, pandas también tiene “chuleta”, no podía ser menos.

La visualización

Pero parece que no es suficiente con estas dos librerías, y se nos insistía bastante, la visualización es muy importante en el proceso que se explicaba al principio de la presentación. En ese descubrimiento de lo que no creemos que está en los datos, como decía Tukey, aflora cuando hacemos una buena visualización. Y para ello se nos recomendaban dos librerías, matplotlib y seaborn.

Matplotlib es la librería por excelencia de visualización de gráficas en 2D, con la que se puede visualizar prácticamente todo lo que se nos ocurra. Para ayudarnos a elegir cómo visualizar, una recomendación era que se acudiera a la galería de ejemplos que contiene tantos, que seguro nos encauza para crear nuestra gráfica. Siempre contaremos con la “chuleta”.

Y para terminar con la visualización, se habló de la segunda librería, seaborn. Permite hacer gráficos más estadísticos y con un lenguaje de alto nivel. Esta librería, que usa de base la anterior, trata de sacar a la luz las relaciones entre variables, y para que no se nos olvide ninguna función, tendremos a mano la “chuleta” también.

Finalmente, antes de ver un ejemplo práctico, se nos recordaba cuáles eran las plataformas más empleadas para usar Python: Anaconda como “distribución del software”, Spyder como entorno de desarrollo, Jupyter como aplicación web para poder compartir código y contar historias sobre los datos, sin olvidar un buen editor Notepad++

Ejemplo de Análisis de Datos: estudio de mercado de torres eléctricas a partir de datos de aduanas

La segunda parte de la conferencia se basaba en la ejecución de código en Python usando un notebook de Jupyter, para repasar todo lo comentado hasta ahora, ya con datos reales.

Aunque el ejemplo se hacía sobre unos datos que no se pueden llamar calificar como Big Data, sólo contaban con algo más de 1500 observaciones y unas 100 características, lo que se vio es aplicable a un dataset de dimensiones miles de veces mayor, los conceptos son los mismos.

Y en referencia al Big Data, en la presentación se nos daba una definición curiosa del término: “Big Data es lo que no cabe en una Excel”. Curiosa definición, pero lo cierto es que muchos empezaron a usar Python como herramienta de análisis de datos, en el momento que Excel dejó de dar solución por el volumen de los datos.

Ejecutando código en Python

Sin más se entró a ir ejecutando el código, siguiendo los pasos del Proceso de Ciencia de Datos, empezando por la extracción de los datos, que en este caso fue una carga de un archivo en formato csv. Siguieron etapas de procesado (rellenado de missing, extracción de características con expresiones regulares, conversión de tipos de variables) y de limpieza.

Además de los datos de aduanas, se incorporaron datos para hacer un análisis más amplio, como los precios históricos de las materias primas principales, el acero y el zinc.

Vimos una librería muy interesante que realizar rápido y de forma detallada un EDA a partir de un dataframe de pandas, y lleva por nombre pandas-profiling.

Finalmente, como no podía ser menos, se realizaron varias visualizaciones, para tratar de entender el mercado de torres eléctricas en el país, viendo cómo han ido evolucionando las operaciones a lo largo de los años, quiénes han exportado, qué volúmenes y a qué precio. Ahí vimos el potencial de visualización tanto de matplotlib y seaborn.

Conclusión

Pasada la hora y cuarto de la presentación, hemos visto condensada esta actividad del Análisis de Datos, importante paso previo al uso de herramientas más avanzadas en Ciencia de Datos como el Machine Learning. Y vimos también su potencial, en el sencillo ejemplo a partir de datos de aduanas y precios históricos de materia prima.

Durante la ronda de preguntas, el numeroso público mostró mucho interés en el asunto, sacando a relucir temas como la arquitectura necesaria para hacer esto a gran escala y velocidad, o el uso de las GPU para la analítica, interés en las empresas por personas con perfiles que sean capaces de hacer estos análisis de datos, y otras preguntas interesantes.

Como en otras ocasiones, un asistente habitual a este ciclo de conferencias sobre Big Data, hizo su magnífica crónica del evento.

En breve estará disponible el vídeo de la presentación, de momento podemos descargarnos en github la presentación, el notebook de Jupyter, los datos para ejecutarlo y las chuletas (“cheat sheets”) de las librerías.

Deja un comentario

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