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 razão do custo das vendas no conjunto de dados de vendas de bebidas alcoólicas de Iowa. Este tutorial vai orientar você nas seguintes tarefas:

  • Criação de uma tabela de entrada com base nos dados de bebidas alcoólicas disponíveis publicamente em Iowa.
  • 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 o conjunto 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 iniciar este tutorial, você precisa conhecer 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ê 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 deste tutorial, use a calculadora de preços. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

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

Antes de começar

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the BigQuery API.

    Enable the API

Criar um conjunto de dados

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

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

    Acesse 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.

    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 (várias regiões nos Estados Unidos).

      Os conjuntos de dados públicos são armazenados na multirregião US. Para simplificar, armazene seus conjuntos de dados no mesmo local.

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

      Página Criar conjunto de dados.

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 para dados de bebidas alcoólicas de 2021 e uma 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 de controle e o mesmo conjunto de colunas.

  1. No Console do Google Cloud, 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 Google Cloud, 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 no painel Explorer. 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 Google Cloud, acesse a página BigQuery.

    Acessar o BigQuery

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

    SELECT
      *
    FROM
      ML.GET_INSIGHTS(
        MODEL `bqml_tutorial.liquor_sales_model`)
    ORDER BY aumann_shapley_attribution DESC;

    As primeiras linhas da saída vão ser parecidas com esta:

    +---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+
    |                contributors                 | store_name |     city     |     vendor_name      |       category_name       | item_description |     ratio_test      |    ratio_control    | regional_relative_ratio | ambient_relative_ratio_test | ambient_relative_ratio_control | aumann_shapley_attribution |   apriori_support    |
    +---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+
    | ["vendor_name=HEAVEN HILL BRANDS"]          | NULL       | NULL         | HEAVEN HILL BRANDS   | NULL                      | NULL             | 0.06082442061831622 | 0.05884218073008315 |      1.0336873967558387 |          0.8698365450783194 |              0.811596664491199 |      1.5104196544869235E-4 | 0.055361944752340866 |
    | ["category_name=CANADIAN WHISKIES"]         | NULL       | NULL         | NULL                 | CANADIAN WHISKIES         | NULL             | 0.05660065322101707 | 0.05527494446064277 |      1.0239839003604652 |          0.7978770326280865 |             0.7503324937642422 |       9.208157188656863E-5 |  0.09035117733470034 |
    | ["category_name=STRAIGHT BOURBON WHISKIES"] | NULL       | NULL         | NULL                 | STRAIGHT BOURBON WHISKIES | NULL             |  0.0780561336687973 | 0.07963402619292285 |      0.9801856995111244 |          1.1380300531561078 |              1.123518997118609 |      -3.521056388489075E-5 |  0.09069759353047172 |
    | ["vendor_name=JIM BEAM BRANDS"]             | NULL       | NULL         | JIM BEAM BRANDS      | NULL                      | NULL             | 0.07626103548689916 | 0.07922409994920188 |      0.9625989507712601 |          1.1085644148611702 |             1.1170286930895665 |     -1.7964572365978545E-4 |  0.08232281614374977 |
    | ["city=CEDAR RAPIDS"]                       | NULL       | CEDAR RAPIDS | NULL                 | NULL                      | NULL             | 0.06564795345695407 | 0.06914461951551351 |      0.9494296724306232 |          0.9431496213564421 |              0.964181423999566 |      -2.369897107336527E-4 | 0.060593459713451064 |
    | ["vendor_name=SAZERAC COMPANY  INC"]        | NULL       | NULL         | SAZERAC COMPANY  INC | NULL                      | NULL             | 0.06564824170155907 | 0.06728069733579875 |      0.9757366421740239 |           0.939610729279885 |             0.9343443980070573 |     -3.1033262381369034E-4 |  0.11571276474865996 |
    +---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+
    

    Na saída, é possível ver que o segmento de dados vendor_name=HEAVEN HILL BRANDS tem a atribuição de Shapley de Aummann mais alta, o que indica a maior contribuição de mudança na proporção de vendas. Essa diferença também pode ser vista nas colunas ratio_test e ratio_control, que mostram que a proporção aumentou nos dados de teste em comparação com os dados de controle. Outras métricas, como regional_relative_ratio, ambient_relative_ratio_test e ambient_relative_ratio_control, 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 em geral. Para mais informações, consulte as colunas de saída da métrica de proporção somável.

Limpar

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.