Neste tutorial, você vai aprender a usar a
função AI.FORECAST
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.
Neste tutorial, usamos dados da tabela pública
bigquery-public-data.san_francisco_bikeshare.bikeshare_trips
.
Objetivos
Este tutorial mostra como usar a função AI.FORECAST com o modelo TimesFM integrado para prever viagens aluguel de bicicletas. As duas primeiras seções mostram como prever e visualizar resultados para uma única série temporal. A terceira seção mostra como fazer previsões para várias série temporal.
Custos
Neste tutorial, usamos componentes faturáveis do Google Cloud, incluindo:
- 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
- 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.
-
Make sure 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.
-
Make sure that billing is enabled for your Google Cloud project.
- O BigQuery é ativado automaticamente em novos projetos.
Para ativar o BigQuery em um projeto preexistente,
Enable the BigQuery API.
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 bicicleta compartilhada 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 console Google Cloud , acesse a página BigQuery.
No Editor de consultas, cole a consulta a seguir 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 com a saída da função AI.FORECAST
e um subconjunto dos dados de entrada da função para comparar os dois.
Siga estas etapas para criar um gráfico da saída da função:
No console Google Cloud , acesse a página BigQuery.
No Editor de consultas, cole a consulta a seguir e clique em Executar:
WITH historical AS ( 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) ORDER BY TIMESTAMP_TRUNC(start_date, HOUR) ) SELECT * FROM ( (SELECT trip_hour as date, num_trips AS historical_value, NULL as forecast_value, 'historical' as type, NULL as prediction_interval_low, NULL as prediction_interval_upper_bound FROM historical ORDER BY historical.trip_hour DESC LIMIT 400) UNION ALL (SELECT forecast_timestamp AS date, NULL as historical_value, forecast_value as forecast_value, 'forecast' as type, prediction_interval_lower_bound, prediction_interval_upper_bound FROM AI.FORECAST( ( SELECT * FROM historical ), horizon => 720, confidence_level => 0.99, timestamp_col => 'trip_hour', data_col => 'num_trips'))) ORDER BY date asc;
Quando a consulta terminar de ser executada, clique na guia Gráfico no painel Resultados da consulta. O gráfico resultante será semelhante a este:
É possível notar que os dados de entrada e os previstos mostram um uso semelhante de aluguel de bicicletas. Além disso, 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 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 console Google Cloud , acesse a página BigQuery.
No Editor de consultas, cole a consulta a seguir 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... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | ... | ... | ... | ... | ... | ... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
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.
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 uma visão geral do BigQuery ML, consulte Introdução à IA e ao ML no BigQuery.