La analítica predictiva es una de las grandes ventajas de combinar BigQuery con BigQuery ML (BQML). Gracias a BQML, puedes crear, entrenar y usar modelos de machine learning directamente dentro de BigQuery, sin salir del entorno SQL. Esto permite que equipos de analítica o marketing puedan hacer predicciones sobre ventas, usuarios o eventos sin necesidad de mover datos a Python o R.
¿Qué es BigQuery ML?
BigQuery ML es una extensión de SQL que permite, principalmente, llevar a cabo acciones de predicción:
- Crear modelos de regresión, clasificación, series temporales o clustering.
- Entrenar modelos usando tablas existentes en BigQuery.
- Hacer predicciones directamente con SQL, integrando resultados en dashboards.
Esto evita tener que exportar grandes volúmenes de datos a entornos externos, acelerando la analítica.
Casos de uso típicos
Con BQML puedes predecir:
- Ventas futuras a partir de datos históricos (REGRESSION).
- Probabilidad de churn de un cliente (CLASSIFICATION).
- Demanda de productos por fecha usando series temporales (ARIMA_PLUS).
- Segmentación de usuarios para marketing (KMEANS).
3. Flujo básico para predecir datos
Supongamos que quieres predecir el número de compras diarias de tu e-commerce.
3.1. Preparar los datos
BigQuery ML requiere que los datos estén en formato tabular:
SELECT
DATE(event_timestamp) AS day,
COUNTIF(event_name='purchase') AS purchases,
COUNT(DISTINCT user_pseudo_id) AS unique_users,
SUM(CAST(event_params.value.int_value AS INT64)) AS revenue
FROM
`proyecto.dataset.events_*`,
UNNEST(event_params) AS event_params
WHERE
event_name IN ('purchase', 'session_start')
GROUP BY
day
ORDER BY
day;
3.2. Crear un modelo de regresión
CREATE OR REPLACE MODEL `proyecto.dataset.model_purchases`
OPTIONS(model_type='linear_reg', input_label_cols=['purchases']) AS
SELECT
unique_users,
revenue,
purchases
FROM
`proyecto.dataset.daily_metrics`;
Qué hace este query:
- model_type=’linear_reg’ → modelo de regresión lineal.
- input_label_cols=[‘purchases’] → columna que queremos predecir.
- Los features son unique_users y revenue.
3.4 Hacer predicciones
SELECT
*
FROM
ML.PREDICT(MODEL `proyecto.dataset.model_purchases`,
(SELECT
unique_users,
revenue
FROM
`proyecto.dataset.daily_metrics`
WHERE
day = DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY)
)
);
- Con ML.PREDICT puedes predecir valores futuros.
- En este ejemplo, estimamos compras para mañana usando usuarios y revenue proyectados.
4. Buenas prácticas
- Normaliza los datos si hay features con escalas muy distintas.
- Reentrena el modelo periódicamente si los datos cambian rápido.
- Evalúa la precisión antes de usar predicciones para decisiones críticas.
- Considera modelos más avanzados como ARIMA_PLUS para series temporales con estacionalidad.
5. Integración con dashboards
Una vez que tu modelo esté entrenado y generando predicciones:
- Puedes crear una vista en BigQuery con los resultados.
- Conectar la vista a Looker Studio, Tableau o Power BI.
- Mostrar predicciones de ventas, tráfico o compras en tiempo real para tu equipo.
Conclusión
BigQuery ML permite que los analistas y equipos de negocio hagan machine learning directamente sobre sus datos en la nube, sin exportaciones ni infraestructura adicional. Con unos pocos comandos SQL puedes:
- Entrenar modelos.
- Evaluar su desempeño.
- Generar predicciones para tomar decisiones basadas en datos.