En este tema, aprenderemos cómo evaluar la calidad de los modelos de Machine Learning creados con BigQuery ML (BQML) y cómo utilizar estos modelos para hacer predicciones. La evaluación de modelos es crucial para entender su rendimiento y hacer ajustes necesarios. La predicción, por otro lado, es el objetivo final de la mayoría de los modelos de Machine Learning.

  1. Evaluación de Modelos

1.1. Métricas de Evaluación

BigQuery ML proporciona varias métricas para evaluar la calidad de los modelos. Las métricas varían según el tipo de modelo (regresión, clasificación, etc.). Aquí hay algunas métricas comunes:

  • Regresión:

    • RMSE (Root Mean Squared Error): Mide la diferencia entre los valores predichos y los valores reales.
    • MAE (Mean Absolute Error): Promedio de las diferencias absolutas entre los valores predichos y los valores reales.
    • R² (Coeficiente de Determinación): Indica qué tan bien los valores predichos explican la variabilidad de los valores reales.
  • Clasificación:

    • Accuracy (Precisión): Proporción de predicciones correctas.
    • Precision (Precisión): Proporción de verdaderos positivos entre los positivos predichos.
    • Recall (Sensibilidad): Proporción de verdaderos positivos entre los positivos reales.
    • F1 Score: Media armónica de la precisión y la sensibilidad.

1.2. Evaluación de un Modelo de Regresión

Para evaluar un modelo de regresión, utilizamos la función ML.EVALUATE. Aquí hay un ejemplo práctico:

-- Evaluar un modelo de regresión
SELECT
  *
FROM
  ML.EVALUATE(MODEL `my_dataset.my_regression_model`, (
    SELECT
      feature1,
      feature2,
      target
    FROM
      `my_dataset.my_table`
  ));

1.3. Evaluación de un Modelo de Clasificación

Para evaluar un modelo de clasificación, también utilizamos la función ML.EVALUATE. Aquí hay un ejemplo:

-- Evaluar un modelo de clasificación
SELECT
  *
FROM
  ML.EVALUATE(MODEL `my_dataset.my_classification_model`, (
    SELECT
      feature1,
      feature2,
      label
    FROM
      `my_dataset.my_table`
  ));

  1. Predicción con Modelos

2.1. Predicción con un Modelo de Regresión

Para hacer predicciones con un modelo de regresión, utilizamos la función ML.PREDICT. Aquí hay un ejemplo:

-- Hacer predicciones con un modelo de regresión
SELECT
  *
FROM
  ML.PREDICT(MODEL `my_dataset.my_regression_model`, (
    SELECT
      feature1,
      feature2
    FROM
      `my_dataset.new_data`
  ));

2.2. Predicción con un Modelo de Clasificación

Para hacer predicciones con un modelo de clasificación, también utilizamos la función ML.PREDICT. Aquí hay un ejemplo:

-- Hacer predicciones con un modelo de clasificación
SELECT
  *
FROM
  ML.PREDICT(MODEL `my_dataset.my_classification_model`, (
    SELECT
      feature1,
      feature2
    FROM
      `my_dataset.new_data`
  ));

  1. Ejercicios Prácticos

Ejercicio 1: Evaluar un Modelo de Regresión

  1. Crea un modelo de regresión utilizando un conjunto de datos de tu elección.
  2. Evalúa el modelo utilizando la función ML.EVALUATE.
  3. Interpreta las métricas de evaluación obtenidas.

Ejercicio 2: Hacer Predicciones con un Modelo de Clasificación

  1. Crea un modelo de clasificación utilizando un conjunto de datos de tu elección.
  2. Utiliza la función ML.PREDICT para hacer predicciones con un nuevo conjunto de datos.
  3. Analiza las predicciones obtenidas.

Soluciones

Solución al Ejercicio 1

-- Crear un modelo de regresión
CREATE OR REPLACE MODEL `my_dataset.my_regression_model`
OPTIONS(model_type='linear_reg') AS
SELECT
  feature1,
  feature2,
  target
FROM
  `my_dataset.my_table`;

-- Evaluar el modelo de regresión
SELECT
  *
FROM
  ML.EVALUATE(MODEL `my_dataset.my_regression_model`, (
    SELECT
      feature1,
      feature2,
      target
    FROM
      `my_dataset.my_table`
  ));

Solución al Ejercicio 2

-- Crear un modelo de clasificación
CREATE OR REPLACE MODEL `my_dataset.my_classification_model`
OPTIONS(model_type='logistic_reg') AS
SELECT
  feature1,
  feature2,
  label
FROM
  `my_dataset.my_table`;

-- Hacer predicciones con el modelo de clasificación
SELECT
  *
FROM
  ML.PREDICT(MODEL `my_dataset.my_classification_model`, (
    SELECT
      feature1,
      feature2
    FROM
      `my_dataset.new_data`
  ));

Conclusión

En esta sección, hemos aprendido cómo evaluar la calidad de los modelos de Machine Learning en BigQuery ML utilizando diversas métricas de evaluación. También hemos visto cómo hacer predicciones con estos modelos. La evaluación y predicción son pasos cruciales en el ciclo de vida de un modelo de Machine Learning, y dominar estas técnicas te permitirá construir modelos más precisos y útiles. En el próximo tema, exploraremos características avanzadas de BQML para llevar tus habilidades al siguiente nivel.

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