Receber insights de dados de um modelo de análise de contribuição usando uma métrica somável

Neste tutorial, você usa um modelo de análise de contribuição para analisar as mudanças nas vendas entre 2020 e 2021 no conjunto de dados de vendas de bebidas alcoólicas de Iowa. Este tutorial orienta você na execução das seguintes tarefas:

  • Criar uma tabela de entrada com base nos dados de bebidas alcoólicas de Iowa disponíveis publicamente.
  • Criar um modelo de análise de contribuição que usa uma métrica somável. Esse tipo de modelo resume uma determinada métrica para uma combinação de uma ou mais dimensões nos dados, para determinar como essas dimensões contribuem para o valor da métrica.
  • Receber os insights de métricas do modelo usando a ML.GET_INSIGHTS função.

Antes de começar este tutorial, familiarize-se com o caso de uso da análise de contribuição.

Permissões necessárias

  • Para criar o conjunto de dados, você precisa da permissão do Identity and Access Management (IAM) bigquery.datasets.create.

  • Para criar o modelo, você precisa das seguintes permissões:

    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
  • Para executar a inferência, você precisa das seguintes permissões:

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

Custos

Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:

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

Para gerar uma estimativa de custo baseada na projeção de uso, use a calculadora de preços.

Novos Google Cloud usuários podem estar qualificados para um teste sem custo financeiro.

Para mais informações, consulte Preços do BigQuery em a documentação do BigQuery.

Antes de começar

  1. No Google Cloud console do, na página do seletor de projetos, escolha ou crie um Google Cloud projeto do.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
    • Criar um projeto: para criar um projeto, você precisa do papel Criador de projetos (roles/resourcemanager.projectCreator), que contém a resourcemanager.projects.create permissão. Saiba como conceder papéis.

    Acessar o seletor de projetos

  2. Verifique se o faturamento está ativado para o Google Cloud projeto.

  3. Ative a API BigQuery.

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel Proprietário (roles/owner). Caso contrário, você pode receber essa permissão pelo papel Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    Ativar a API

crie um conjunto de dados

Para criar um conjunto de dados do BigQuery, selecione uma das seguintes opções:

Console

  1. No Google Cloud console, acesse a página BigQuery.

    Acessar o BigQuery

  2. No painel à esquerda, clique em Explorer:

    Botão destacado para o painel "Explorer".

    Se o painel esquerdo não aparecer, clique em Expandir painel esquerdo para abrir.

  3. Em Explorer, expanda o projeto e clique em Conjuntos de dados.

  4. Na página Conjuntos de dados, clique em Criar conjunto de dados.

  5. No painel Criar conjunto de dados, faça o seguinte:

    • Para o ID do conjunto de dados, insira bqml_tutorial.

    • Em Local dos dados, selecione US.

    Não altere as outras configurações padrão.

  6. Clique em Criar conjunto de dados.

bq

Para criar um novo conjunto de dados, use o bq mk --dataset comando.

  1. Crie um conjunto de dados chamado bqml_tutorial com o local dos dados definido como US:

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. Confirme se o conjunto de dados foi criado:

    bq ls

API

Chame o datasets.insert método com um recurso de conjunto de dados definido:

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

Criar uma tabela de dados de entrada

Crie uma tabela que contenha dados de teste e controle para analisar. A tabela de teste contém dados de bebidas alcoólicas de 2021, e a tabela de controle contém dados de bebidas alcoólicas de 2020. A consulta a seguir combina os dados de teste e controle em uma única tabela de entrada:

  1. No Google Cloud console, acesse a página BigQuery.

    Acessar o BigQuery

  2. No editor de consultas, execute a seguinte instrução:

    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)
    );

Criar o modelo

Criar um modelo de análise de contribuição:

  1. No Google Cloud console, acesse a página BigQuery.

    Acessar o BigQuery

  2. No editor de consultas, execute a seguinte instrução:

    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;

A consulta leva aproximadamente 60 segundos para ser concluída. Depois disso, o modelo iowa_liquor_sales_sum_model aparece no conjunto de dados bqml_tutorial. Como a consulta usa uma instrução CREATE MODEL para criar um modelo, não há resultados de consulta.

Receber insights do modelo

Receba insights gerados pelo modelo de análise de contribuição usando a função ML.GET_INSIGHTS.

  1. No Google Cloud console, acesse a página BigQuery.

    Acessar o BigQuery

  2. No editor de consultas, execute a seguinte instrução para selecionar colunas da saída de um modelo de análise de contribuição de métrica somável:

    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`);

As primeiras linhas da saída serão semelhantes a esta: Os valores são truncados para melhorar a legibilidade.

russo. metric_test metric_control diferença relative_difference unexpected_difference relative_unexpected_difference apriori_support contribuição
todas 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

A saída é classificada automaticamente por contribuição ou ABS(difference), em ordem decrescente. Na linha all, a coluna difference mostra que houve um aumento de US$ 31.595.222 nas vendas totais de 2020 a 2021,um aumento de 7,9%, conforme indicado pela coluna relative_difference. Na segunda linha, com vendor_name=SAZERAC COMPANY INC, houve uma unexpected_difference de US$ 11.491.923, o que significa que esse segmento de dados cresceu 28% mais do que a taxa de crescimento de dados como um todo, conforme mostrado na coluna relative_unexpected_difference. Para mais informações, consulte as colunas de saída de métricas somáveis.

Limpar

  1. No Google Cloud console, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. Na caixa de diálogo, digite o ID do projeto e clique em Desligar para excluir o projeto.