arrow_back

Preveja compras de visitantes com um modelo de classificação no BQML

Preveja compras de visitantes com um modelo de classificação no BQML

1 hora 15 minutos Gratuito

GSP229

Laboratórios autoguiados do Google Cloud

Visão geral

O BigQuery é um banco de dados NoOps, de baixo custo, totalmente gerenciado e utilizado para análises desenvolvido pelo Google. Com ele, você pode consultar muitos terabytes de dados sem ter que gerenciar uma infraestrutura nem precisar de um administrador de banco de dados. O BigQuery usa SQL e está disponível no modelo de pagamento por utilização. Com ele, você pode se concentrar na análise dos dados para encontrar informações relevantes.

O BigQuery Machine Learning (BQML, produto na versão Beta) é um novo recurso do BigQuery. Nele, os analistas de dados podem criar, treinar, avaliar e fazer previsões com modelos de aprendizado de máquina que exigem o mínimo de programação.

Agora o BigQuery inclui um novo conjunto de dados de comércio eletrônico com milhões de registros do Google Analytics referentes ao Google Merchandise Store. Neste laboratório, você executará algumas consultas comuns usando esses dados com o objetivo de encontrar informações sobre hábitos de compra dos clientes que sejam relevantes para empresas.

Objetivos

Neste laboratório, você aprenderá a realizar estas tarefas:

  • Usar o BigQuery para localizar conjuntos de dados públicos

  • Consultar e explorar o conjunto de dados de comércio eletrônico

  • Criar um conjunto de dados de treinamento e avaliação para usar na previsão em lote

  • Criar um modelo de classificação (regressão logística) em BQML

  • Avaliar o desempenho do seu modelo de aprendizado de máquina

  • Prever e classificar a probabilidade de um visitante fazer uma compra

Você precisará do seguinte:

  • Um projeto do Google Cloud Platform

  • Um navegador (como o Google Chrome ou o Mozilla Firefox)

Configure o ambiente

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud ficarão disponíveis.

Este laboratório prático do Qwiklabs permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você receberá novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

O que é necessário

Para fazer este laboratório, você precisa ter:

  • acesso a um navegador de Internet padrão (recomendamos o Chrome);
  • tempo para concluir as atividades.

Observação: não use seu projeto ou sua conta do Google Cloud neste laboratório.

Observação: se estiver usando um dispositivo Chrome OS, abra uma janela anônima para executar o laboratório.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você verá o seguinte:

    • O botão Abrir Console do Cloud
    • Tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações se forem necessárias
  2. Clique em Abrir Console do Google. O laboratório ativa recursos e depois abre outra guia com a página Fazer login.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Caso seja preciso, copie o Nome de usuário no painel Detalhes do laboratório e cole esse nome na caixa de diálogo Fazer login. Clique em Avançar.

  4. Copie a Senha no painel Detalhes do laboratório e a cole na caixa de diálogo Olá. Clique em Avançar.

    Importante: você precisa usar as credenciais do painel à esquerda. Não use suas credenciais do Google Cloud Ensina. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  5. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do GCP vai ser aberto nesta guia.

Observação: para ver uma lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Ícone do menu de navegação

Abrir o console do BigQuery

  1. No Console do Google Cloud, selecione o menu de navegação > BigQuery:

Você verá a caixa de mensagem Olá! Este é o BigQuery no Console do Cloud. Ela tem um link para o guia de início rápido e as notas de versão.

  1. Clique em OK.

O console do BigQuery vai abrir.

Acesse o conjunto de dados do curso

Depois de abrir o BigQuery, clique no link abaixo para ver o projeto público data-to-insights no seu painel de projetos do BigQuery em uma nova guia do navegador:

data-to-insight.png

Veja as definições de campo do conjunto de dados de comércio eletrônico data-to-insights nesta seção. Mantenha esse link aberto em outra guia para referência.

Para evitar confusão, feche a outra guia do navegador com o BigQuery.

Observação: se o projeto público data-to-insights não aparecer no painel do Explorer, clique em + ADICIONAR DADOS -> Fixar um projeto -> Digite o nome do projeto (dados para insights) e Fixar.

Analise os dados de comércio eletrônico

Cenário: sua equipe de analistas de dados exportou para o BigQuery os registros do Google Analytics referentes a um site de comércio eletrônico e criou uma nova tabela com todos os dados brutos de sessão de visitante para você investigar. Use essas informações para responder às perguntas abaixo.

Pergunta: Qual porcentagem do total de visitantes fez uma compra no site?

Copie e cole a seguinte consulta no Editor de consultas do BigQuery:

#standardSQL
WITH visitors AS(
SELECT
COUNT(DISTINCT fullVisitorId) AS total_visitors
FROM `data-to-insights.ecommerce.web_analytics`
),
purchasers AS(
SELECT
COUNT(DISTINCT fullVisitorId) AS total_purchasers
FROM `data-to-insights.ecommerce.web_analytics`
WHERE totals.transactions IS NOT NULL
)
SELECT
  total_visitors,
  total_purchasers,
  total_purchasers / total_visitors AS conversion_rate
FROM visitors, purchasers

Clique em Executar.

Resultado: 2,69%

Pergunta: Quais são os cinco produtos mais vendidos?

Limpe a consulta anterior e adicione a seguinte consulta no EDITOR:

SELECT
  p.v2ProductName,
  p.v2ProductCategory,
  SUM(p.productQuantity) AS units_sold,
  ROUND(SUM(p.localProductRevenue/1000000),2) AS revenue
FROM `data-to-insights.ecommerce.web_analytics`,
UNNEST(hits) AS h,
UNNEST(h.product) AS p
GROUP BY 1, 2
ORDER BY revenue DESC
LIMIT 5;

Clique em Executar

Resultado:

Row

v2ProductName

v2ProductCategory

units_sold

revenue

1

Nest® Learning Thermostat 3rd Gen-USA - Stainless Steel

Nest-USA

17.651

870.976,95

2

Nest® Cam Outdoor Security Camera - USA

Nest-USA

16.930

684.034,55

3

Nest® Cam Indoor Security Camera - USA

Nest-USA

14.155

548.104,47

4

Nest® Protect Smoke + CO White Wired Alarm-USA

Nest-USA

6.394

178.937,60

5

Nest® Protect Smoke + CO White Battery Alarm-USA

Nest-USA

6.340

178.572,40

Pergunta: Quantos visitantes fizeram uma compra em acessos posteriores ao site?

Execute a seguinte consulta para descobrir:

# visitors who bought on a return visit (could have bought on first as well
WITH all_visitor_stats AS (
SELECT
  fullvisitorid, # 741,721 unique visitors
  IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
  FROM `data-to-insights.ecommerce.web_analytics`
  GROUP BY fullvisitorid
)
SELECT
  COUNT(DISTINCT fullvisitorid) AS total_visitors,
  will_buy_on_return_visit
FROM all_visitor_stats
GROUP BY will_buy_on_return_visit

Resultados:

Row

total_visitors

will_buy_on_return_visit

1

729.848

0

2

11.873

1

Pelos resultados, (11.873 / 741.721) = 1,6% do total de visitantes retorna e faz compras no site. Isso inclui o subconjunto de pessoas que fizeram compras na primeira sessão e depois voltaram ao site para comprar mais produtos.

Pergunta: Em geral, quais são os motivos para um cliente de comércio eletrônico acessar o site, mas só fazer a compra em outra visita?

Resposta: Não existe só uma resposta certa, mas um motivo comum é que o usuário compara vários sites de comércio eletrônico antes de tomar uma decisão final sobre a compra. Isso é muito comum na compra de produtos caros (por exemplo, um carro), que o cliente precisa pesquisar e comparar informações antes de tomar uma decisão. No entanto, isso também acontece em menor escala na compra de outros produtos anunciados no site, como camisetas, acessórios etc.

No mundo do marketing on-line, identificar esses futuros clientes com base nas características da primeira visita que fizeram e promover os produtos para eles pode aumentar suas taxas de conversão e reduzir a saída para sites concorrentes.

Identifique um objetivo

Agora, você criará um modelo de aprendizado de máquina no BigQuery para prever se um novo usuário fará compras no site futuramente. Identificar esses usuários valiosos pode ajudar sua equipe de marketing a enviar promoções especiais e campanhas de publicidade para eles. Essa abordagem pode garantir uma conversão entre uma visita e outra ao site de comércio eletrônico, quando os usuários estiverem comparando os produtos.

Selecione atributos e crie seu conjunto de dados de treinamento

O Google Analytics captura uma ampla variedade de dimensões e medidas sobre a visita de um usuário ao site de comércio eletrônico. Veja a lista completa de campos e visualize o conjunto de dados de demonstração para encontrar recursos úteis que ajudarão um modelo de machine learning a entender a relação entre os dados da primeira visita de um usuário ao site e a probabilidade de ele retornar para fazer uma compra.

Sua equipe decide testar se estes dois campos são entradas relevantes para o modelo de classificação:

  • totals.bounces (se o visitante saiu do site imediatamente)
  • totals.timeOnSite (quanto tempo o visitante ficou no site)

Pergunta: Quais são os riscos de usar somente os dois campos acima?

Resposta: O desempenho do aprendizado de máquina depende dos dados de treinamento que ele recebe. Se não houver informações suficientes para o modelo determinar e aprender a relação entre os recursos da entrada e o rótulo (nesse caso, se o visitante fez uma compra mais tarde), o modelo não será preciso. Treinar um modelo somente com esses dois campos pode ser um primeiro passo, e você verá se eles são bons o suficiente para produzir um modelo preciso.

No Editor do BigQuery, execute a seguinte consulta:

SELECT
  * EXCEPT(fullVisitorId)
FROM
  # features
  (SELECT
    fullVisitorId,
    IFNULL(totals.bounces, 0) AS bounces,
    IFNULL(totals.timeOnSite, 0) AS time_on_site
  FROM
    `data-to-insights.ecommerce.web_analytics`
  WHERE
    totals.newVisits = 1)
  JOIN
  (SELECT
    fullvisitorid,
    IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
  FROM
      `data-to-insights.ecommerce.web_analytics`
  GROUP BY fullvisitorid)
  USING (fullVisitorId)
ORDER BY time_on_site DESC
LIMIT 10;

Resultados:

Row

bounces

time_on_site

will_buy_on_return_visit

1

0

15.047

0

2

0

12.136

0

3

0

11.201

0

4

0

10.046

0

5

0

9.974

0

6

0

9.564

0

7

0

9.520

0

8

0

9.275

1

9

0

9.138

0

10

0

8.872

0

Pergunta: Quais campos representam os recursos de entrada e o rótulo?

Resposta: As entradas são representadas por bounces e time_on_site, e o rótulo por will_buy_on_return_visit.

Pergunta: Quais dois campos são conhecidos após a primeira sessão de um visitante?

Resposta: bounces e time_on_site são conhecidos após a primeira sessão do visitante.

Pergunta: Qual campo não é conhecido até uma visita futura?

Resposta: will_buy_on_return_visit não é conhecido após a primeira visita. É importante lembrar que você está prevendo um subconjunto de usuários que retornaram ao seu site e fizeram compras. Como não há informações futuras no momento da previsão, você não tem certeza se um novo visitante voltará para fazer compras. Criar um modelo de ML é útil para saber a probabilidade de compras futuras com base nos dados recebidos na primeira sessão.

Pergunta: Depois de analisar os resultados dos dados iniciais, você acha que time_on_site e bounces serão bons indicadores da possibilidade de o usuário retornar e fazer compras no site?

Resposta: Geralmente, é preciso treinar e avaliar o modelo antes de afirmar isso. No entanto, com base nos 10 maiores valores de time_on_site, somente um cliente voltou para comprar, o que não é muito promissor. Vamos ver como será o desempenho do modelo.

Crie um conjunto de dados do BigQuery para armazenar modelos

Em seguida, crie um novo conjunto de dados do BigQuery que também armazenará seus modelos de ML.

  1. No painel esquerdo, na seção Explorer, clique no ícone Visualizar ações ao lado do nome do projeto (começa com qwiklabs-gcp-...) e clique em Criar conjunto de dados.

Create_Dataset1.png

  1. Na caixa de diálogo Criar conjunto de dados:

  • Em ID do conjunto de dados, digite "ecommerce".
  • Mantenha os outros valores padrão.

dataset_name1.png

  1. Clique em Criar conjunto de dados.

Clique em Verificar meu progresso para conferir o objetivo.

Crie um novo conjunto de dados

Selecione um tipo de modelo do BQML e especifique as opções

Agora que você selecionou os atributos iniciais, já pode criar o primeiro modelo de ML no BigQuery.

Há dois tipos de modelos para escolher:

Modelo

Tipo de modelo

Tipo de dados de rótulo

Exemplo

Previsão

linear_reg

Valor numérico (normalmente um número inteiro ou ponto flutuante)

Previsão de valores de vendas para o próximo ano, com base nos dados históricos das vendas.

Classificação

logistic_reg

0 ou 1 para classificação binária

Classificar um e-mail como spam ou não spam, de acordo com o contexto.

Observação: há vários tipos de modelos adicionais usados no aprendizado de máquina (como redes neurais e árvores de decisão) e estão disponíveis em bibliotecas como o TensorFlow. No momento da escrita,o BQML suporta os dois listados acima.

Qual tipo de modelo você deve escolher?

Já que você está dividindo os visitantes em "comprará no futuro" ou "não comprará no futuro", use logistic_reg em um modelo de classificação.

A consulta a seguir cria um modelo e especifica as opções dele. Execute esta consulta para treinar seu modelo:

CREATE OR REPLACE MODEL `ecommerce.classification_model`
OPTIONS
(
model_type='logistic_reg',
labels = ['will_buy_on_return_visit']
)
AS
#standardSQL
SELECT
  * EXCEPT(fullVisitorId)
FROM
  # features
  (SELECT
    fullVisitorId,
    IFNULL(totals.bounces, 0) AS bounces,
    IFNULL(totals.timeOnSite, 0) AS time_on_site
  FROM
    `data-to-insights.ecommerce.web_analytics`
  WHERE
    totals.newVisits = 1
    AND date BETWEEN '20160801' AND '20170430') # train on first 9 months
  JOIN
  (SELECT
    fullvisitorid,
    IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
  FROM
      `data-to-insights.ecommerce.web_analytics`
  GROUP BY fullvisitorid)
  USING (fullVisitorId)
;

Aguarde o modelo ser treinado (5 a 10 minutos).

Clique em Verificar meu progresso para conferir o objetivo.

Crie um modelo e especifique as opções correspondentes

Após treinar o modelo, você verá a mensagem "Essa declaração criou um novo modelo chamado qwiklabs-gcp-xxxxxxxxx:ecommerce.classification_model".

Clique em Ir para o modelo.

Para confirmar que o modelo foi criado, procure classification_model no conjunto de dados.

Classification_model1.png

Agora, verifique o desempenho do modelo com os novos dados de avaliação.

Avalie o desempenho do modelo de classificação

Selecione os critérios de desempenho

Para resolver problemas de classificação no ML, é preciso reduzir a taxa de falso positivo (previsão de compras que não acontecem) e aumentar a taxa de verdadeiro positivo (previsão de compras que acontecem).

É possível visualizar essa relação com uma Curva ROC como esta mostrada aqui, em que o objetivo é maximizar a área sob a curva ou AUC:

42fc12b6077e4784.png

No BQML, roc_auc é apenas um campo que pode ser consultado durante a avaliação do seu modelo de ML treinado.

Agora que o treinamento terminou, execute a consulta abaixo para avaliar o desempenho do modelo usando ML.EVALUATE:

SELECT
  roc_auc,
  CASE
    WHEN roc_auc > .9 THEN 'good'
    WHEN roc_auc > .8 THEN 'fair'
    WHEN roc_auc > .7 THEN 'decent'
    WHEN roc_auc > .6 THEN 'not great'
  ELSE 'poor' END AS model_quality
FROM
  ML.EVALUATE(MODEL ecommerce.classification_model,  (
SELECT
  * EXCEPT(fullVisitorId)
FROM
  # features
  (SELECT
    fullVisitorId,
    IFNULL(totals.bounces, 0) AS bounces,
    IFNULL(totals.timeOnSite, 0) AS time_on_site
  FROM
    `data-to-insights.ecommerce.web_analytics`
  WHERE
    totals.newVisits = 1
    AND date BETWEEN '20170501' AND '20170630') # eval on 2 months
  JOIN
  (SELECT
    fullvisitorid,
    IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
  FROM
      `data-to-insights.ecommerce.web_analytics`
  GROUP BY fullvisitorid)
  USING (fullVisitorId)
));

Você verá o seguinte resultado:

Row

roc_auc

model_quality

1

0,724588

decent

Depois de avaliar seu modelo, você recebe um roc_auc de 0,72, que indica um poder preditivo adequado, mas não ótimo. Como a meta é deixar a área sob a curva o mais próximo possível de 1, é possível aprimorar o modelo.

Clique em Verificar meu progresso para conferir o objetivo.

Avalie o desempenho do modelo de classificação

Melhore o desempenho do modelo com a engenharia de atributos

Como já mencionamos, há muito mais recursos no conjunto de dados que podem ajudar o modelo a entender melhor a relação entre a primeira sessão de um visitante e a probabilidade de compra em uma próxima visita.

Adicione alguns recursos novos e crie um segundo modelo de machine learning chamado classification_model_2:

  • A etapa do processo de compra atingida pelo visitante na primeira visita
  • A origem do visitante (fonte de tráfego: pesquisa orgânica, site de referência etc.)
  • A categoria do dispositivo (dispositivo móvel, tablet ou computador)
  • As informações geográficas (país)

Crie este segundo modelo clicando em REALIZAR UMA NOVA CONSULTA:

CREATE OR REPLACE MODEL `ecommerce.classification_model_2`
OPTIONS
  (model_type='logistic_reg', labels = ['will_buy_on_return_visit']) AS
WITH all_visitor_stats AS (
SELECT
  fullvisitorid,
  IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
  FROM `data-to-insights.ecommerce.web_analytics`
  GROUP BY fullvisitorid
)
# add in new features
SELECT * EXCEPT(unique_session_id) FROM (
  SELECT
      CONCAT(fullvisitorid, CAST(visitId AS STRING)) AS unique_session_id,
      # labels
      will_buy_on_return_visit,
      MAX(CAST(h.eCommerceAction.action_type AS INT64)) AS latest_ecommerce_progress,
      # behavior on the site
      IFNULL(totals.bounces, 0) AS bounces,
      IFNULL(totals.timeOnSite, 0) AS time_on_site,
      IFNULL(totals.pageviews, 0) AS pageviews,
      # where the visitor came from
      trafficSource.source,
      trafficSource.medium,
      channelGrouping,
      # mobile or desktop
      device.deviceCategory,
      # geographic
      IFNULL(geoNetwork.country, "") AS country
  FROM `data-to-insights.ecommerce.web_analytics`,
     UNNEST(hits) AS h
    JOIN all_visitor_stats USING(fullvisitorid)
  WHERE 1=1
    # only predict for new visits
    AND totals.newVisits = 1
    AND date BETWEEN '20160801' AND '20170430' # train 9 months
  GROUP BY
  unique_session_id,
  will_buy_on_return_visit,
  bounces,
  time_on_site,
  totals.pageviews,
  trafficSource.source,
  trafficSource.medium,
  channelGrouping,
  device.deviceCategory,
  country
);

Um novo recurso importante adicionado à consulta do conjunto de dados de treinamento é a etapa máxima do processo de compra que cada visitante alcançou na sessão, registrada no campo hits.eCommerceAction.action_type. Ao pesquisar por esse campo nas definições de campo, você verá o mapeamento de "6 = Completed Purchase".

Aguarde a conclusão do treinamento do novo modelo (5 a 10 minutos).

Clique em Verificar meu progresso para conferir o objetivo.

Melhore o desempenho do modelo com a engenharia de atributos (crie um segundo modelo)

Avalie se ele tem um melhor poder de previsão:

#standardSQL
SELECT
  roc_auc,
  CASE
    WHEN roc_auc > .9 THEN 'good'
    WHEN roc_auc > .8 THEN 'fair'
    WHEN roc_auc > .7 THEN 'decent'
    WHEN roc_auc > .6 THEN 'not great'
  ELSE 'poor' END AS model_quality
FROM
  ML.EVALUATE(MODEL ecommerce.classification_model_2,  (
WITH all_visitor_stats AS (
SELECT
  fullvisitorid,
  IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
  FROM `data-to-insights.ecommerce.web_analytics`
  GROUP BY fullvisitorid
)
# add in new features
SELECT * EXCEPT(unique_session_id) FROM (
  SELECT
      CONCAT(fullvisitorid, CAST(visitId AS STRING)) AS unique_session_id,
      # labels
      will_buy_on_return_visit,
      MAX(CAST(h.eCommerceAction.action_type AS INT64)) AS latest_ecommerce_progress,
      # behavior on the site
      IFNULL(totals.bounces, 0) AS bounces,
      IFNULL(totals.timeOnSite, 0) AS time_on_site,
      totals.pageviews,
      # where the visitor came from
      trafficSource.source,
      trafficSource.medium,
      channelGrouping,
      # mobile or desktop
      device.deviceCategory,
      # geographic
      IFNULL(geoNetwork.country, "") AS country
  FROM `data-to-insights.ecommerce.web_analytics`,
     UNNEST(hits) AS h
    JOIN all_visitor_stats USING(fullvisitorid)
  WHERE 1=1
    # only predict for new visits
    AND totals.newVisits = 1
    AND date BETWEEN '20170501' AND '20170630' # eval 2 months
  GROUP BY
  unique_session_id,
  will_buy_on_return_visit,
  bounces,
  time_on_site,
  totals.pageviews,
  trafficSource.source,
  trafficSource.medium,
  channelGrouping,
  device.deviceCategory,
  country
)
));

(Saída)

Row

roc_auc

model_quality

1

0,910382

good

Com o novo modelo, você recebe um roc_auc de 0,91, significativamente melhor do que o primeiro.

Agora que você tem um modelo treinado, é hora de fazer algumas previsões.

Clique em Verificar meu progresso para conferir o objetivo.

Melhore o desempenho do modelo com a engenharia de atributos (maior poder de previsão)

Preveja quais novos visitantes voltarão e farão compras

Você escreverá uma consulta para prever quais novos visitantes voltarão e farão uma compra no site.

A consulta de predição abaixo usa o modelo de classificação aprimorado para prever a probabilidade de um visitante novo da Google Merchandise Store fazer uma compra em um acesso futuro.

SELECT
*
FROM
  ml.PREDICT(MODEL `ecommerce.classification_model_2`,
   (
WITH all_visitor_stats AS (
SELECT
  fullvisitorid,
  IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
  FROM `data-to-insights.ecommerce.web_analytics`
  GROUP BY fullvisitorid
)
  SELECT
      CONCAT(fullvisitorid, '-',CAST(visitId AS STRING)) AS unique_session_id,
      # labels
      will_buy_on_return_visit,
      MAX(CAST(h.eCommerceAction.action_type AS INT64)) AS latest_ecommerce_progress,
      # behavior on the site
      IFNULL(totals.bounces, 0) AS bounces,
      IFNULL(totals.timeOnSite, 0) AS time_on_site,
      totals.pageviews,
      # where the visitor came from
      trafficSource.source,
      trafficSource.medium,
      channelGrouping,
      # mobile or desktop
      device.deviceCategory,
      # geographic
      IFNULL(geoNetwork.country, "") AS country
  FROM `data-to-insights.ecommerce.web_analytics`,
     UNNEST(hits) AS h
    JOIN all_visitor_stats USING(fullvisitorid)
  WHERE
    # only predict for new visits
    totals.newVisits = 1
    AND date BETWEEN '20170701' AND '20170801' # test 1 month
  GROUP BY
  unique_session_id,
  will_buy_on_return_visit,
  bounces,
  time_on_site,
  totals.pageviews,
  trafficSource.source,
  trafficSource.medium,
  channelGrouping,
  device.deviceCategory,
  country
)
)
ORDER BY
  predicted_will_buy_on_return_visit DESC;

As previsões são feitas no último mês (de 12) do conjunto de dados.

Clique em Verificar meu progresso para conferir o objetivo.

Preveja quais novos visitantes voltarão e farão compras

Agora, o modelo mostra previsões para as sessões de comércio eletrônico em julho de 2017. Veja que três novos campos foram adicionados:

  • predicted_will_buy_on_return_visit: indica se o modelo entende que o visitante comprará mais tarde (1 = sim).
  • predicted_will_buy_on_return_visit_probs.label: é o classificador binário para sim / não
  • predicted_will_buy_on_return_visit.prob: indica a confiança do modelo na previsão (1 = 100%).

QueryResult1.png

Resultados

  • Entre os primeiros 6% dos visitantes novos (classificados em ordem decrescente de probabilidade prevista), mais de 6% fazem uma compra em uma visita posterior.

  • Esses usuários representam quase 50% de todos os visitantes novos que compram em visitas futuras.

  • No geral, apenas 0,7% dos visitantes novos fazem uma compra em uma próxima visita.

  • Segmentar os primeiros 6% dos visitantes novos aumenta o ROI de marketing nove vezes mais do que segmentar todos eles.

Mais informações

Dica: ao treinar seu modelo com novos dados, adicione warm_start = true às opções dele para reduzir o tempo de treinamento. Não é possível alterar as colunas de atributos. Isso exigiria a criação de um novo modelo.

roc_auc é apenas uma das métricas de desempenho disponíveis durante a avaliação do modelo. Acurácia, precisão e recall também estão disponíveis. A métrica de desempenho a ser usada dependerá muito do seu objetivo geral.

Outros conjuntos de dados para analisar

Se quiser saber mais sobre a criação de modelos em outros conjuntos de dados, como na previsão de tarifas para corridas de táxi, use o link abaixo e acesse o projeto bigquery-public-data:

Teste seus conhecimentos

Faça nosso teste para avaliar o quanto você sabe sobre o Google Cloud Platform.

Parabéns!

Você criou um modelo de ML no BigQuery para classificar visitantes de comércio eletrônico.

completion_badge_Data_Engineering-135.png completion_badge_BigQuery_for_Machine_Learning-1355.png completion_badge_BQML_for_Machine_Learning-135.png

Termine a Quest

Este laboratório autoguiado faz parte das Quests, Data Engineering , BigQuery for Machine Learning e Applying BQML's Classification, Regression, and Demand Forecasting for Retail Applications do Qwiklabs. Uma Quest é uma série de laboratórios relacionados que formam o programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. Publique os selos e inclua um link para eles no seu currículo on-line ou nas mídias sociais. Inscreva-se em uma Quest e ganhe créditos de conclusão se você já tiver feito este laboratório. Veja outras Quests do Qwiklabs.

Próximas etapas / Saiba mais

Treinamento e certificação do Google Cloud

...ajuda você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações ajudam você a validar e comprovar suas habilidades e conhecimentos das tecnologias do Google Cloud.

Manual atualizado em 28 de abril de 2022
Laboratório testado 28 de abril de 2022

Copyright 2020 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.