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
los hiperparámetros, el modelo muestra una mejora del rendimiento de aproximadamente el 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 elNUM_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
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
- BigQuery se habilita automáticamente en proyectos nuevos.
Para activar BigQuery en un proyecto existente, ve a
Enable the BigQuery API.
Paso uno: Crea tu conjunto de datos de entrenamiento
Crea un conjunto de datos de BigQuery para almacenar tu modelo de AA:
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel Explorador, haz clic en el nombre de tu proyecto.
Haz clic en
Ver acciones > Crear conjunto de datos.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.
Paso dos: Crea la tabla de entrada de entrenamiento
En este paso, materializará la tabla de entrada de entrenamiento con 100,000 filas.
Visualiza el esquema de la tabla de origen
tlc_yellow_trips_2018
.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 GoogleSQL se usa para crear el modelo con el 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:
En la consola de Google Cloud, haz clic en el botón Redactar consulta nueva.
Ingresa la consulta de GoogleSQL anterior en el área de texto del Editor de consultas.
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:
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. Para obtener más información acerca de la diferencia entre los objetivos
ML.TRIAL_INFO
y las métricas de evaluación ML.EVALUATE
, consulta
Funciones de entrega de modelos.
También puede proporcionar datos propios para evaluar una prueba específica. Para obtener más información, consulta Funciones de entrega de modelos.
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.
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))
Para obtener más detalles sobre cómo usar las funciones de entrega de modelos, consulta Funciones de entrega de modelos.
Limpia
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:
Si es necesario, abre la página de BigQuery en la consola de Google Cloud.
En el panel de navegación, haz clic en el conjunto de datos bqml_tutorial que creaste.
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.
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:
- En la consola de Google Cloud, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
Próximos pasos
- Para obtener más información sobre el aprendizaje automático, consulta el Curso intensivo de aprendizaje automático.
- Para obtener una descripción general de BigQuery ML, consulta Introducción a BigQuery ML.
- Para obtener más información sobre la consola de Google Cloud, consulta Usa la consola de Google Cloud.