Accédez à plus de 700 ateliers et cours

Prédire les achats des visiteurs avec BigQuery ML

Atelier 1 heure universal_currency_alt 5 crédits show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Accédez à plus de 700 ateliers et cours

Présentation

BigQuery Machine Learning (BigQuery ML) permet aux utilisateurs de créer et d'exécuter des modèles de machine learning dans BigQuery à l'aide de requêtes SQL. L'objectif est de démocratiser le machine learning en permettant aux utilisateurs SQL de créer des modèles à l'aide de leurs propres outils et d'accélérer le rythme de développement en leur évitant d'avoir à transférer des données.

Nous mettons à votre disposition un ensemble de données d'e-commerce comprenant des millions d'enregistrements Google Analytics pour le Google Merchandise Store, qui sont chargés dans BigQuery. Dans cet atelier, vous allez utiliser ces données pour créer un modèle capable de prédire si un visiteur effectuera une transaction.

Objectifs de l'atelier

Apprendre à créer, évaluer et utiliser des modèles de machine learning dans BigQuery

Ce dont vous avez besoin

  • Un navigateur tel que Chrome ou Firefox
  • Des connaissances de base sur le langage SQL ou BigQuery

Préparation

Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.

  1. Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.

  2. Vérifiez le temps imparti pour l'atelier (par exemple : 01:15:00) : vous devez pouvoir le terminer dans ce délai.
    Une fois l'atelier lancé, vous ne pouvez pas le mettre en pause. Si nécessaire, vous pourrez le redémarrer, mais vous devrez tout reprendre depuis le début.

  3. Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.

  4. Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.

  5. Cliquez sur Ouvrir la console Google.

  6. Cliquez sur Utiliser un autre compte, puis copiez-collez les identifiants de cet atelier lorsque vous y êtes invité.
    Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués.

  7. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.

Ouvrir la console BigQuery

  1. Dans la console Google Cloud, sélectionnez le menu de navigation > BigQuery.

Le message Bienvenue sur BigQuery dans la console Cloud s'affiche. Il contient un lien vers le guide de démarrage rapide et liste les mises à jour de l'interface utilisateur.

  1. Cliquez sur Done (OK).

Tâche 1 : Explorer les données

Dans cette tâche, vous allez explorer et préparer un ensemble de données public pour un modèle de machine learning. Vous exécuterez une requête SQL pour inspecter un échantillon de données Google Analytics et enregistrer le résultat sous le nom training_data.

Les données que nous allons utiliser dans cet atelier se trouvent dans le projet bigquery-public-data, qui est accessible à tous. Examinons un échantillon de ces données.

  1. Pour vérifier que l'ensemble de données bqml_lab est présent, cliquez sur la flèche à gauche de votre Project_ID (qui commence par qwiklabs-gcp-00-XXXXXXXXXX). L'ensemble de données bqml_lab devrait figurer en dessous.

  2. Cliquez sur + pour créer une requête SQL. Un nouvel onglet s'affiche dans BigQuery Studio.

Expliquer la requête

  1. Ajoutez la requête dans le champ Requête sans titre.
SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20160801' AND '20170631' LIMIT 10000;
  1. Sélectionnez la requête.

  2. Cliquez sur le bouton Gemini Gemini Code Assist juste à gauche de la requête.

  3. Cliquez sur Expliquer cette requête.

  4. La boîte de dialogue de Gemini s'ouvre à droite de BigQuery Studio.

  5. Le message de bienvenue pour Gemini dans la console Cloud s'affiche dans le volet Gemini. Cliquez sur Commencer à discuter. Vous obtenez une explication semblable à l'exemple ci-dessous pour la requête dans la fenêtre de chat.

Remarque : Si aucune explication ne s'affiche dans la fenêtre de chat, veuillez cliquer à nouveau sur Expliquer cette requête après avoir sélectionné l'intégralité de la requête.
  1. Consultez l'explication.
Remarque : En tant qu'outil génératif, Gemini Code Assist ne produira pas exactement la même réponse à chaque fois, mais les points clés devraient être similaires.
  1. Gemini devrait proposer une réponse semblable à celle-ci :

    This GoogleSQL query is designed to extract a sample of Google Analytics session data and transform it into a format suitable for machine learning or analytical purposes.
  2. Cliquez sur Exécuter.

  3. Cliquez sur Enregistrer, puis sélectionnez Enregistrer la vue.

  4. Dans la boîte de dialogue "Enregistrer la vue", cliquez sur Ensemble de données et sélectionnez bqml_lab.

  5. Pour "Table", saisissez training_data, puis cliquez sur Enregistrer.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer une table de vue

Tâche 2 : Créer un modèle

Dans cette tâche, vous allez générer un modèle de machine learning pour prédire les transactions des visiteurs à l'aide d'une requête SQL obtenue avec un prompt en langage naturel dans BigQuery. Vous spécifiez un type de modèle de régression logistique et vous l'entraînez à l'aide du résultat training_data existant.

  1. Cliquez sur + pour créer une requête SQL. Un nouvel onglet s'affiche dans BigQuery Studio.

  2. Cliquez sur Outil de génération SQL pour accéder à l'outil de génération SQL. La boîte de dialogue "Générer du code SQL avec Gemini" s'affiche. Vous pouvez saisir un prompt en langage naturel dans cette fenêtre pour générer une nouvelle instruction SQL.

  3. Copiez et collez le prompt ci-dessous.

    Create a model name sample_model, type logistic_reg to predict whether a visitor will make a transaction using the training_data view table.
  4. Cliquez sur Générer. Gemini suggère une requête SQL semblable à celle qui suit.

    CREATE MODEL `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`sample_model` OPTIONS ( model_type = 'LOGISTIC_REG', input_label_cols = ['label']) AS SELECT label, os, is_mobile, country, pageviews FROM `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`training_data`;
Remarque  : Si la requête générée renvoie un message d'erreur, vous pouvez ajuster la syntaxe de la requête ou remplacer la requête entière pour qu'elle corresponde à l'exemple fourni.
  1. Cliquez sur Insérer.

  2. Cliquez sur Exécuter.

Dans ce cas précis, bqml_lab désigne l'ensemble de données, sample_model le nom du modèle, et training_data les données des transactions que nous avons examinées dans l'étape précédente (en l'occurrence, il s'agit d'un modèle de type régression logistique binaire).

Utilisez ensuite la commande CREATE MODEL (Créer un modèle) pour créer un job de requête qui sera exécuté de façon asynchrone, ce qui vous laisse le temps de fermer ou d'actualiser la fenêtre BigQuery, par exemple.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer un modèle

[Facultatif] Consulter les informations sur le modèle et les statistiques d'entraînement

Si cela vous intéresse, vous pouvez obtenir des informations sur le modèle en cliquant sur l'ensemble de données bqml_lab dans le menu de gauche, puis sur le modèle sample_model dans l'UI. Sous Détails, vous devriez trouver des informations de base concernant le modèle ainsi que les options d'entraînement utilisées pour le créer. Un tableau semblable au suivant apparaît normalement sous Statistiques de l'entraînement :

Un tableau à six colonnes et 11 lignes de données concernant l'itération, la perte de données, le taux d'apprentissage et l'heure de fin

Tâche 3 : Évaluer le modèle

Dans cette tâche, vous allez évaluer les performances de votre modèle de machine learning à l'aide de la fonction ML.EVALUATE. Vous obtiendrez ainsi des métriques clés indiquant la précision avec laquelle le modèle prédit les transactions des visiteurs.

  1. Cliquez sur + pour créer une requête SQL. Un nouvel onglet s'affiche dans BigQuery Studio.

  2. Cliquez sur Outil de génération SQL pour accéder à l'outil de génération SQL. La boîte de dialogue "Générer du code SQL avec Gemini" s'affiche. Vous pouvez saisir un prompt en langage naturel dans cette fenêtre pour générer une nouvelle instruction SQL.

  3. Copiez et collez le prompt ci-dessous.

    Write a query to evaluate the performance of the model `bqml_lab.sample_model` using the `ml.EVALUATE` function.
  4. Cliquez sur Générer. Gemini suggère une requête SQL semblable à celle qui suit.

    SELECT * FROM ML.EVALUATE( MODEL `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`sample_model`, TABLE `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`training_data`);
Remarque  : Si la requête générée renvoie un message d'erreur, vous pouvez ajuster la syntaxe de la requête ou remplacer la requête entière pour qu'elle corresponde à l'exemple fourni.
  1. Cliquez sur Insérer.

  2. Cliquez sur Exécuter.

Un tableau semblable à ce qui suit doit s'afficher :

Table des résultats

Tâche 4 : Utiliser le modèle

Dans cette tâche, vous allez apprendre à utiliser la fonction ML.PREDICT de BigQuery pour faire des prédictions. Mais avant cela, vous devez déboguer une requête qui utilise une fonction incorrecte. Vous allez utiliser Gemini pour identifier et corriger l'erreur de syntaxe avant d'exécuter la requête permettant de prédire les 10 premiers pays en termes d'achats.

  1. Cliquez sur + pour créer une requête SQL et exécutez la requête ci-dessous :
SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews, fullVisitorId FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801';

Comme vous pouvez le constater, les parties SELECT et FROM de la requête sont similaires à celles utilisées pour générer les données d'entraînement. La colonne supplémentaire fullVisitorId que vous utiliserez pour prédire les transactions pour chaque utilisateur est présente. La partie WHERE indique la nouvelle période (du 1er juillet au 1er août 2017).

  1. Nous allons enregistrer les données de juillet, car elles nous serviront dans les prochaines étapes pour faire des prédictions à l'aide de notre modèle.

  2. Cliquez sur Enregistrer, puis sélectionnez Enregistrer la vue.

  3. Dans la boîte de dialogue "Enregistrer la vue", cliquez sur Ensemble de données et sélectionnez bqml_lab.

  4. Pour le tableau, saisissez july_data, puis cliquez sur Enregistrer.

Prédire les achats pour chaque pays/région

Avec la requête suivante, vous allez pouvoir prédire le nombre de transactions effectuées par les visiteurs dans chaque pays ou région, trier les résultats et établir un classement des 10 pays enregistrant le plus de transactions :

  1. Cliquez sur + pour créer une requête SQL.

  2. Copiez et collez la requête ci-dessous.

SELECT country, TOTAL(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_lab.sample_model`, ( SELECT * FROM `bqml_lab.july_data`)) GROUP BY country ORDER BY total_predicted_purchases DESC LIMIT 10;
  1. Cliquez sur Exécuter. Vous confirmez que l'exécution de la requête échoue et que le message d'erreur suivant s'affiche :

    Function not found: TOTAL at [3:3]

Déboguer le code avec Gemini et corriger l'erreur

  1. Cliquez sur la fenêtre de chat Gemini dans BigQuery.

  2. Dans la fenêtre de chat, copiez et collez la question suivante.

    Why am I getting "Function not found: TOTAL at [3:3]" when I run this query?
  3. Appuyez sur <MAJ><ENTRÉE> (ou <MAJ><Entrée> sur Mac) pour créer une ligne dans la fenêtre de chat.

  4. Sélectionnez la requête et copiez-la.

  5. Collez-la immédiatement après la question que vous avez posée.

  6. Appuyez sur <MAJ><ENTRÉE> (ou <MAJ><Entrée> sur Mac) pour créer une ligne dans la fenêtre de chat.

  7. Copiez et collez la phrase suivante :

    Please suggest new code to resolve any issues.
  8. Cliquez sur Envoyer le prompt Envoyer le prompt. Vous obtenez une réponse de Gemini.

  9. Examinez les suggestions de la réponse. Ces suggestions indiquent que TOTAL() n'est pas une fonction d'agrégation SQL valide dans BigQuery.

Une requête affinée contenant une solution potentielle semblable à l'exemple ci-dessous est proposée dans les suggestions :

SELECT country, SUM(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_lab.sample_model`, ( SELECT * FROM `bqml_lab.july_data`)) GROUP BY country ORDER BY total_predicted_purchases DESC LIMIT 10;
  1. Copiez la requête affinée.

  2. Cliquez sur + pour créer une requête SQL.

  3. Collez la requête affinée dans le nouvel onglet "Requête sans titre".

  4. Cliquez sur Exécuter.

Dans cette requête, vous utilisez ml.PREDICT, et la partie BigQuery ML de la requête a été enveloppée avec des commandes SQL standards. Pour cet atelier, nous nous intéressons aux pays et au nombre de transactions dans chacun d'eux, ce qui explique l'utilisation des commandes SELECT, GROUP BY et ORDER BY. La commande LIMIT, quant à elle, limite les résultats aux 10 pays arrivés en tête.

Un tableau semblable à ce qui suit doit s'afficher :

Un tableau à trois colonnes et 10 lignes de données concernant le nombre total d&#39;achats probables par pays

Cliquez sur Vérifier ma progression pour valider l'objectif. Corriger l'erreur et récupérer les 10 achats principaux pour chaque pays

Challenge

Prédire les achats pour chaque utilisateur

Cette fois-ci, vous allez essayer de prédire le nombre de transactions effectuées par chaque visiteur, de trier les résultats et d'établir un classement des 10 visiteurs réalisant le plus de transactions.

Terminer l'atelier

Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.

Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.

Le nombre d'étoiles correspond à votre degré de satisfaction :

  • 1 étoile = très insatisfait(e)
  • 2 étoiles = insatisfait(e)
  • 3 étoiles = ni insatisfait(e), ni satisfait(e)
  • 4 étoiles = satisfait(e)
  • 5 étoiles = très satisfait(e)

Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.

Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.

Copyright 2020 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Ouvrez une fenêtre de navigateur en mode navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.