Prévoir une série temporelle unique à partir de données Google Analytics


Dans ce tutoriel, vous allez apprendre à créer un modèle de série temporelle afin d'effectuer des prévisions de série temporelle unique à l'aide de l'exemple de table google_analytics_sample.ga_sessions.

La table ga_sessions contient des informations concernant une tranche de données de session collectées par Google Analytics 360 et envoyées à BigQuery.

Objectifs

Dans ce tutoriel, vous allez utiliser :

  • l'instruction CREATE MODEL, pour créer un modèle de série temporelle ;
  • la fonction ML.ARIMA_EVALUATE pour évaluer le modèle ;
  • la fonction ML.ARIMA_COEFFICIENTS, pour inspecter les coefficients du modèle ;
  • la fonction ML.FORECAST, pour prévoir le nombre total de visites quotidiennes.
  • la fonction ML.EXPLAIN_FORECAST, pour récupérer divers composants de la série temporelle (par exemple, la saisonnalité et la tendance) pouvant être utilisés pour expliquer les résultats des prévisions ;
  • Looker Studio, pour visualiser les résultats des prévisions

Coûts

Ce tutoriel utilise des composants facturables de Google Cloud, y compris :

  • 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

  1. 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 gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  6. BigQuery est automatiquement activé dans les nouveaux projets. Pour activer BigQuery dans un projet préexistant, accédez à

    Activez l'API BigQuery

    Activer l'API

Étape 1 : Créer un ensemble de données

Vous allez créer un ensemble de données BigQuery pour stocker votre modèle de ML :

  1. Dans la console Google Cloud, accédez à la page "BigQuery".

    Accéder à la page "BigQuery"

  2. Dans le volet Explorateur, cliquez sur le nom de votre projet.

  3. Cliquez sur Afficher les actions > Créer un ensemble de données.

    Créer l'ensemble de données

  4. Sur la page Créer un ensemble de données, procédez comme suit :

    • Dans le champ ID de l'ensemble de données, saisissez bqml_tutorial.

    • Pour Type d'emplacement, sélectionnez Multirégional, puis sélectionnez US (plusieurs régions aux États-Unis).

      Les ensembles de données publics sont stockés dans l'emplacement multirégional US. Par souci de simplicité, stockez votre ensemble de données dans le même emplacement.

    • Conservez les autres paramètres par défaut, puis cliquez sur Créer un ensemble de données.

      Créer une page d'ensemble de données

Étape 2 (facultative) : Visualiser la série temporelle pour lesquelles vous souhaitez effectuer des prévisions

Avant de créer le modèle, il est utile de voir à quoi ressemble votre série temporelle d'entrée. Pour ce faire, utilisez Looker Studio.

Dans la requête GoogleSQL suivante, la clause FROM bigquery-public-data.google_analytics_sample.ga_sessions_* indique que vous interrogez les tables ga_sessions_* de l'ensemble de données google_analytics_sample. Ces tables sont des tables partitionnées.

Dans l'instruction SELECT, la requête analyse la colonne date de la table d'entrée avec le type TIMESTAMP et la renomme parsed_date. La requête utilise la clause SUM(...) et la clause GROUP BY date pour accumuler totals.visits quotidiennement.

#standardSQL
SELECT
  PARSE_TIMESTAMP("%Y%m%d", date) AS parsed_date,
  SUM(totals.visits) AS total_visits
FROM
  `bigquery-public-data.google_analytics_sample.ga_sessions_*`
GROUP BY date

Pour exécuter la requête, procédez comme suit :

  1. Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.

  2. Saisissez la requête GoogleSQL suivante dans la zone de texte Éditeur de requête.

    #standardSQL
    SELECT
     PARSE_TIMESTAMP("%Y%m%d", date) AS parsed_date,
     SUM(totals.visits) AS total_visits
    FROM
     `bigquery-public-data.google_analytics_sample.ga_sessions_*`
    GROUP BY date
    
  3. Cliquez sur Exécuter.

    L'exécution de la requête prend environ sept secondes. Une fois cette requête exécutée, la sortie ressemble à la capture d'écran suivante. Elle montre que cette série temporelle comporte 366 points de données. Cliquez sur le bouton Explorer les données, puis sur Explorer avec Looker Studio. Looker Studio s'ouvre dans un nouvel onglet. Procédez comme suit dans le nouvel onglet.

    Sortie de la requête

    Dans le panneau Chart (Graphique), sélectionnez Time series chart (Graphique de séries temporelles) :

    Time_series_chart

    Dans le panneau Data (Données) situé sous le panneau Chart (Graphique), accédez à la section Metric (Métrique). Ajoutez le champ total_visits (nombre total des visites), puis supprimez la métrique par défaut Record Count (Nombre d'enregistrements). Ce processus est illustré dans la figure suivante.

    Time_series_data_fields

    Une fois ces étapes terminées, le graphique suivant s'affiche. Il montre que la série temporelle d'entrée présente une tendance saisonnière hebdomadaire.

    Result_visualization

Étape 3 : Créer un modèle de série temporelle

Créez ensuite un modèle de série temporelle à l'aide des données Google Analytics 360. La requête GoogleSQL suivante crée un modèle permettant de prévoir le nombre de totals.visits.

La clause CREATE MODEL crée et entraîne un modèle nommé bqml_tutorial.ga_arima_model.

#standardSQL
CREATE OR REPLACE MODEL `bqml_tutorial.ga_arima_model`
OPTIONS
  (model_type = 'ARIMA_PLUS',
   time_series_timestamp_col = 'parsed_date',
   time_series_data_col = 'total_visits',
   auto_arima = TRUE,
   data_frequency = 'AUTO_FREQUENCY',
   decompose_time_series = TRUE
  ) AS
SELECT
  PARSE_TIMESTAMP("%Y%m%d", date) AS parsed_date,
  SUM(totals.visits) AS total_visits
FROM
  `bigquery-public-data.google_analytics_sample.ga_sessions_*`
GROUP BY date

La clause OPTIONS(model_type='ARIMA_PLUS', time_series_timestamp_col='date', ...) indique que vous créez un modèle de série temporelle basé sur ARIMA. Par défaut, auto_arima=TRUE. L'algorithme auto.ARIMA ajuste donc automatiquement les hyperparamètres des modèles ARIMA_PLUS. L'algorithme s'adapte à des dizaines de modèles candidats et choisit le meilleur d'entre eux, qui présente l'AIC (Akaike information criterion) le plus faible. De plus, comme la valeur par défaut est data_frequency='AUTO_FREQUENCY', le processus d'entraînement déduit automatiquement la fréquence des données de la série temporelle d'entrée. Enfin, l'instruction CREATE MODEL utilise la valeur decompose_time_series=TRUE par défaut, et les utilisateurs peuvent mieux comprendre comment les séries temporelles sont prévues en récupérant les différents composants de séries temporelles, tels que les effets des jours fériés et de la saisonnalité.

Exécutez la requête CREATE MODEL pour créer et entraîner votre modèle :

  1. Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.

  2. Saisissez la requête GoogleSQL suivante dans la zone de texte Éditeur de requête.

    #standardSQL
    CREATE OR REPLACE MODEL `bqml_tutorial.ga_arima_model`
    OPTIONS
     (model_type = 'ARIMA_PLUS',
      time_series_timestamp_col = 'parsed_date',
      time_series_data_col = 'total_visits',
      auto_arima = TRUE,
      data_frequency = 'AUTO_FREQUENCY',
      decompose_time_series = TRUE
    ) AS
    SELECT
     PARSE_TIMESTAMP("%Y%m%d", date) AS parsed_date,
     SUM(totals.visits) AS total_visits
    FROM
     `bigquery-public-data.google_analytics_sample.ga_sessions_*`
    GROUP BY date
    
  3. Cliquez sur Exécuter.

    L'exécution de la requête prend environ 43 secondes, puis votre modèle (ga_arima_model) s'affiche dans le panneau de navigation. Étant donné que la requête utilise une instruction CREATE MODEL pour créer un modèle, les résultats de la requête ne sont pas affichés.

Étape 4 : Inspecter les métriques d'évaluation de tous les modèles évalués

Après avoir créé votre modèle, vous pouvez utiliser la fonction ML.ARIMA_EVALUATE pour afficher les métriques d'évaluation de tous les modèles candidats évalués lors du processus de réglage automatique des hyperparamètres.

Dans la requête GoogleSQL suivante, la clause FROM utilise la fonction ML.ARIMA_EVALUATE sur votre modèle bqml_tutorial.ga_arima_model. Par défaut, cette requête renvoie les métriques d'évaluation de tous les modèles candidats.

Pour exécuter la requête ML.ARIMA_EVALUATE, procédez comme suit :

  1. Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.

  2. Saisissez la requête GoogleSQL suivante dans la zone de texte Éditeur de requête.

    #standardSQL
    SELECT
     *
    FROM
     ML.ARIMA_EVALUATE(MODEL `bqml_tutorial.ga_arima_model`)
    
  3. Cliquez sur Exécuter.

  4. L'exécution de la requête prend moins d'une seconde. Lorsque la requête est terminée, cliquez sur l'onglet Results (Résultats) situé sous la zone de texte de la requête. Les résultats doivent ressembler à la capture d'écran suivante :

    Sortie ML.ARIMA_EVALUATE.

    Les résultats incluent les colonnes suivantes :

    • non_seasonal_p
    • non_seasonal_d
    • non_seasonal_q
    • has_drift
    • log_likelihood
    • AIC
    • variance
    • seasonal_periods
    • has_holiday_effect
    • has_spikes_and_dips
    • has_step_changes
    • error_message

    Les quatre colonnes suivantes (non_seasonal_{p,d,q} et has_drift) définissent un modèle ARIMA dans le pipeline d'entraînement. Les trois métriques qui les suivent (log_likelihood, AIC et variance) sont pertinentes pour le processus d'ajustement du modèle ARIMA.

    L'algorithme auto.ARIMA utilise d'abord le test KPSS pour déterminer que la meilleure valeur pour non_seasonal_d est 1. Lorsque la valeur de non_seasonal_d est égale à 1, auto.ARIMA entraîne 42 modèles ARIMA candidats différents en parallèle. Notez que lorsque non_seasonal_d n'est pas égal à 1, auto.ARIMA entraîne 21 modèles candidats différents. Dans cet exemple, les 42 modèles candidats sont valides. Par conséquent, la sortie contient 42 lignes, chaque ligne étant associée à un modèle ARIMA candidat. Notez que pour certaines séries temporelles, certains modèles candidats ne sont pas valides, car ils sont soit non inversibles, soit non stationnaires. Ces modèles non valides sont exclus de la sortie, ce qui signifie qu'elle comporte moins de 42 lignes. Ces modèles candidats sont triés par ordre croissant de l'AIC. Le modèle de la première ligne présente l'AIC le plus bas, et il est considéré comme le meilleur modèle. Ce meilleur modèle est enregistré en tant que modèle final. Il est utilisé lorsque vous appelez ML.EXPLAIN_FORECAST, ML.FORECAST et ML.ARIMA_COEFFICIENTS comme indiqué dans les étapes suivantes.

    La colonne seasonal_periods concerne la tendance saisonnière dans la série temporelle d'entrée. Il n'a rien à voir avec la modélisation ARIMA. Par conséquent, il présente la même valeur sur toutes les lignes de sortie. Il signale un motif hebdomadaire, ce qui est conforme à nos attentes, comme décrit à l'étape 2 ci-dessus.

    Les colonnes has_holiday_effect, has_spikes_and_dips et has_step_changes ne sont renseignées que lorsque decompose_time_series=TRUE. Elles concernent l'effet des jours fériés, les pics et baisses, ainsi que les modifications graduelles dans les séries temporelles d'entrée, qui ne sont pas liées à la modélisation ARIMA. Par conséquent, elles sont toutes identiques sur toutes les lignes de sortie, à l'exception de ces modèles défaillants.

    La colonne error_message indique que l'erreur possible est survenue lors du processus d'ajustement auto.ARIMA. Cela peut s'expliquer par le fait que les colonnes non_seasonal_p, non_seasonal_d, non_seasonal_q et has_drift sélectionnées ne peuvent pas stabiliser la série temporelle. Pour récupérer le message d'erreur possible de tous les modèles candidats, définissez show_all_candidate_models=true.

Étape 5 : Inspecter les coefficients de votre modèle

La fonction ML.ARIMA_COEFFICIENTS récupère les coefficients de votre modèle ARIMA_PLUS (bqml_tutorial.ga_arima_model). ML.ARIMA_COEFFICIENTS utilise le modèle comme seule entrée.

Exécutez la requête ML.ARIMA_COEFFICIENTS :

  1. Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.

  2. Saisissez la requête GoogleSQL suivante dans la zone de texte Éditeur de requête.

    #standardSQL
    SELECT
     *
    FROM
     ML.ARIMA_COEFFICIENTS(MODEL `bqml_tutorial.ga_arima_model`)
    
  3. Cliquez sur Exécuter.

    L'exécution de la requête prend moins d'une seconde. Les résultats doivent se présenter sous la forme suivante :

    Sortie de ML.ARIMA_COEFFICIENTS

    Les résultats incluent les colonnes suivantes :

    • ar_coefficients
    • ma_coefficients
    • intercept_or_drift

    ar_coefficients affiche les coefficients de modèle de la partie autorégressive (AR) du modèle ARIMA. De la même manière, ma_coefficients affiche les coefficients de modèle de la partie moyenne mobile (MA, moving-average). Il s'agit de deux tableaux, dont la longueur est respectivement égale à non_seasonal_p et non_seasonal_q. D'après la sortie de ML.ARIMA_EVALUATE, le meilleur modèle de la ligne supérieure a une valeur non_seasonal_p de 2 et une valeur non_seasonal_q de 3. Par conséquent, ar_coefficients est un tableau de longueur 2 et ma_coefficients est un tableau de longueur 3. intercept_or_drift est le terme constant dans le modèle ARIMA.

Étape 6 : Utiliser votre modèle pour prévoir la série temporelle

La fonction ML.FORECAST prédit les valeurs futures des séries temporelles avec un intervalle de prédiction à l'aide de votre modèle : bqml_tutorial.ga_arima_model.

Dans la requête GoogleSQL suivante, la clause STRUCT(30 AS horizon, 0.8 AS confidence_level) indique que la requête prévoit 30 points temporels futurs et génère un intervalle de prédiction avec un niveau de confiance de 80 %. ML.FORECAST utilise le modèle, ainsi que quelques arguments facultatifs.

Pour exécuter la requête ML.FORECAST, procédez comme suit :

  1. Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.

  2. Saisissez la requête GoogleSQL suivante dans la zone de texte Éditeur de requête.

    #standardSQL
    SELECT
     *
    FROM
     ML.FORECAST(MODEL `bqml_tutorial.ga_arima_model`,
                 STRUCT(30 AS horizon, 0.8 AS confidence_level))
    
  3. Cliquez sur Exécuter.

    L'exécution de la requête prend moins d'une seconde. Les résultats doivent se présenter sous la forme suivante :

    Sortie de ML.FORECAST.

    Les résultats incluent les colonnes suivantes :

    • forecast_timestamp
    • forecast_value
    • standard_error
    • confidence_level
    • prediction_interval_lower_bound
    • prediction_interval_upper_bound
    • confidence_interval_lower_bound (bientôt obsolète)
    • confidence_interval_upper_bound (bientôt obsolète)

    Les lignes de sortie sont triées dans l'ordre chronologique de forecast_timestamp. Dans les prévisions de séries temporelles, l'intervalle de prédiction, délimité par les limites inférieure et supérieure, est aussi important que forecast_value. forecast_value est le point central de l'intervalle de prédiction. L'intervalle de prédiction dépend de standard_error et de confidence_level.

Étape 7 : Expliquer et visualiser les résultats des prévisions

Pour comprendre comment les séries temporelles sont prévues, et pour visualiser les séries temporelles prévues ainsi que les séries temporelles de l'historique et l'ensemble des composants distincts, la fonction ML.EXPLAIN_FORECAST prédit les valeurs futures des séries temporelles avec un intervalle de prédiction à l'aide de votre modèle, bqml_tutorial.ga_arima_model, et renvoie simultanément tous les composants distincts de la série temporelle.

Comme la fonction ML.FORECAST, la clause STRUCT(30 AS horizon, 0.8 AS confidence_level) indique que la requête prévoit 30 points temporels futurs et génère un intervalle de prédiction avec un indice de confiance de 80 %. La fonction ML.EXPLAIN_FORECAST utilise le modèle, ainsi que quelques arguments facultatifs.

Pour exécuter la requête ML.EXPLAIN_FORECAST, procédez comme suit :

  1. Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.

  2. Saisissez la requête GoogleSQL suivante dans la zone de texte Éditeur de requête.

    #standardSQL
    SELECT
     *
    FROM
     ML.EXPLAIN_FORECAST(MODEL `bqml_tutorial.ga_arima_model`,
                         STRUCT(30 AS horizon, 0.8 AS confidence_level))
    
  3. Cliquez sur Exécuter.

    L'exécution de la requête prend moins d'une seconde. Les résultats doivent se présenter sous la forme suivante :

    ML.EXPLAIN_FORECAST output1. ML.EXPLAIN_FORECAST output2.

    Les résultats incluent les colonnes suivantes :

    • time_series_timestamp
    • time_series_type
    • time_series_data
    • time_series_adjusted_data
    • standard_error
    • confidence_level
    • prediction_interval_lower_bound
    • prediction_interval_lower_bound
    • trend
    • seasonal_period_yearly
    • seasonal_period_quarterly
    • seasonal_period_monthly
    • seasonal_period_weekly
    • seasonal_period_daily
    • holiday_effect
    • spikes_and_dips
    • step_changes
    • residual

    Les lignes de sortie sont triées dans l'ordre chronologique de time_series_timestamp. Différents composants sont répertoriés sous forme de colonnes de sortie. Pour plus d'informations, consultez la définition de ML.EXPLAIN_FORECAST.

  4. Une fois la requête terminée, cliquez sur le bouton Explorer les données, puis sur Explorer avec Looker Studio. Looker Studio s'ouvre dans un nouvel onglet.

    Sortie de Union_all_query

  5. Dans le panneau Chart (Graphique), sélectionnez Time series chart (Graphique de séries temporelles) :

    Time_series_chart

  6. Dans le panneau Data (Données), procédez comme suit :

    1. Dans la section Date Range Dimension (Dimension associée à la plage de dates), sélectionnez time_series_timestamp (Date).
    2. Dans la section Dimension, sélectionnez time_series_timestamp (Date).
    3. Dans la section Metric (Métrique), supprimez la métrique par défaut Record Count, puis ajoutez les éléments suivants :
      • time_series_data
      • prediction_interval_lower_bound
      • prediction_interval_upper_bound
      • trend
      • seasonal_period_weekly
      • step_changes

    Data_panel

  7. Dans le panneau Style, faites défiler la page jusqu'à l'option Missing Data (Données manquantes) et utilisez Line Breaks (Sauts de ligne) au lieu de Line to Zero (Ligne à zéro).

    Style_section

    Le graphique suivant s'affiche :

    Result_visualization

Étape 8 (facultative) : Visualiser les résultats des prévisions sans activer decompose_time_series

Si decompose_time_series est défini sur "false" dans l'entraînement ARIMA_PLUS, vous pouvez concaténer les séries temporelles de l'historique et les séries temporelles prévues à l'aide de la clause UNION ALL et de la fonction ML.FORECAST.

Dans la requête suivante, le SQL avant la clause UNION ALL forme la série temporelle de l'historique. Le code SQL situé après la clause UNION ALL utilise la fonction ML.FORECAST pour générer la série temporelle prévue ainsi que l'intervalle de prédiction. La requête utilise différents champs pour history_value et forecasted_value afin de les représenter dans différentes couleurs.

Pour exécuter la requête, procédez comme suit :

  1. Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.

  2. Saisissez la requête GoogleSQL suivante dans la zone de texte Éditeur de requête.

    #standardSQL
    SELECT
     history_timestamp AS timestamp,
     history_value,
     NULL AS forecast_value,
     NULL AS prediction_interval_lower_bound,
     NULL AS prediction_interval_upper_bound
    FROM
     (
       SELECT
         PARSE_TIMESTAMP("%Y%m%d", date) AS history_timestamp,
         SUM(totals.visits) AS history_value
       FROM
         `bigquery-public-data.google_analytics_sample.ga_sessions_*`
       GROUP BY date
       ORDER BY date ASC
     )
    UNION ALL
    SELECT
     forecast_timestamp AS timestamp,
     NULL AS history_value,
     forecast_value,
     prediction_interval_lower_bound,
     prediction_interval_upper_bound
    FROM
     ML.FORECAST(MODEL `bqml_tutorial.ga_arima_model`,
                 STRUCT(30 AS horizon, 0.8 AS confidence_level))
    
  3. Cliquez sur Exécuter.

  4. Une fois la requête terminée, cliquez sur le bouton Explorer les données, puis sur Explorer avec Looker Studio. Looker Studio s'ouvre dans un nouvel onglet. Procédez comme suit dans le nouvel onglet.

    Sortie de Union_all_query

  5. Dans le panneau Chart (Graphique), sélectionnez Time series chart (Graphique de séries temporelles) :

    Time_series_chart

  6. Dans le panneau Data (Données) situé sous le panneau Chart (Graphique), accédez à la section Metric (Métrique). Ajoutez les métriques suivantes : history_value, forecast_value, prediction_interval_lower_bound et prediction_interval_upper_bound. Supprimez ensuite la métrique par défaut Record Count.

    Data_section

  7. Dans le panneau Style, faites défiler la page jusqu'à l'option Missing Data (Données manquantes) et utilisez Line Breaks (Sauts de ligne) au lieu de Line to Zero (Ligne à zéro).

    Style_section

    Une fois ces étapes terminées, le graphique suivant s'affiche dans le panneau de gauche. La série temporelle de l'historique des entrées est en bleu, tandis que la série prévue est en vert. L'intervalle de prédiction correspond à la zone comprise entre la série de la limite inférieure et la série de la limite supérieure.

    Result_visualization

Nettoyer

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

  • Supprimez le projet que vous avez créé.
  • Ou conservez le projet et supprimez l'ensemble de données.

Supprimer l'ensemble de données

La suppression de votre projet entraîne celle de tous les ensembles de données et de toutes les tables qui lui sont associés. Si vous préférez réutiliser le projet, vous pouvez supprimer l'ensemble de données que vous avez créé dans ce tutoriel :

  1. Si nécessaire, ouvrez la page BigQuery dans Cloud Console.

    Accéder à BigQuery

  2. Dans le panneau de navigation, cliquez sur l'ensemble de données bqml_tutorial que vous avez créé.

  3. Cliquez sur Delete dataset (Supprimer l'ensemble de données) dans la partie droite de la fenêtre. Cette action supprime l'ensemble de données, la table et toutes les données.

  4. Dans la boîte de dialogue Supprimer l'ensemble de données, confirmez la commande de suppression en saisissant le nom de votre ensemble de données (bqml_tutorial), puis cliquez sur Supprimer.

Supprimer votre projet

Pour supprimer le projet :

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étape suivante