Receba 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 de vendas no conjunto de dados de vendas de bebidas alcoólicas de Iowa. Este tutorial vai orientar você nas tarefas a seguir:

  • Crie uma tabela de entrada com base em dados de bebidas alcoólicas de Iowa disponíveis publicamente.
  • Crie um modelo de análise de contribuição que use uma métrica de proporção somável. Esse tipo de modelo resume os valores de duas colunas numéricas e determina as diferenças de proporção entre os conjuntos de dados de controle e de teste para cada segmento dos dados.
  • Receba os insights de métricas do modelo usando a função ML.GET_INSIGHTS.

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 bigquery.datasets.create do Identity and Access Management (IAM).

  • 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 Cloud de Confiance by S3NS:

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

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

Antes de começar

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

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

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

    Acessar o seletor de projetos

  2. Verifique se o faturamento está ativado para o projeto do Cloud de Confiance .

  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 com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    Ativar a API

crie um conjunto de dados

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

Console

  1. No console do Cloud de Confiance , acesse a página BigQuery.

    Acessar a página do BigQuery

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

  3. Clique em Conferir 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 EUA.

    • Mantenha as configurações padrão restantes e clique em Criar conjunto de dados.

bq

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

  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 método datasets.insert com um recurso de conjunto de dados definido.

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

Criar uma tabela de dados de entrada

Crie uma tabela com dados de teste e controle para analisar. A consulta a seguir cria duas tabelas intermediárias, uma de teste com dados de bebidas alcoólicas de 2021 e outra de controle com dados de 2020. Em seguida, ela faz uma união das tabelas intermediárias para criar uma tabela com linhas de teste e de controle e o mesmo conjunto de colunas.

  1. No console do Cloud de Confiance , 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 console do Cloud de Confiance , 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 cerca de 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 console do Cloud de Confiance , 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 semelhantes a 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 ver 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 estatísticas adicionais que descrevem a relação entre as proporções de controle e 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étricas de proporção somáveis.

Limpar

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