Data Exploration y Feature Engineering en BigQuery | Curso Google Cloud Professional Data Engineer

Data Exploration y Feature Engineering para Machine Learning en BigQuery

Autor: Eduardo Martínez Agrelo

El rol del Ingeniero de Datos va más allá de construir pipelines; a menudo es el primer paso en el camino hacia el Machine Learning (ML). Preparar datos para el consumo de modelos de ML requiere un conjunto de habilidades específicas: la exploración de datos para entenderlos y la ingeniería de características (feature engineering) para potenciar los algoritmos. En este capítulo, veremos cómo BigQuery se convierte en una plataforma integral para estas tareas, uniendo el mundo de los datos y el de la ciencia de datos.

Data Exploration: Entendiendo tus Datos con SQL

Antes de poder construir features, debemos entender profundamente nuestros datos. La Exploración de Datos (EDA - Exploratory Data Analysis) es el proceso de investigar datasets para resumir sus principales características, a menudo con visualizaciones y métodos estadísticos. En BigQuery, podemos realizar una gran parte de este análisis directamente con SQL.

Usaremos funciones de agregación y estadísticas para responder preguntas como:

  • Distribución de los datos: ¿Cuáles son los valores mínimos, máximos, la media y la desviación estándar de las columnas numéricas? (MIN, MAX, AVG, STDDEV).
  • Frecuencia y Cardinalidad: ¿Cuántos valores distintos hay en una columna categórica? ¿Cuáles son los más comunes? (COUNT(DISTINCT), GROUP BY, ORDER BY).
  • Presencia de Nulos: ¿Qué columnas tienen valores faltantes y en qué proporción? (COUNTIF(column IS NULL)).
  • Cuantiles y Percentiles: ¿Cuál es la mediana o el percentil 95 de una métrica? (APPROX_QUANTILES).

Feature Engineering: El Arte de Crear Señales para el Modelo

La ingeniería de características es el proceso de transformar los datos brutos en "features" (características o variables) que representan mejor el problema subyacente para el modelo de ML, mejorando así su rendimiento. A menudo, es el paso más importante y el que más impacto tiene en el éxito de un proyecto de ML.

Con SQL en BigQuery, podemos crear una amplia variedad de features:

  • Binning (Agrupación): Convertir una variable numérica continua en una categórica. Por ejemplo, transformar la edad en grupos como "18-25", "26-35", etc., usando una expresión CASE.
  • Extracción de Fechas y Tiempos: De una columna de timestamp, podemos extraer el día de la semana, la hora del día o si es fin de semana, ya que pueden ser señales muy potentes. La función EXTRACT es perfecta para esto.
  • Feature Crosses: Combinar dos o más variables categóricas para capturar interacciones. Por ejemplo, combinar `país` y `dispositivo` para crear una nueva feature como `US_mobile`. La función CONCAT es útil aquí.
  • Procesamiento de Texto Simple: Crear features a partir de texto, como la longitud de un comentario o el número de palabras.

Automatizando con BigQuery ML (BQML)

Realizar estos pasos manualmente está bien para la exploración, pero para la producción necesitamos un proceso robusto. Aquí es donde BigQuery ML (BQML) cambia las reglas del juego. BQML te permite entrenar e implementar modelos de ML directamente en BigQuery usando solo SQL.

La característica más potente para la ingeniería de características en BQML es la cláusula TRANSFORM dentro de la sentencia CREATE MODEL. Dentro de esta cláusula, puedes escribir todas las transformaciones SQL que definiste. BQML se encargará de:

  1. Aplicar estas transformaciones de forma consistente durante el entrenamiento del modelo.
  2. Guardar estas transformaciones como parte del modelo.
  3. Aplicarlas automáticamente cuando uses el modelo para hacer predicciones (ML.PREDICT), evitando el temido problema de "training-serving skew" (desfase entre el entrenamiento y la predicción).

Conclusión: Un Puente entre la Ingeniería y la Ciencia de Datos

BigQuery no es solo un almacén de datos; es una plataforma de análisis y ML de extremo a extremo. Como Ingeniero de Datos, dominar las técnicas de exploración y feature engineering con SQL te permite colaborar de manera mucho más efectiva con los científicos de datos, o incluso liderar proyectos de ML más sencillos. Al usar herramientas como BQML, aceleras drásticamente el ciclo de vida del desarrollo de modelos, pasando de los datos crudos a las predicciones de forma más rápida, escalable y robusta.

Descarga aquí el código de la lección
Click aquí para visualizar el vídeo de la lección en YouTube