Enriquecimiento de Datos para Modelos de Machine Learning

Clase 16 de 31Curso para Crear tus Proyectos de Ciencia de Datos

Resumen

¿Cómo enriquecer y gestionar datos en notebooks?

El manejo eficiente de los datos es crucial para cualquier proyecto de análisis o modelado. A menudo, esto implica no solo la gestión básica, sino también el enriquecimiento para obtener más información valiosa de los modelos. Abordaremos cómo enriquecer los datos, gestionar notebooks y explorar fuentes externas para obtener un entorno de datos más robusto.

¿Cómo se utiliza un nuevo notebook para datos enriquecer?

Para empezar a enriquecer los datos en un entorno estructurado, es común trabajar dentro de un notebook. En este caso, creamos un nuevo notebook y lo titulamos tres_guion_bajo_enriquecimiento. Usamos Pandas para importar nuestros datos y Matplotlib para la visualización. Con estos elementos, explicamos sistemáticamente los procesos que enriquecen la data.

import pandas as pd
import matplotlib.pyplot as plt

# Cargar el dataset
compras_df = pd.read_csv('data_clean_compras.csv')

¿Cómo se expande una columna de fecha?

Las fechas, generalmente almacenadas como texto, pueden ser transformadas para obtener insights temporales. La expansión de columnas de fecha implica desglosar una fecha en sus componentes: día, mes y año, lo cual puede ser útil para tareas de modelado.

compras_df['fecha'] = pd.to_datetime(compras_df['fecha'])

compras_df['día'] = compras_df['fecha'].apply(lambda x: x.day)
compras_df['mes'] = compras_df['fecha'].apply(lambda x: x.month)
compras_df['año'] = compras_df['fecha'].apply(lambda x: x.year)

¿Cómo proyectar variables de interés?

Proyectar variables es una técnica para relacionar una variable con otra, generando así insights valiosos. Por ejemplo, al analizar el número de ventas por beneficiario, podemos construir un diccionario que nos dé las cuentas de cada beneficiario.

beneficiary_sales = compras_df['beneficiario'].value_counts().to_dict()

compras_df['beneficiario_sales'] = compras_df['beneficiario'].apply(lambda x: beneficiary_sales[x])

¿Cómo traer información de fuentes externas?

El uso de fuentes externas enriquece significativamente los datos. Una herramienta conveniente es Phantom Buster, que permite la recuperación de información externa, como por ejemplo, si un beneficiario tiene página de LinkedIn.

# Cargar los resultados de LinkedIn
linkedin_data = pd.read_csv('data_linkedin.csv')
has_site = linkedin_data.notna()
compras_df['has_linkedin'] = compras_df['beneficiario'].apply(lambda x: has_site[x] if x in has_site else False)

¿Cómo asegurarse de que las variables estén correctamente convertidas?

Después de incorporar esta información, es esencial asegurarse de que no hemos introducido errores en el conjunto de datos. Verificar conversions y el manejo adecuado de NaNs garantiza la integridad de la información.

# Guardar dataset enriquecido
compras_df.to_csv('data_compras_enriched.csv', index=False)

En resumen, el proceso de enriquecer datos implica limpiar, transformar y extraer información significativa utilizando tanto recursos internos como externos. Esta metodología no solo amplifica el potencial analítico, sino que también da lugar a modelos predictivos más precisos y robustos.