Translate

viernes, 20 de enero de 2023

Framework para EDA y como automatizar en Python el análisis exploratorio

 Antes de ponernos a hacer algún modelo o análisis y más allá de las herramientas que vamos a utilizar nos va a tocar familiarizarnos con los datos y ver que tipo de modificiones debemos hacerle antes de tenerlos listos 
Para ello existe un tipo de análisis EDA: Análisis de datos exploratorio. 
Lo que podemos definir que entra dentro de este análisis va a depender de las necesidades del dataset y de las preguntas que tenga el negocio, Lo que si es cierto es que una vez hecho uno, podemos reutiliar formulas para aplicarlo al resto de análisis.Sobre todo la parte de visualización  
Así que podemos definir un framework para transformar esos datos

Framework para realizar el análisis exploratorio

Podemos así ver 5 fases que pueden ser iterativas:

Data Sourcing

De dónde vienen los datos, tenemos que modificar el tipo de variable o la codificación? 

Data Cleaning

Existen valores nulos? Debemos eliminar valores atípicos, valores duplicados.

Univariate analysis

Cómo se distribuye cada una de las variables? Valores máximos y mínimos, ...

Bivariate analysis

Existe correlación entre dos variables. Una variabe ayuda  a predecir a la otra?

Multivariate analysis

Y cómo se comportan estas variables en su conjunto? Podemos añadir nuevas variables a partir de las que ya tenemos?

Automatización del análisis exploratorio en Python

Pues visto así esto nos puedo llevar bastante tiempo, pero se irá una inversión a medio plazo. Como comentaba más arriba gran parte del análisis exploratorio para el análisis de datos se puede automatizar. 

df.describe()

Y sobre todo visualizando las variables usando numpy y pandas con seaborn

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt


Librerias para la automatización del EDA en Python

Hasta la fecha ya tengo en mi bookmark tres librerias que automatizan esta parte. Sobre todo a mi me parece útil para hacer visualización tras transformar datos o creas nuevos. Estas librerias también se puede utulizar para comparar los datos que tenemos en nuestros train dataset de forma muy rápida. 
Las tres librerias que comento aquí hacen uso de tan sólo 2-3 líneas de comando.

Por mi orden de preferencia:
  1. 1. Pandas profiling, que nos da un informe de spoiler como este. Aunque los comandos avanzados no son muy avanzados, aquí tienes como instalar esta librería en Python
  2. 2. Dataprep 
  3. 3. Sweetviz, que es más ligero de pandas profiling

Quiero saber más sobre EDA!!