arrow_back

Preveja as compras dos visitantes usando um modelo de classificação no BigQuery ML

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Preveja as compras dos visitantes usando um modelo de classificação no BigQuery ML

Lab 1 hora 15 minutos universal_currency_alt No cost show_chart Intermediário
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP229

Laboratórios autoguiados do Google Cloud

Visão geral

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

O BigQuery Machine Learning (BigQuery ML) é um novo recurso do BigQuery usado por analistas de dados para criar, treinar, avaliar e fazer previsões usando modelos de machine learning com o mínimo de programação.

Neste laboratório, você vai usar um conjunto especial de dados de e-commerce com milhões de registros do Google Analytics para o Google Merchandise Store carregados no BigQuery. Você vai executar algumas consultas comuns usando esses dados para encontrar informações sobre hábitos de compra dos clientes que sejam relevantes para empresas.

Conteúdo

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

  • Usar o BigQuery para localizar conjuntos de dados públicos
  • Consultar e analisar o conjunto de dados de e-commerce
  • Criar um conjunto de dados de treinamento e avaliação e usá-lo para fazer previsões em lote
  • Criar um modelo de classificação (regressão logística) no BigQuery ML
  • Avaliar o desempenho do seu modelo de machine learning
  • Prever e classificar a probabilidade de um visitante fazer uma compra

Configurar

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 vão ficar disponíveis.

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

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

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

  1. No painel Explorer, clique em +ADICIONAR.

O painel Adicionar dados será exibido.

  1. Clique em Marcar um projeto com estrela por nome em Outras fontes.

  2. Digite data-to-insights e clique em Marcar com estrela.

Painel de projetos do BigQuery

Clique no link abaixo para visualizar o projeto público data-to-insights:

Confira as definições de campo do conjunto de dados de e-commerce data-to-insights nesta seção. Mantenha esse link aberto em outra guia para consulta.

Clique na guia Consulta e selecione Em uma nova guia para abrir o editor de consultas.

Tarefa 1: analisar os dados de e-commerce

Cenário: sua equipe de analistas de dados exportou para o BigQuery os registros do Google Analytics referentes a um site de e-commerce 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?

  1. Copie e cole a consulta abaixo no Editor 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
  1. Clique em Executar.

Resultado: 2,69%

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

  1. Limpe a consulta anterior e adicione esta 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;
  1. Clique em Executar.

Resultado:

Row

v2ProductName

v2ProductCategory

units_sold

revenue

1

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

Nest-USA

17651

870976.95

2

Nest® Cam Outdoor Security Camera - USA

Nest-USA

16930

684034.55

3

Nest® Cam Indoor Security Camera - USA

Nest-USA

14155

548104.47

4

Nest® Protect Smoke + CO White Wired Alarm-USA

Nest-USA

6394

178937.6

5

Nest® Protect Smoke + CO White Battery Alarm-USA

Nest-USA

6340

178572.4

Pergunta: quantos visitantes fizeram compras em acessos posteriores ao site?

  1. Limpe a consulta anterior e adicione esta no Editor:
# 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
  1. Clique em Executar.

Resultados:

Row

total_visitors

will_buy_on_return_visit

1

729848

0

2

11873

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 e-commerce 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 e-commerce 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 e promover os produtos para eles vai aumentar as taxas de conversão e reduzir o número de visitas a sites concorrentes.

Tarefa 2: identificar um objetivo

Agora, você criará um modelo de machine learning 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 exibir promoções especiais e campanhas publicitárias para eles. Essa abordagem pode garantir uma conversão entre uma visita e outra ao site de e-commerce, quando os usuários estiverem comparando os produtos.

Tarefa 3: selecionar atributos e criar seu conjunto de dados de treinamento

O Google Analytics captura várias dimensões e medidas sobre a visita de um usuário ao site de e-commerce. Confira a lista completa de campos na documentação [UA] Esquema do BigQuery Export e exiba o conjunto de dados de demonstração para encontrar atributos úteis que vão ajudar 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 retorno 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 de machine learning 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 começo, e você vai conferir 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

15047

0

2

0

12136

0

3

0

11201

0

4

0

10046

0

5

0

9974

0

6

0

9564

0

7

0

9520

0

8

0

9275

1

9

0

9138

0

10

0

8872

0

Pergunta: quais campos representam os atributos de entrada e o rótulo?

Resposta: as entradas são representadas por bounces e time_on_site. O rótulo é 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 conferir como será o desempenho do modelo.

Tarefa 4: criar um conjunto de dados do BigQuery para armazenar modelos

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

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

Seção Explorer

  1. Na caixa de diálogo Criar conjunto de dados, siga estas instruções:
  • Em ID do conjunto de dados, digite "ecommerce".
  • Mantenha os outros valores padrão.
  1. Clique em Criar conjunto de dados.

Clique em Verificar meu progresso para conferir o objetivo.

Criar um novo conjunto de dados

Tarefa 5: selecionar um tipo de modelo do BigQuery ML e especificar 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)

Prever os 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: vários outros tipos de modelo usados em machine learning, como redes neurais e árvores de decisão, estão disponíveis em bibliotecas como o TensorFlow. No momento em que este artigo foi escrito, o BigQuery ML oferecia suporte aos 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.

  1. 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) ;
  1. Aguarde o modelo ser treinado (5 a 10 minutos).
Observação: não é possível incluir todos os dados disponíveis no modelo durante o treinamento, porque é preciso salvar alguns pontos de dados que não foram consultados para fins de avaliação e teste. Adicione uma condição da cláusula WHERE que esteja sendo usada para filtrar e treinar somente com base nos primeiros nove meses de dados da sessão no conjunto de dados de doze meses.

Clique em Verificar meu progresso para conferir o objetivo.

Criar um modelo e especificar as opções correspondentes

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

  1. Clique em Ir para o modelo.

  2. Para confirmar que o modelo foi criado, procure classification_model no conjunto de dados de e-commerce.

Conjunto de dados de ecommerce

Em seguida, você vai avaliar o desempenho do modelo com novos dados de avaliação.

Tarefa 6: avaliar o desempenho do modelo de classificação

Selecionar 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 conferir essa relação com uma Curva ROC como a mostrada abaixo, em que o objetivo é maximizar a área sob a curva (ou AUC):

Curva ROC

No BigQuery ML, roc_auc é apenas um campo para consulta 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) ));

O seguinte resultado será exibido:

Row

roc_auc

model_quality

1

0.7238561438561438

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

Tarefa 7: melhorar o desempenho do modelo com a engenharia de atributos

Como já mencionamos, há muito mais atributos 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.

  1. Adicione alguns atributos 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 (origem do tráfego: pesquisa orgânica, site de referência etc.)
  • A categoria do dispositivo (smartphone, tablet ou computador)
  • As informações geográficas (país)
  1. Para criar esse segundo modelo, clique no ícone "+" (Criar 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 ); Observação: você continua treinando o novo modelo com os dados dos primeiros nove meses. É importante usar o mesmo conjunto de dados de treinamento para garantir que a melhora na saída do modelo se deve ao fato de que os atributos de entrada estão mais eficientes, e não que os dados de treinamento são novos ou diferentes.

Um novo atributo importante adicionado à consulta do conjunto de dados de treinamento é a etapa máxima do processo de finalização da compra que cada visitante alcançou na sessão, registrada no campo hits.eCommerceAction.action_type. Ao procurar esse campo nas definições de campo, você vai encontrar o mapeamento "6 = Compra realizada".

Observação: o conjunto de dados de análise da Web tem campos aninhados e repetidos, como ARRAYS, que precisam ser separados em linhas específicas. Isso é feito com a função UNNEST(), que você pode encontrar na consulta acima.
  1. Aguarde a conclusão do treinamento do novo modelo (5 a 10 minutos).

Clique em Verificar meu progresso para conferir o objetivo.

Melhorar o desempenho do modelo com a engenharia de atributos (criar um segundo modelo)
  1. Avalie se ele tem uma capacidade melhor 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.9094875124875125

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.

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

Tarefa 8: prever quais visitantes novos vão voltar e fazer compras

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

  • A consulta de previsã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 do conjunto de dados, dentro de um grupo de 12 meses.

Clique em Verificar meu progresso para conferir o objetivo.

Prever quais visitantes novos vão voltar e fazer compras

Agora, o modelo mostra previsões para as sessões de e-commerce 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.probs.prob: indica a confiança do modelo na previsão (1 = 100%)

Página com a guia Resultados da consulta

Tarefa 9. analisar resultados e informações adicionais

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 para acelerar o 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 projeto bigquery-public-data.

  1. Para abrir o conjunto de dados bigquery-public-data, clique em +Adicionar. Clique em Marcar um projeto com estrela por nome em Outras fontes.
  2. Em seguida, digite o nome bigquery-public-data.
  3. Clique em Marcar com estrela.

O projeto bigquery-public-data será listado na seção Explorer.

Tarefa 10: teste seus conhecimentos

Faça nosso teste para avaliar seus conhecimentos sobre o Google Cloud Platform.

Parabéns!

Você criou um modelo de ML no BigQuery para classificar visitantes de e-commerce.

Termine a Quest

Este laboratório autoguiado faz parte das Quests BigQuery for Machine Learning e Applying BigQuery ML's Classification, Regression, and Demand Forecasting for Retail Applications. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. É possível publicar os selos e incluir um link para eles no seu currículo on-line ou nas redes sociais. Inscreva-se em qualquer Quest que tenha este laboratório para receber os créditos de conclusão na mesma hora. Confira o catálogo do Google Cloud Ensina para ver todas as Quests disponíveis.

Comece o próximo laboratório

Próximas etapas / Saiba mais

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam 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 validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 9 de outubro de 2023

Laboratório testado em 9 de outubro de 2023

Copyright 2024 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.