Obtenir des insights sur les données à partir d'un modèle d'analyse des contributions à l'aide d'une métrique sommable
Dans ce tutoriel, vous utilisez un modèle d'analyse des contributions pour analyser les variations des ventes entre 2020 et 2021 dans l'ensemble de données sur les ventes de boissons alcoolisées dans l'Iowa. Ce tutoriel vous explique comment effectuer les tâches suivantes :
- Créer une table d'entrée basée sur des données publiques sur les boissons alcoolisées dans l'Iowa
- Créer un modèle d'analyse des contributions qui utilise une métrique sommable. Ce type de modèle résume une métrique donnée pour une combinaison d'une ou de plusieurs dimensions dans les données, afin de déterminer comment ces dimensions contribuent à la valeur de la métrique.
- Obtenir les insights sur les métriques à partir du modèle à l'aide de la
ML.GET_INSIGHTSfonction.
Avant de commencer ce tutoriel, vous devez connaître le cas d'utilisation de l'analyse des contributions.
Autorisations requises
Pour créer l'ensemble de données, vous devez disposer de l'autorisation Identity and Access Management (IAM)
bigquery.datasets.create.Pour créer le modèle, vous avez besoin des autorisations suivantes :
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateData
Pour exécuter une inférence, vous devez disposer des autorisations suivantes :
bigquery.models.getDatabigquery.jobs.create
Coûts
Dans ce document, vous utilisez les composants facturables de Google Cloudsuivants :
- BigQuery ML: You incur costs for the data that you process in BigQuery.
Vous pouvez obtenir une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Pour en savoir plus sur les tarifs de BigQuery, consultez la page Tarifs de BigQuery dans la documentation BigQuery.
Avant de commencer
-
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.
-
Enable the BigQuery API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Créer un ensemble de données
Créez un ensemble de données BigQuery pour stocker votre modèle de ML.
Console
Dans la Google Cloud console, accédez à la page BigQuery.
Dans le volet Explorateur, cliquez sur le nom de votre projet.
Cliquez sur Afficher les actions > Créer un ensemble de données
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).
Conservez les autres paramètres par défaut, puis cliquez sur Créer un ensemble de données.
bq
Pour créer un ensemble de données, exécutez la commande bq mk en spécifiant l'option --location. Pour obtenir la liste complète des paramètres possibles, consultez la
bq mk --dataset commande
documentation de référence.
Créez un ensemble de données nommé
bqml_tutorialavec l'emplacement des données défini surUSet la descriptionBigQuery ML tutorial dataset:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Au lieu d'utiliser l'option
--dataset, la commande utilise le raccourci-d. Si vous omettez-det--dataset, la commande crée un ensemble de données par défaut.Vérifiez que l'ensemble de données a été créé :
bq ls
API
Appelez la datasets.insert
méthode avec une ressource d'ensemble de données définie.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Créer une table de données d'entrée
Créez une table contenant les données de test et de contrôle à analyser. La table de test contient les données sur les boissons alcoolisées de 2021, et la table de contrôle contient les données sur les boissons alcoolisées de 2020. La requête suivante combine les données de test et de contrôle dans une seule table d'entrée :
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
CREATE OR REPLACE TABLE bqml_tutorial.iowa_liquor_sales_sum_data AS ( (SELECT store_name, city, vendor_name, category_name, item_description, SUM(sale_dollars) AS total_sales, FALSE AS is_test FROM `bigquery-public-data.iowa_liquor_sales.sales` WHERE EXTRACT(YEAR from date) = 2020 GROUP BY store_name, city, vendor_name, category_name, item_description, is_test) UNION ALL (SELECT store_name, city, vendor_name, category_name, item_description, SUM(sale_dollars) AS total_sales, TRUE AS is_test FROM `bigquery-public-data.iowa_liquor_sales.sales` WHERE EXTRACT (YEAR FROM date) = 2021 GROUP BY store_name, city, vendor_name, category_name, item_description, is_test) );
Créer le modèle
Créez un modèle d'analyse des contributions :
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
CREATE OR REPLACE MODEL bqml_tutorial.iowa_liquor_sales_sum_model OPTIONS( model_type='CONTRIBUTION_ANALYSIS', contribution_metric = 'sum(total_sales)', dimension_id_cols = ['store_name', 'city', 'vendor_name', 'category_name', 'item_description'], is_test_col = 'is_test', min_apriori_support=0.05 ) AS SELECT * FROM bqml_tutorial.iowa_liquor_sales_sum_data;
L'exécution de la requête prend environ 60 secondes. Le modèle
iowa_liquor_sales_sum_model s'affiche ensuite dans l'ensemble de données bqml_tutorial. Étant donné que
la requête utilise une instruction CREATE MODEL pour créer un modèle, il n'y a aucun
résultat de requête.
Obtenir des insights à partir du modèle
Obtenez des insights générés par le modèle d'analyse des contributions à l'aide de la
ML.GET_INSIGHTS fonction.
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante pour sélectionner des colonnes dans la sortie d'un modèle d'analyse des contributions de métriques sommables :
SELECT contributors, metric_test, metric_control, difference, relative_difference, unexpected_difference, relative_unexpected_difference, apriori_support, contribution FROM ML.GET_INSIGHTS( MODEL `bqml_tutorial.iowa_liquor_sales_sum_model`);
Les premières lignes de la sortie doivent ressembler à ce qui suit. Les valeurs sont tronquées pour améliorer la lisibilité.
| contributeurs | metric_test | metric_control | différence | relative_difference | unexpected_difference | relative_unexpected_difference | apriori_support | contribution |
|---|---|---|---|---|---|---|---|---|
| tous | 428068179 | 396472956 | 31595222 | 0.079 | 31595222 | 0.079 | 1.0 | 31595222 |
| vendor_name=SAZERAC COMPANY INC | 52327307 | 38864734 | 13462573 | 0.346 | 11491923 | 0.281 | 0.122 | 13462573 |
| city=DES MOINES | 49521322 | 41746773 | 7774549 | 0.186 | 4971158 | 0.111 | 0.115 | 7774549 |
| vendor_name=DIAGEO AMERICAS | 84681073 | 77259259 | 7421814 | 0.096 | 1571126 | 0.018 | 0.197 | 7421814 |
| category_name=100% AGAVE TEQUILA | 23915100 | 17252174 | 6662926 | 0.386 | 5528662 | 0.3 | 0.055 | 6662926 |
La sortie est automatiquement triée par contribution, ou ABS(difference), en
ordre décroissant. Dans la ligne all, la colonne difference indique une augmentation des ventes totales de
31 595 222 $ entre 2020 et 2021,soit une augmentation de 7,9 %, comme
indiqué dans la colonne relative_difference. Dans la deuxième ligne, avec
vendor_name=SAZERAC COMPANY INC, la unexpected_difference est de
11 491 923 $, ce qui signifie que ce segment de données a augmenté de 28 % de plus que le taux de croissance de
l'ensemble des données, comme indiqué dans la colonne relative_unexpected_difference.
Pour en savoir plus, consultez les
colonnes de sortie des métriques sommables.
Effectuer un nettoyage
- 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.