Ce tutoriel explique comment effectuer des prévisions univariées sur une ou plusieurs séries temporelles à l'aide de la fonction AI.FORECAST avec le modèle univarié TimesFM intégré à BigQuery.
Ce tutoriel utilise les données de la table publique bigquery-public-data.san_francisco_bikeshare.bikeshare_trips.
Objectifs
- Effectuez des prévisions univariées et visualisez les résultats pour une seule série temporelle.
- Effectuez des prévisions univariées et visualisez les résultats pour plusieurs séries temporelles.
Coûts
Ce tutoriel utilise des composants facturables de Google Cloud, y compris les suivants :
- BigQuery
- BigQuery ML
Pour en savoir plus, consultez les pages Tarifs de BigQuery et Tarifs de BigQuery ML.
Avant de commencer
- Connectez-vous à votre compte Google Cloud . 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.
-
Activez l'API BigQuery si elle ne l'est pas déjà.
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.Pour les nouveaux projets, l'API BigQuery est automatiquement activée.
Rôles requis
Pour obtenir les autorisations nécessaires pour effectuer les tâches de ce tutoriel, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Créez l'ensemble de données :
Éditeur de données BigQuery (
roles/bigquery.dataEditor) -
Créez le modèle :
- Éditeur de données BigQuery (
roles/bigquery.dataEditor) - Utilisateur de job BigQuery (
roles/bigquery.jobUser)
- Éditeur de données BigQuery (
-
Exécutez l'inférence :
- Éditeur de données BigQuery (
roles/bigquery.dataEditor) - Utilisateur de job BigQuery (
roles/bigquery.jobUser)
- Éditeur de données BigQuery (
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour effectuer les tâches décrites dans ce tutoriel. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour effectuer les tâches décrites dans ce tutoriel :
-
Créez l'ensemble de données :
bigquery.datasets.create -
Créez le modèle :
-
bigquery.jobs.create -
bigquery.models.create -
bigquery.models.getData -
bigquery.models.updateData
-
-
Exécutez l'inférence :
-
bigquery.models.getData -
bigquery.jobs.create
-
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour plus d'informations sur les rôles et les autorisations IAM dans BigQuery, consultez la page Présentation d'IAM.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 en vélos en libre-service des abonnés par heure pour le mois prochain (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 :
Dans la console Google Cloud , 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évisionnelles aux données d'entrée
Représentez 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 console Google Cloud , 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évisionnelles montrent 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 prochain (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 :
Dans la console Google Cloud , 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... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | ... | ... | ... | ... | ... | ... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
Effectuer un nettoyage
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
- Dans la console Google Cloud , 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 sur Arrêter pour supprimer le projet.
Étapes suivantes
- Pour obtenir plus d'informations sur BigQuery ML, consultez la page Présentation de l'IA et du ML dans BigQuery.
- Découvrez comment prévoir des séries temporelles uniques avec un modèle multivarié TimesFM.
- Découvrez comment prévoir plusieurs séries temporelles avec un modèle multivarié TimesFM.