¿Qué es BigQuery ML?

BigQuery ML (BQML) es una extensión de Google BigQuery que permite a los usuarios crear y ejecutar modelos de machine learning directamente dentro de BigQuery utilizando SQL. Esto elimina la necesidad de mover datos a otras plataformas para el análisis y modelado, facilitando un flujo de trabajo más eficiente y simplificado.

Ventajas de BigQuery ML

  • Integración Directa con BigQuery: No es necesario exportar datos a otras herramientas de machine learning.
  • Uso de SQL: Permite a los analistas de datos y científicos de datos utilizar SQL, un lenguaje que ya conocen, para crear y evaluar modelos de machine learning.
  • Escalabilidad: Aprovecha la infraestructura de BigQuery para manejar grandes volúmenes de datos.
  • Rapidez: Reduce el tiempo necesario para entrenar y evaluar modelos gracias a la infraestructura optimizada de Google Cloud.

Configuración del Entorno

Antes de comenzar a usar BigQuery ML, asegúrate de tener configurado tu entorno de BigQuery. Aquí hay una guía rápida:

  1. Crear un Proyecto en Google Cloud:

  2. Habilitar la API de BigQuery:

    • En la consola de Google Cloud, navega a "API y Servicios".
    • Busca "BigQuery API" y habilítala.
  3. Configurar Facturación:

    • Asegúrate de que tu proyecto tenga una cuenta de facturación configurada.
  4. Acceder a BigQuery:

    • Puedes acceder a BigQuery desde la consola de Google Cloud, la línea de comandos (gcloud), o mediante bibliotecas cliente en varios lenguajes de programación.

Primeros Pasos con BigQuery ML

Crear un Modelo de Machine Learning

Para crear un modelo de machine learning en BigQuery ML, utilizamos la instrucción CREATE MODEL. Aquí hay un ejemplo básico de cómo crear un modelo de regresión lineal:

CREATE OR REPLACE MODEL `my_dataset.my_model`
OPTIONS(model_type='linear_reg') AS
SELECT
  feature1,
  feature2,
  target
FROM
  `my_dataset.my_table`;

Explicación del Código

  • CREATE OR REPLACE MODEL: Crea un nuevo modelo o reemplaza uno existente.
  • my_dataset.my_model: Especifica el nombre del modelo y el dataset donde se almacenará.
  • OPTIONS(model_type='linear_reg'): Define el tipo de modelo, en este caso, una regresión lineal.
  • SELECT feature1, feature2, target FROM my_dataset.my_table: Selecciona las características y la variable objetivo de la tabla de datos.

Entrenamiento del Modelo

El modelo se entrena automáticamente cuando se ejecuta la instrucción CREATE MODEL. BigQuery ML divide los datos en conjuntos de entrenamiento y prueba, y ajusta el modelo en consecuencia.

Evaluación del Modelo

Después de crear y entrenar el modelo, es importante evaluarlo para entender su rendimiento. Utilizamos la instrucción ML.EVALUATE para esto:

SELECT
  *
FROM
  ML.EVALUATE(MODEL `my_dataset.my_model`, (
    SELECT
      feature1,
      feature2,
      target
    FROM
      `my_dataset.my_table`
  ));

Explicación del Código

  • ML.EVALUATE: Función que evalúa el modelo.
  • MODEL my_dataset.my_model: Especifica el modelo a evaluar.
  • SELECT feature1, feature2, target FROM my_dataset.my_table: Proporciona los datos de prueba para la evaluación.

Predicción con el Modelo

Una vez que el modelo ha sido evaluado, podemos usarlo para hacer predicciones con la instrucción ML.PREDICT:

SELECT
  *
FROM
  ML.PREDICT(MODEL `my_dataset.my_model`, (
    SELECT
      feature1,
      feature2
    FROM
      `my_dataset.new_data`
  ));

Explicación del Código

  • ML.PREDICT: Función que realiza predicciones utilizando el modelo.
  • MODEL my_dataset.my_model: Especifica el modelo a utilizar para las predicciones.
  • SELECT feature1, feature2 FROM my_dataset.new_data: Proporciona los datos para los cuales se harán las predicciones.

Ejercicio Práctico

Ejercicio 1: Crear y Evaluar un Modelo de Regresión Lineal

  1. Crear el Modelo:
    • Usa los datos de la tabla my_dataset.sales_data para crear un modelo de regresión lineal que prediga las ventas (sales) basándose en las características advertising y price.
CREATE OR REPLACE MODEL `my_dataset.sales_model`
OPTIONS(model_type='linear_reg') AS
SELECT
  advertising,
  price,
  sales
FROM
  `my_dataset.sales_data`;
  1. Evaluar el Modelo:
    • Evalúa el modelo utilizando los mismos datos.
SELECT
  *
FROM
  ML.EVALUATE(MODEL `my_dataset.sales_model`, (
    SELECT
      advertising,
      price,
      sales
    FROM
      `my_dataset.sales_data`
  ));

Solución del Ejercicio

  • Crear el Modelo: El código proporcionado crea un modelo de regresión lineal utilizando las características advertising y price para predecir sales.
  • Evaluar el Modelo: El código de evaluación proporciona métricas como el error cuadrático medio (RMSE) y el coeficiente de determinación (R²) para evaluar el rendimiento del modelo.

Conclusión

En esta lección, hemos introducido BigQuery ML y cómo se puede utilizar para crear, entrenar, evaluar y predecir modelos de machine learning directamente dentro de BigQuery utilizando SQL. Hemos cubierto los conceptos básicos y proporcionado ejemplos prácticos para ayudarte a comenzar. En las próximas lecciones, profundizaremos en la creación y entrenamiento de modelos más complejos y en el uso de características avanzadas de BQML.

Curso de BigQuery

Módulo 1: Introducción a BigQuery

Módulo 2: SQL Básico en BigQuery

Módulo 3: SQL Intermedio en BigQuery

Módulo 4: SQL Avanzado en BigQuery

Módulo 5: Gestión de Datos en BigQuery

Módulo 6: Optimización del Rendimiento de BigQuery

Módulo 7: Seguridad y Cumplimiento en BigQuery

Módulo 8: Integración y Automatización de BigQuery

Módulo 9: Machine Learning en BigQuery (BQML)

Módulo 10: Casos de Uso de BigQuery en el Mundo Real

© Copyright 2024. Todos los derechos reservados