Neste tutorial, mostramos como usar o ajuste de hiperparâmetros no BigQuery ML especificando a opção de treinamento NUM_TRIALS
para ativar um conjunto de testes de treinamento de modelo.
Neste tutorial, você usa a tabela de amostra tlc_yellow_trips_2018
para criar um modelo que prevê a dicas de viagem de táxi. Com o ajuste de hiperparâmetro, o modelo mostra uma melhoria de desempenho de cerca de 40% no objetivo de ajuste de hiperparâmetros R2_SCORE
.
Objetivos
Neste tutorial, você usará:
- o BigQuery ML para criar um modelo de regressão linear usando a instrução
CREATE MODEL
comNUM_TRIALS
definido como 20; - a função
ML.TRIAL_INFO
para verificar a visão geral de todos os 20 testes; - a função
ML.EVALUATE
para avaliar o modelo de ML; - a função
ML.PREDICT
para fazer previsões usando o modelo de ML.
Custos
Neste tutorial, há componentes faturáveis do Google Cloud, entre eles:
- BigQuery
- BigQuery ML
Para mais informações sobre os custos do BigQuery, consulte a página de preços.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
- O BigQuery é ativado automaticamente em novos projetos.
Para ativar o BigQuery em um projeto preexistente, acesse
Enable the BigQuery API.
Etapa 1: criar conjunto de dados de treinamento
Crie um conjunto de dados do BigQuery para armazenar o modelo de ML:
No console do Google Cloud, acesse a página do BigQuery.
No painel Explorer, clique no nome do seu projeto.
Clique em
Conferir ações > Criar conjunto de dados.Na página Criar conjunto de dados, faça o seguinte:
Para o código do conjunto de dados, insira
bqml_tutorial
.Em Tipo de local, selecione Multirregião e EUA (várias regiões nos Estados Unidos).
Os conjuntos de dados públicos são armazenados na multirregião
US
. Para simplificar, armazene seus conjuntos de dados no mesmo local.Mantenha as configurações padrão restantes e clique em Criar conjunto de dados.
Etapa 2: criar a tabela de entrada de treinamento
Nesta etapa, você vai materializar a tabela de entrada de treinamento com 100 mil linhas.
Veja o esquema da tabela de origem
tlc_yellow_trips_2018
.Crie a tabela de dados de entrada de treinamento.
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
Etapa 3: criar o modelo
Em seguida, crie um modelo de regressão linear com ajuste de hiperparâmetro usando a tabela de amostra tlc_yellow_trips_2018
no BigQuery. A consulta
do GoogleSQL a seguir é usada para criar o modelo com 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`
Detalhes da consulta
O modelo LINEAR_REG
tem dois hiperparâmetros ajustáveis: l1_reg
e l2_reg
.
A consulta acima usa o espaço de pesquisa padrão. Também é possível especificar o espaço de pesquisa explicitamente:
OPTIONS (... L1_REG=HPARAM_RANGE(0, 20), L2_REG=HPARAM_CANDIDATES([0, 0.1, 1, 10]))
Além disso, essas outras opções de treinamento de ajuste de hiperparâmetros também usam os valores padrão:
- HPARAM_TUNING_ALGORITHM:
"VIZIER_DEFAULT"
- HPARAM_TUNING_OBJECTIVES:
["r2_score"]
MAX_PARALLEL_TRIALS
é definido como 2 para acelerar o processo de ajuste. Com 2 testes em execução a qualquer momento, o ajuste inteiro leva cerca de 10 jobs de treinamento em série em vez de 20. No entanto, observe que os dois testes simultâneos não podem se beneficiar dos resultados de treinamento uns dos outros.
Executar a consulta CREATE MODEL
Para executar a consulta CREATE MODEL
para criar e treinar seu modelo:
No console do Google Cloud, clique no botão Escrever nova consulta.
Insira a seguinte consulta do GoogleSQL na área de texto do Editor de consultas.
Clique em Executar.
A consulta leva cerca de 17 minutos para ser concluída. Acompanhe o progresso do ajuste nos detalhes da execução em "Estágios":
Etapa 4: receber informações sobre os testes
Para ter uma visão geral de todos os testes, incluindo hiperparâmetros, objetivos,
status e o teste ideal, use a função
ML.TRIAL_INFO
.
É possível ver os resultados no console do Google Cloud depois de executar
o SQL.
SELECT * FROM ML.TRIAL_INFO(MODEL `bqml_tutorial.hp_taxi_tip_model`)
É possível executar essa consulta SQL assim que um teste for concluído. Se o ajuste for interrompido no meio, todos os testes já concluídos permanecerão disponíveis para uso.
Etapa 5: avaliar o modelo
Depois de criar o modelo, é possível conseguir as métricas de avaliação de todos os testes
usando a função ML.EVALUATE
ou por meio do Console do Google Cloud.
Executar ML.EVALUATE
SELECT * FROM ML.EVALUATE(MODEL `bqml_tutorial.hp_taxi_tip_model`)
Este SQL busca métricas de avaliação para todos os testes calculados a partir dos dados TEST. Para mais informações sobre a diferença entre os objetivos ML.TRIAL_INFO
e as métricas de avaliação ML.EVALUATE
, consulte
Funções de disponibilização de modelos.
Você também pode avaliar um teste específico fornecendo seus próprios dados. Para mais informações, consulte Funções de exibição de modelo.
Verifique as métricas de avaliação no Console do Google Cloud
Também é possível verificar as métricas de avaliação selecionando a guia EVALUATION
.
Etapa 6: usar seu modelo para prever gorjetas de táxi
Agora que você avaliou seu modelo, a próxima etapa é usá-lo para prever a gorjeta de táxi.
A consulta usada para prever a gorjeta é a seguinte:
SELECT * FROM ML.PREDICT(MODEL `bqml_tutorial.hp_taxi_tip_model`, ( SELECT * FROM `bqml_tutorial.taxi_tip_input` LIMIT 10))
Detalhes da consulta
A principal instrução SELECT
recupera todas as colunas, incluindo a predicted_label
. Essa coluna é gerada pela função ML.PREDICT
.
Ao usar a função ML.PREDICT
, o nome da coluna de saída para o modelo é predicted_label_column_name
.
A previsão é feita no teste ideal por padrão. É possível selecionar outro teste especificando o 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 mais detalhes sobre como usar as funções de disponibilização do modelo, consulte Funções de disponibilização do modelo.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
- exclua o projeto que você criou; ou
- Mantenha o projeto e exclua o conjunto de dados.
Excluir o conjunto de dados
A exclusão do seu projeto removerá todos os conjuntos de dados e tabelas no projeto. Caso prefira reutilizá-lo, exclua o conjunto de dados criado neste tutorial:
Se necessário, abra a página do BigQuery no console do Google Cloud.
No painel de navegação, clique no conjunto de dados bqml_tutorial que você criou.
No lado direito da janela, clique em Excluir conjunto de dados. Essa ação exclui o conjunto, a tabela e todos os dados.
Na caixa de diálogo Excluir conjunto de dados, confirme o comando de exclusão digitando o nome do seu conjunto de dados (
bqml_tutorial
) e clique em Excluir.
Excluir o projeto
Para excluir o projeto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
A seguir
- Para saber mais sobre machine learning, consulte o Curso intensivo de machine learning.
- Para uma visão geral do BigQuery ML, consulte Introdução ao BigQuery ML.
- Para saber mais, consulte Como usar o console do Google Cloud.