Laboratorio 6: BigQuery ML (Machine Learning)
Objetivos del Laboratorio
- Comprender la ventaja de entrenar modelos de Machine Learning en la propia base de datos, evitando latencias y riesgos de exportación de datos (data egress).
- Entrenar un modelo de aprendizaje supervisado de tipo Regresión Lineal para estimar tendencias de gasto analítico.
- Evaluar la precisión del algoritmo aplicando métricas estándar de regresión como el coeficiente de determinación (R-cuadrado) y el error absoluto medio (MAE).
- Ejecutar inferencias predictivas en tiempo real sobre nuevos registros directamente con consultas SQL.
Herramientas y APIs Utilizadas
BigQuery ML (BQML): Extensión integrada de BigQuery que permite desarrollar modelos predictivos utilizando exclusivamente SQL estándar.bq CLI: Interfaz de línea de comandos empleada para enviar secuencialmente las consultas de entrenamiento, evaluación y predicción.BigQuery API: API encargada de coordinar los recursos distribuidos de computación para la convergencia del algoritmo matemático.
Estructura del Código Desarrollado
customer_features.csv: Datos históricos de clientes que asocian atributos cuantitativos (edad, fidelidad, historial de pedidos) con el gasto anual (variable objetivo).main.tf: Declaración de Terraform que despliega el datasetlab06_datasety la tabla de entrenamiento en una región compatible.06_01_train_model.sql: Consulta SQL que implementa la definición del algoritmo y procesa los datos para generar el modelo.06_02_evaluate_model.sql: Consulta que interroga al modelo y extrae los indicadores matemáticos de rendimiento.06_03_predict_model.sql: Sentencia que utiliza el modelo persistido para inferir resultados predictivos sobre registros simulados.
Paso a Paso del Despliegue
Fase 1: Preparación del Entorno
- Estructuración de las características de entrenamiento recopilando el comportamiento cuantitativo de clientes históricos.
- Despliegue del dataset de BigQuery y de la tabla nativa vacía ejecutando el flujo declarativo de Terraform.
- Carga física del archivo CSV con las características de los clientes utilizando la instrucción
bq load.
Fase 2: Entrenamiento y Evaluación
- Lanzamiento del script de entrenamiento con la sintaxis
CREATE OR REPLACE MODELespecificando la opciónmodel_type='linear_reg'. - Asociación de la variable predictora declarándola mediante el parámetro de entrenamiento
input_label_cols=['yearly_spend']. - Auditoría y análisis del rendimiento del modelo ejecutando la función integrada
ML.EVALUATEpara comprobar la precisión frente al error absoluto medio.
Fase 3: Inferencia Predictiva
- Diseño de una consulta de predicción estructurada sobre la función analítica predictora
ML.PREDICT. - Alimentación del modelo con nuevos datos de clientes simulados utilizando una subconsulta basada en la directiva de combinación
UNION ALL. - Inspección de la columna autogenerada de resultados
predicted_yearly_spendpara validar el comportamiento del modelo matemático.