La mayoría de los paquetes de análisis de Python almacenan datos y realizan su análisis o modelado en memoria. Esto pone una limitación en el uso de paquetes para datos que no caben en memoria. Como consecuencia, los científicos de datos se ven forzados a usar herramientas que no son de Python (como Spark, etc.) para realizar análisis o pruebas sobre conjuntos de datos más grandes, lo que les suele suponer una gran pérdida de tiempo.
Para solucionar este problema surge el término de “Analítica Local”. La analítica local tiene la capacidad de aprovechar los recursos de nuestra máquina para analizar y tratar sets de datos muy grandes, sin necesidad de tener que lanzar estos procesos sobre un cluster distribuido, lo que evita colapsar los recursos de los servidores.
Conoce #PyViz, una herramienta basada en #Python de gran utilidad para la analítica local #data Click Para TwittearEn este post os voy a presentar una herramienta muy útil y basada en python, para trabajar con conjuntos de datos muy grandes (que no caben en memoria): Pyviz.
Pyviz es una herramienta opensource soportada por Anaconda, que permite una perfecta integración entre librerías python sin generar problemas de dependencias. Está formada por un conjunto de librerías cuya funcionalidad principal es la de proporcionar un EDA (Análisis Exploratorio de Datos) sobre sets de datos de gran tamaño.

Figura 1: compendio de librerías integradas en Pyviz Fuente: http://pyviz.org/
Entre los paquetes más importantes destacamos los siguientes:
1. Paquetes para procesamiento de los datos:
- Pandas: es una librería destinada al análisis de datos, que proporciona unas estructuras de datos flexibles, que permiten trabajar con ellos de una forma muy eficiente. Contiene un módulo denominado pandas profiling que ofrece un informe EDA sobre una muestra de datos o sobre un set de datos de pequeño tamaño (del orden de unos 200 registros). Pandas trabaja con todos los datos en memoria y ,precisamente por eso, no es posible hacer este análisis sobre un set de datos de gran tamaño porque el resultado sería un error de memoria.

Figura 2: ejemplo de informe de set de datos con Pandas Profiling. Fuente: elaboración propia
Como solución a este problema surge el siguiente motor de procesamiento: Dask. El objetivo de Dask es dar una solución out-of-core a numpy (array n-dimensional) y pandas (dataframe).
- Dask: se trata de una librería de computación paralela, diseñada para trabajar en una sola máquina, aprovechando toda su potencia y realizando cálculos fuera del núcleo, es decir, trabajando con conjuntos de datos más grandes que la memoria (del orden de 150.000.000 de registros). Lo hace usando un enfoque similar al de Spark, construyendo un gráfico acíclico dirigido (DAG) de tareas y dividiéndolas en pequeñas porciones llamadas particiones.
Esto permite realizar análisis estadísticos sobre un set de datos completo independientemente del tamaño de la fuente analizada y sin la necesidad de disponer de un gran número de recursos. Dask también incluye dentro de sus funcionalidades la de realizar gráficos interactivos en tiempo real y se integra perfectamente con los notebooks de Jupyter.

Figura 3: análisis de un set de datos completo utilizando Dask. Fuente: elaboración propia
2. Paquetes para visualización:
- Una de las librerías más extendidas es Matplotlib, un software capaz de crear visualizaciones complejas tanto en 2D como en 3D. Estas visualizaciones son muy básicas y poco atractivas.
- Otra opción, más flexible, más elegante y más potente (se pueden representar grandes volúmenes de datos) es Bokeh, librería de visualización que se integra con Dask para poder ofrecer dashboards con cuadros de mando sencillos de manejar con el fin de que el estudio de los datos sea más sencillo.
- Holoviews: librería de visualización que tiene como motor principal bokeh.
- Datashader: librería de visualización especializada en visualizar un gran número de puntos en un plot para poder ver a simple vista las características principales de un set de datos enorme.
Como conclusión obtenemos que este paquete de herramientas basadas en python está pensado para la analítica local y es de gran utilidad para la primera toma de contacto de los data sciences con la fuente de datos que van a analizar. Con él, pueden analizar y estudiar los datos de una forma más cómoda y rápida en el tiempo, optimizando al máximo los recursos de su propia máquina local. ¡Espero que este artículo te haya servido para que te animes a usarlo!
Imagen: PyViz











Leave a Comment