Este tutorial ensina como usar a
AI.FORECAST função
com o
modelo univariado TimesFM integrado do BigQuery ML para prever o valor futuro
de uma determinada coluna com base no valor histórico dela.
Este tutorial usa dados da tabela pública
bigquery-public-data.san_francisco_bikeshare.bikeshare_trips.
Objetivos
Este tutorial orienta você no uso da função AI.FORECAST com o modelo TimesFM integrado para prever viagens de aluguel de bicicletas. As duas primeiras seções abordam como prever e visualizar resultados para uma única série temporal. A terceira seção aborda como prever várias série temporal.
Custos
Este tutorial usa componentes faturáveis do Google Cloud, incluindo o seguinte:
- BigQuery
- BigQuery ML
Para mais informações sobre os custos do BigQuery, consulte a página de preços.
Para mais informações sobre os custos do BigQuery ML, consulte os preços do BigQuery ML.
Antes de começar
- Faça login nasua Google Cloud conta. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- O BigQuery é ativado automaticamente em novos projetos.
Para ativar o BigQuery em um projeto preexistente,
Ative a API BigQuery.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.
Prever uma única série temporal de viagens de aluguel de bicicletas
Preveja valores futuros de série temporal usando a função AI.FORECAST.
A consulta a seguir prevê o número de viagens de aluguel de bicicletas de assinantes por hora para o próximo mês (aproximadamente 720 horas), com base nos quatro meses anteriores de dados históricos. O argumento confidence_level indica que a consulta gera um intervalo de previsão com um nível de confiança de 95%.
Siga estas etapas para prever dados com o modelo TimesFM:
No Google Cloud console, acesse a página BigQuery.
No editor de consultas, cole a consulta abaixo e clique em Executar:
SELECT * FROM AI.FORECAST( ( SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, COUNT(*) as num_trips FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips` WHERE subscriber_type = 'Subscriber' AND start_date >= TIMESTAMP('2018-01-01') GROUP BY TIMESTAMP_TRUNC(start_date, HOUR) ), horizon => 720, confidence_level => 0.95, timestamp_col => 'trip_hour', data_col => 'num_trips');
Os resultados são semelhantes aos seguintes:
+-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | forecast_timestamp | forecast_value | confidence_level | prediction_interval_lower_bound | prediction_interval_upper_bound | ai_forecast_status | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | 2018-05-01 00:00:00 UTC | 26.3045959... | 0.95 | 21.7088378... | 30.9003540... | | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | 2018-05-01 01:00:00 UTC | 34.0890502... | 0.95 | 2.47682913... | 65.7012714... | | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | 2018-05-01 02:00:00 UTC | 24.2154693... | 0.95 | 2.87621605... | 45.5547226... | | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | ... | ... | ... | ... | ... | | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
Comparar os dados previstos com os dados de entrada
Crie um gráfico da saída da função AI.FORECAST ao lado de um subconjunto dos dados de entrada da função para ver como eles se comparam.
Siga estas etapas para criar um gráfico da saída da função:
No Google Cloud console, acesse a página BigQuery.
No editor de consultas, cole a consulta abaixo e clique em Executar:
SELECT * FROM AI.FORECAST( ( SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, COUNT(*) as num_trips FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips` WHERE subscriber_type = 'Subscriber' AND start_date >= TIMESTAMP('2018-01-01') GROUP BY TIMESTAMP_TRUNC(start_date, HOUR) ), horizon => 720, confidence_level => 0.95, timestamp_col => 'trip_hour', data_col => 'num_trips', output_historical_time_series => true);
Quando a consulta terminar de ser executada, clique na guia Visualização no painel Resultados da consulta. Em Tipo de visualização, selecione Linha. Em Dimensão, selecione
time_series_timestamp. Em Métricas, selecionetime_series_data,prediction_interval_lower_boundeprediction_interval_upper_bound. O gráfico resultante será semelhante a este:
É possível notar que os dados de entrada e os dados previstos mostram um uso semelhante de aluguel de bicicletas. Também é possível notar que os limites inferior e superior do intervalo de previsão aumentam à medida que os pontos de tempo previstos avançam no futuro.
Prever várias série temporal de viagens de aluguel de bicicletas
A consulta a seguir prevê o número de viagens de aluguel de bicicletas por tipo de assinante e por hora para o próximo mês (aproximadamente 720 horas), com base nos quatro meses anteriores de dados históricos. O argumento confidence_level indica que a consulta gera um intervalo de previsão com um nível de confiança de 95%.
Siga estas etapas para prever dados com o modelo TimesFM:
No Google Cloud console, acesse a página BigQuery.
No editor de consultas, cole a consulta abaixo e clique em Executar:
SELECT * FROM AI.FORECAST( ( SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, subscriber_type, COUNT(*) as num_trips FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips` WHERE start_date >= TIMESTAMP('2018-01-01') GROUP BY TIMESTAMP_TRUNC(start_date, HOUR), subscriber_type ), horizon => 720, confidence_level => 0.95, timestamp_col => 'trip_hour', data_col => 'num_trips', id_cols => ['subscriber_type']);
Os resultados são semelhantes aos seguintes:
+---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | subscriber_type | forecast_timestamp | forecast_value | confidence_level | prediction_interval_lower_bound | prediction_interval_upper_bound | ai_forecast_status | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | Subscriber | 2018-05-01 00:00:00 UTC | 26.3045959... | 0.95 | 21.7088378... | 30.9003540... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | Subscriber | 2018-05-01 01:00:00 UTC | 34.0890502... | 0.95 | 2.47682913... | 65.7012714... | | +---------------------+-------------------+------------------+-------------------------+---------------------------------+---------------------------------+--------------------+ | Subscriber | 2018-05-01 02:00:00 UTC | 24.2154693... | 0.95 | 2.87621605... | 45.5547226... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | ... | ... | ... | ... | ... | ... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
Liberar espaço
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.
Excluir o projeto
Para excluir o projeto:
- No Google Cloud console, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- Na caixa de diálogo, digite o ID do projeto e clique em Desligar para excluir o projeto.
A seguir
- Para uma visão geral sobre o BigQuery ML, consulte Introdução à IA e ao ML no BigQuery.