Obtenir des insights sur les données à partir d'un modèle d'analyse des contributions à l'aide d'une métrique de ratio sommable

Dans ce tutoriel, vous allez utiliser un modèle d’analyse des contributions pour analyser la contribution du ratio du coût des ventes 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 de ratio sommable. Ce type de modèle récapitule les valeurs de deux colonnes numériques et détermine les différences de ratio entre l’ensemble de données de contrôle et l’ensemble de données de test pour chaque segment de données.
  • Obtenir les insights de 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 Google Cloud:

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

Obtenez une estimation des coûts en fonction de votre utilisation prévue, utilisez le simulateur de coût.

Les nouveaux utilisateurs de peuvent bénéficier d'un essai sans frais. Google Cloud

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 Google Cloud console, sur la page de sélection du projet, sélectionnez ou créez un Google Cloud 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 Google Cloud 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 Google Cloud 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 requête suivante crée deux tables intermédiaires, une table de test pour les données sur les boissons alcoolisées de 2021 et une table de contrôle avec les données sur les boissons alcoolisées de 2020, puis effectue une union des tables intermédiaires pour créer une table contenant à la fois les lignes de test et de contrôle, ainsi que le même ensemble de colonnes.

  1. Dans la Google Cloud 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_data AS
    (SELECT
      store_name,
      city,
      vendor_name,
      category_name,
      item_description,
      SUM(sale_dollars) AS total_sales,
      SUM(state_bottle_cost) AS total_bottle_cost,
      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,
      SUM(state_bottle_cost) AS total_bottle_cost,
      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 Google Cloud 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.liquor_sales_model
    OPTIONS(
      model_type = 'CONTRIBUTION_ANALYSIS',
      contribution_metric = 'sum(total_bottle_cost)/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_data;

L'exécution de la requête prend environ 35 secondes. Une fois l'opération terminée, le modèle liquor_sales_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 des insights générés par le modèle d'analyse des contributions à l'aide de la fonction ML.GET_INSIGHTS.

  1. Dans la Google Cloud 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 de ratio sommable :

    SELECT
    contributors,
    metric_test,
    metric_control,
    metric_test_over_metric_control,
    metric_test_over_complement,
    metric_control_over_complement,
    aumann_shapley_attribution,
    apriori_support
    contribution
    FROM
      ML.GET_INSIGHTS(
        MODEL `bqml_tutorial.liquor_sales_model`)
    ORDER BY aumann_shapley_attribution DESC;

Les premières lignes du résultat doivent ressembler à ce qui suit. Les valeurs sont tronquées pour améliorer la lisibilité.

contributors metric_test metric_control metric_test_over_metric_control metric_test_over_complement metric_control_over_complement aumann_shapley_attribution apriori_support contribution
tous 0,069 0.071 0.969 null null -0.00219 1.0 0.00219
city=DES MOINES 0,048 0.054 0.88 0,67 0.747 -0.00108 0,08 0.00108
vendor_name=DIAGEO AMERICAS 0,064 0.068 0.937 0.917 0.956 -0.0009 0.184 0.0009
vendor_name=BACARDI USA INC 0.071 0.082 0.857 1.025 1.167 -0.00054 0.057 0.00054
vendor_name=PERNOD RICARD USA 0.068 0.077 0,89 0.988 1.082 -0.0005 0,061 0.0005

Dans la sortie, vous pouvez voir que le segment de données city=DES MOINES présente la plus forte contribution à l'évolution du ratio des ventes. Vous pouvez également constater cette différence dans les colonnes metric_test et metric_control, qui indiquent que le ratio a diminué dans les données de test par rapport aux données de contrôle. D'autres métriques, telles que metric_test_over_metric_control, metric_test_over_complement et metric_control_over_complement, calculent des statistiques supplémentaires qui décrivent la relation entre les ratios de contrôle et de test, et leur lien avec la population globale. Pour en savoir plus, consultez la section Sortie pour les modèles d'analyse des contributions de métriques de ratio sommable.

Libérer de l'espace

  1. Dans la Google Cloud 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.