Identificar las preguntas para las que buscamos respuestas
Esto nos permitirá reducir el número de posibles “caminos” a recorrer, y enfocar nuestro análisis
Debemos tratar de realizar preguntas específicas, cuanto más específicas, mejor podremos enfocar el análisis
Nos permitirá responder la pregunta “¿Tengo los datos que necesito para responder esta pregunta?”
Crear un Jupyter Notebook para mantener un registro de la exploración de los datos
Enfocado a la reproducibilidad del análisis
Crear una copia de los datos para explorarlos (muestreo a tamaño manejable dep. volumen)
Dependiendo del volumen y fuente de los datos, puede ser necesario muestrear los mismos
Es muy probable que necesitemos limpiar los datos: cada conjunto de datos tiene sus propias peculiaridades
Variables irrelevantes
Ejemplos duplicados
Valores ausentes
Detección de outliers
Visualización a alto nivel
Antes de analizar de manera más específica los datos, es recomendable realizar una primera pasada a alto nivel para hacernos una idea del tipo de datos con el que trabajamos
En el caso de pandas, los métodos .info() y .describe() nos permiten obtener información muy útil sobre el conjunto de datos
Comprobar los extremos es otra buena práctica para comprobar el estado inicial del conjunto de datos. pandas nos permite hacerlo con los métodos .head() y .tail()
Validar nuestros datos usando una fuente externa
Antes de continuar con el análisis, es una buena práctica contrastar / validar los atributos de nuestro conjunto de datos con una fuente externa
Esto nos permitirá comprobar la veracidad de los datos, y evitará que extraigamos conclusiones erróneas fruto de datos erróneos
Por ejemplo, podemos verificar que los rangos de una variable cuantitativa son los esperados, o comprobar las clases de una variable cualitativa
Visualización de los datos
Podemos definir las visualizaciones como un modo de síntesis de los datos
Nos permite comprobar cómo de fiel es el conjunto de datos con respecto a mis hipótesis o expectativas
Análisis univariable: Estudiar cada atributo y sus características
Nombre
Tipo de dato (categórico, int / float, acotado / no acotado, texto, estructurado, etc.)
Porcentaje (%) de valores faltantes
Ruido y tipo de ruido (estocástico, valores atípicos, errores de redondeo, etc.)
¿Es el atributo útil para el proyecto?
Tipo de distribución (gaussiana, uniforme, logarítmica, etc.)
Análisis bivariable: Estudiar correlaciones entre dos atributos
Feature-to-feature relationship
Q → Q (Quantitative to Quantitative relationship)
C → Q (Categorical to Quantitative relationship)
Scatter plot
Análisis multivariable: Estudiar correlaciones entre conjuntos ($n ≥ 3$) de atributos
Scatter matrix plot
Para proyectos de aprendizaje supervisado, identificar los atributos objetivo (target)
Estudiar cómo resolver el problema manualmente
Feature engineering
Identificar potenciales transformaciones que podamos aplicar (binning, encoding…)
¿Sería útil crear nuevos atributos a partir de la información que tengo a mi disposición?
Podemos sintetizar la información de una combinación de variables en una nueva variable
Identificar datos adicionales que pueden ser útiles