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:
- Criar uma tabela de entrada com base em dados de bebidas alcoólicas de Iowa disponíveis publicamente.
- Criar um modelo de análise de contribuição que usa 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 no conjunto de dados de controle e de teste para cada segmento dos dados.
- Receber os insights de métricas do modelo usando a
ML.GET_INSIGHTSfunçã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.createbigquery.models.createbigquery.models.getDatabigquery.models.updateData
Para executar a inferência, você precisa das seguintes permissões:
bigquery.models.getDatabigquery.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.
Para mais informações, consulte Preços do BigQuery em a documentação do BigQuery.
Antes de começar
-
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 aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
-
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ãoserviceusage.services.enable. Saiba como conceder papéis.
crie um conjunto de dados
Crie um conjunto de dados do BigQuery para armazenar o modelo de ML.
Console
No Google Cloud console, acesse a página BigQuery.
No painel Explorer, clique no nome do seu projeto.
Clique em Ver ações > Criar conjunto de dados
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.
Crie um conjunto de dados chamado
bqml_tutorialcom o local de dados definido comoUS.bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
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.
No Google Cloud console, acesse a página BigQuery.
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:
No Google Cloud console, acesse a página BigQuery.
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.
No Google Cloud console, acesse a página BigQuery.
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
- No Google Cloud console, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.