Mejorar el rendimiento del modelo con el ajuste de hiperparámetros


En este instructivo, se muestra cómo usar el ajuste de hiperparámetros en BigQuery ML mediante la especificación de la opción de entrenamiento NUM_TRIALS para habilitar un conjunto de pruebas de entrenamiento de modelos.

En este instructivo, usarás la tabla de muestra tlc_yellow_trips_2018 para crear un modelo que prediga propina de un viaje en taxi. Con el ajuste de hiperparámetros, el modelo muestra una mejora de rendimiento de alrededor del 40% en el objetivo de ajuste de hiperparámetros R2_SCORE.

Objetivos

En este instructivo usarás:

  • BigQuery ML para crear un modelo de regresión lineal usando la sentencia CREATE MODEL con el NUM_TRIALS configurado como 20
  • La función ML.TRIAL_INFO para verificar la descripción general de las 20 pruebas
  • La función ML.EVALUATE para evaluar el modelo de AA
  • La función ML.PREDICT para hacer predicciones con el modelo de AA

Costos

En este instructivo, se usan los siguientes componentes facturables de Google Cloud:

  • BigQuery
  • BigQuery ML

Para obtener más información sobre los costos de BigQuery, consulta la página de precios de BigQuery.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  6. BigQuery se habilita de forma automática en proyectos nuevos. Para activar BigQuery en un proyecto existente, ve a

    Habilita la API de BigQuery.

    Habilita la API

Paso uno: Crea tu conjunto de datos de entrenamiento

Crea un conjunto de datos de BigQuery para almacenar tu modelo de AA:

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a la página de BigQuery

  2. En el panel Explorador, haz clic en el nombre de tu proyecto.

  3. Haz clic en Ver acciones > Crear conjunto de datos.

    Crea un conjunto de datos.

  4. En la página Crear conjunto de datos, haz lo siguiente:

    • En ID del conjunto de datos, ingresa bqml_tutorial.

    • En Tipo de ubicación, selecciona Multirregión y, luego, EE.UU. (varias regiones en Estados Unidos).

      Los conjuntos de datos públicos se almacenan en la multirregión US. Para que sea más simple, almacena tu conjunto de datos en la misma ubicación.

    • Deja la configuración predeterminada restante como está y haz clic en Crear conjunto de datos.

      Página Crear un conjunto de datos

Paso dos: Crea la tabla de entrada de entrenamiento

En este paso, materializará la tabla de entrada de entrenamiento con 100,000 filas.

  1. Visualiza el esquema de la tabla de origen tlc_yellow_trips_2018.

    Esquema de la tabla.

  2. Crea la tabla de datos de entrada de entrenamiento.

CREATE TABLE `bqml_tutorial.taxi_tip_input` AS
SELECT
  * EXCEPT(tip_amount), tip_amount AS label
FROM
  `bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2018`
WHERE
  tip_amount IS NOT NULL
LIMIT 100000

Paso tres: crea tu modelo

A continuación, crea un modelo de regresión lineal con ajuste de hiperparámetros usando la tabla de muestra tlc_yellow_trips_2018 en BigQuery. La siguiente consulta de Google SQL se usa para crear el modelo con ajuste de hiperparámetros.

CREATE MODEL `bqml_tutorial.hp_taxi_tip_model`
OPTIONS
  (MODEL_TYPE='LINEAR_REG',
   NUM_TRIALS=20,
   MAX_PARALLEL_TRIALS=2) AS
SELECT
  *
FROM
  `bqml_tutorial.taxi_tip_input`

Detalles de la consulta

El modelo LINEAR_REG tiene dos hiperparámetros ajustables: l1_reg y l2_reg. La consulta anterior utiliza el espacio de búsqueda predeterminado. También puedes especificar el espacio de búsqueda de manera explícita:

OPTIONS
  (...
    L1_REG=HPARAM_RANGE(0, 20),
    L2_REG=HPARAM_CANDIDATES([0, 0.1, 1, 10]))

Además, estas otras opciones de entrenamiento de ajuste de hiperparámetros también usan sus valores predeterminados:

  • HPARAM_TUNING_ALGORITHM: "VIZIER_DEFAULT"
  • HPARAM_TUNING_OBJECTIVES: ["r2_score"]

MAX_PARALLEL_TRIALS se establece en 2 para acelerar el proceso de ajuste. Con 2 pruebas en ejecución en cualquier momento dado, el ajuste completo debería completarse con alrededor de 10 trabajos de entrenamiento en serie en lugar de 20. Sin embargo, ten en cuenta que las dos pruebas simultáneas no pueden beneficiarse mutuamente de los resultados de entrenamiento que genera cada una.

Ejecuta la consulta CREATE MODEL

A fin de ejecutar la consulta CREATE MODEL para crear y entrenar tu modelo, sigue estos pasos:

  1. En la consola de Google Cloud, haz clic en el botón Redactar consulta nueva.

  2. Ingresa la consulta de GoogleSQL anterior en el área de texto del Editor de consultas.

  3. Haz clic en Ejecutar.

    La consulta toma unos 17 minutos en completarse. Puedes realizar un seguimiento del progreso del ajuste en los detalles de ejecución en Etapas:

    Progreso del ajuste.

Paso cuatro: Obtén información sobre las pruebas

Para ver una descripción general de todas las pruebas, incluidos sus hiperparámetros, objetivos, estado y prueba óptima, puedes usar la función ML.TRIAL_INFO y ver el resultado en la consola de Google Cloud después de ejecutar SQL.

SELECT *
FROM
  ML.TRIAL_INFO(MODEL `bqml_tutorial.hp_taxi_tip_model`)

Puede ejecutar esta consulta en SQL en cuanto se complete una prueba. Si se detiene el ajuste en la mitad, todas las pruebas que ya se hayan completado permanecerán disponibles para su uso.

Paso cinco: Evalúa el modelo

Después de crear el modelo, puedes obtener las métricas de evaluación de todas las pruebas usando la función ML.EVALUATE o mediante la consola de Google Cloud.

Ejecuta ML.EVALUATE

SELECT *
FROM
  ML.EVALUATE(MODEL `bqml_tutorial.hp_taxi_tip_model`)

Este SQL recupera las métricas de evaluación de todas las pruebas calculadas a partir de los datos de PRUEBA. Consulta la sección División de datos para ver la diferencia entre los objetivos de ML.TRIAL_INFO y las métricas de evaluación de ML.EVALUATE.

También puede proporcionar datos propios para evaluar una prueba específica. Consulta ML.EVALUATE para obtener más información.

Revisa las métricas de evaluación en la consola de Google Cloud

También puedes seleccionar la pestaña EVALUATION para verificar las métricas de evaluación.

Ajuste de la evaluación.

Paso seis: Usa el modelo para predecir la propina de un viaje en taxi

Ahora que ya evaluaste el modelo, el siguiente paso es usarlo para predecir la propina de un viaje en taxi.

Esta es la consulta usada para predecir la sugerencia:

SELECT
  *
FROM
  ML.PREDICT(MODEL `bqml_tutorial.hp_taxi_tip_model`,
    (
    SELECT
      *
    FROM
      `bqml_tutorial.taxi_tip_input`
    LIMIT 10))

Detalles de la consulta

La declaración SELECT superior recupera todas las columnas, incluida la columna predicted_label. Esta columna se genera mediante la función ML.PREDICT. Cuando usas la función ML.PREDICT, el nombre de la columna de resultado del modelo es predicted_label_column_name.

De forma predeterminada, la predicción se realiza en función de la prueba óptima. Puedes seleccionar otra prueba si especificas el parámetro trial_id.

SELECT
  *
FROM
  ML.PREDICT(MODEL `bqml_tutorial.hp_taxi_tip_model`,
    (
    SELECT
      *
    FROM
      `bqml_tutorial.taxi_tip_input`
    LIMIT
      10),
    STRUCT(3 AS trial_id))

Consulta ML.PREDICT para obtener más detalles sobre cómo usar las funciones de entrega de modelos.

Realiza una limpieza

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

  • Puedes borrar el proyecto que creaste.
  • De lo contrario, puedes mantener el proyecto y borrar el conjunto de datos.

Borra tu conjunto de datos

Borrar tu proyecto quita todos sus conjuntos de datos y tablas. Si prefieres volver a usar el proyecto, puedes borrar el conjunto de datos que creaste en este instructivo:

  1. Si es necesario, abre la página de BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  2. En el panel de navegación, haz clic en el conjunto de datos bqml_tutorial que creaste.

  3. En el lado derecho de la ventana, haz clic en Borrar conjunto de datos. Esta acción borra el conjunto de datos, la tabla y todos los datos.

  4. En el cuadro de diálogo Borrar conjunto de datos, ingresa el nombre del conjunto de datos (bqml_tutorial) y, luego, haz clic en Borrar para confirmar el comando de borrado.

Borra tu proyecto

Para borrar el proyecto, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Próximos pasos