Ce tutoriel vous explique comment utiliser la
AI.FORECAST fonction
avec le modèle univarié
TimesFM intégré de BigQuery ML pour prévoir la valeur future
d'une colonne donnée, en fonction de sa valeur historique.
Ce tutoriel utilise les données de la table publique
bigquery-public-data.san_francisco_bikeshare.bikeshare_trips.
Objectifs
Ce tutoriel vous explique comment utiliser la fonction AI.FORECAST avec le modèle TimesFM intégré pour prévoir les trajets à vélo en libre-service. Les deux premières sections expliquent comment prévoir et visualiser les résultats pour une seule série temporelle. La troisième section explique comment effectuer des prévisions pour plusieurs séries temporelles.
Coûts
Ce tutoriel fait appel à des composants payants de Google Cloud, y compris les suivants :
- BigQuery
- BigQuery ML
Pour plus d'informations sur les coûts de BigQuery, consultez la page Tarifs de BigQuery.
Pour en savoir plus sur les coûts associés à BigQuery ML, consultez la page Tarifs de BigQuery ML.
Avant de commencer
- Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
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.
- BigQuery est automatiquement activé dans les nouveaux projets.
Pour activer BigQuery dans un projet préexistant,
Activez l'API BigQuery.
Rôles requis pour activer les API
Pour activer les API, vous avez besoin de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.
Prévoir une seule série temporelle de trajets à vélo en libre-service
Prévoyez les valeurs futures des séries temporelles à l'aide de la fonction AI.FORECAST.
La requête suivante prévoit le nombre de trajets à vélo en libre-service par abonné et par heure pour le mois suivant (environ 720 heures), en fonction des données historiques des quatre mois précédents. L'argument confidence_level indique que la requête génère un intervalle de prédiction avec un niveau de confiance de 95 %.
Pour prévoir des données avec le modèle TimesFM, procédez comme suit :
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, collez la requête suivante, puis cliquez sur Exécuter :
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');
Les résultats ressemblent à ce qui suit :
+-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | 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... | | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | ... | ... | ... | ... | ... | | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
Comparer les données prévues aux données d'entrée
Représentez graphiquement la sortie de la fonction AI.FORECAST à côté d'un sous-ensemble des données d'entrée de la fonction pour voir comment elles se comparent.
Pour représenter graphiquement la sortie de la fonction, procédez comme suit :
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, collez la requête suivante, puis cliquez sur Exécuter :
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);
Une fois la requête exécutée, cliquez sur l'onglet Visualisation dans le volet Résultats de la requête. Pour Type de visualisation, sélectionnez Courbe. Pour Dimension, sélectionnez
time_series_timestamp. Pour Mesures, sélectionneztime_series_data,prediction_interval_lower_boundetprediction_interval_upper_bound. Le graphique obtenu ressemble à ceci :
Vous pouvez constater que les données d'entrée et les données prévues indiquent une utilisation similaire des vélos en libre-service. Vous pouvez également constater que les limites inférieure et supérieure de l'intervalle de prédiction augmentent à mesure que les points temporels prévus s'éloignent dans le futur.
Prévoir plusieurs séries temporelles de trajets à vélo en libre-service
La requête suivante prévoit le nombre de trajets à vélo en libre-service par type d'abonné et par heure pour le mois suivant (environ 720 heures), en fonction des données historiques des quatre mois précédents. L'argument confidence_level indique que la requête génère un intervalle de prédiction avec un niveau de confiance de 95 %.
Pour prévoir des données avec le modèle TimesFM, procédez comme suit :
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, collez la requête suivante, puis cliquez sur Exécuter :
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']);
Les résultats ressemblent à ce qui suit :
+---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | 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... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | ... | ... | ... | ... | ... | ... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
Libérer de l'espace
Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez chaque ressource individuellement.
Supprimer votre projet
Pour supprimer le projet :
- Dans la Google Cloud console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.
Étape suivante
- Pour obtenir plus d'informations sur BigQuery ML, consultez la page Présentation de l'IA et du ML dans BigQuery.