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

Neste tutorial, você vai usar um modelo de análise de contribuição para analisar a contribuição da proporção do custo das vendas no conjunto de dados de vendas de bebidas alcoólicas de Iowa. Este tutorial orienta você na execução das seguintes tarefas:

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ê vai 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, selecione 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 de 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 as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder papéis.

    Ativar a API

crie um conjunto de dados

Crie um conjunto de dados do BigQuery para armazenar o modelo de ML.

Console

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

    Acessar a página do BigQuery

  2. No painel Explorer, clique no nome do seu projeto.

  3. Clique em Ver ações > Criar conjunto de dados

  4. Na página Criar conjunto de dados, faça o seguinte:

    • Para o código do conjunto de dados, insira bqml_tutorial.

    • Em Tipo de local, selecione Multirregião e selecione EUA.

    • Mantenha as configurações padrão restantes e 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 de 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 consulta a seguir cria duas tabelas intermediárias, uma tabela de teste para dados de bebidas alcoólicas de 2021 e uma tabela de controle com dados de bebidas alcoólicas de 2020. Em seguida, ela realiza uma união das tabelas intermediárias para criar uma tabela com linhas de teste e controle e o mesmo conjunto de colunas.

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

Criar o modelo

Crie 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.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;

A consulta leva aproximadamente 35 segundos para ser concluída. Depois disso, o modelo liquor_sales_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 de proporção somável:

    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;

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

russo. metric_test metric_control metric_test_over_metric_control metric_test_over_complement metric_control_over_complement aumann_shapley_attribution apriori_support contribuição
todas 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

Na saída, é possível notar que o segmento de dados city=DES MOINES tem a maior contribuição de mudança na proporção de vendas. Você também pode conferir essa diferença nas colunas metric_test e metric_control, que mostram que a proporção diminuiu nos dados de teste em comparação com os dados de controle. Outras métricas, como metric_test_over_metric_control, metric_test_over_complement e metric_control_over_complement, calculam outras estatísticas que descrevem a relação entre as proporções de controle e de teste e como elas se relacionam com a população geral. Para mais informações, consulte Saída para modelos de análise de contribuição de métrica de proporção somável.

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 Encerrar para excluí-lo.