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 les 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_INSIGHTS fonction.

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.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
  • Pour exécuter une inférence, vous devez disposer des autorisations suivantes :

    • bigquery.models.getData
    • bigquery.jobs.create

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Cloud de Confiance by S3NS:

  • BigQuery ML: You incur costs for the data that you process in BigQuery.

Pour en savoir plus sur les tarifs de BigQuery, consultez la page Tarifs de BigQuery dans la documentation BigQuery.

Avant de commencer

  1. Dans la Cloud de Confiance console, sur la page de sélection du projet, sélectionnez ou créez un Cloud de Confiance projet.

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.

    Accéder au sélecteur de projet

  2. Vérifiez que la facturation est activée pour votre Cloud de Confiance projet.

  3. Activez l'API BigQuery.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer l'API

Créer un ensemble de données

Créez un ensemble de données BigQuery pour stocker votre modèle de ML.

Console

  1. Dans la Cloud de Confiance console, 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

  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.

    • 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, utilisez la bq mk --dataset commande.

  1. Créez un ensemble de données nommé bqml_tutorial avec l'emplacement des données défini sur US.

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. 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 :

  1. Dans la Cloud de Confiance console, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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 :

  1. Dans la Cloud de Confiance console, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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. Une fois l'opération terminée, le modèle iowa_liquor_sales_sum_model s'affiche 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 les insights générés par le modèle d'analyse des contributions à l'aide de la fonction ML.GET_INSIGHTS.

  1. Dans la Cloud de Confiance console, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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), dans l'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

  1. Dans la Cloud de Confiance console, 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.