8.1 Exploração e transformação de dados

Para criar um modelo de aprendizado de máquina que recomendará os produtos que os usuários possam desejar quando estiverem olhando para um produto específico, é necessário analisar as compras anteriores feitas por usuários no site. Nesta lição, você explorará o fluxo de dados de compra via Adobe Analytics para Plataforma e transformará esses dados em um conjunto de dados de recurso que pode ajudar a treinar seu modelo de aprendizado de máquina.

O URL para fazer logon no Adobe Experience Platform é: https://experience.adobe.com/platform

8.1.1 Explore os conjuntos de dados e os Schemas XDM

Os Modelos de dados de experiência (XDM) na Adobe Experience Platform ajudam a padronizar seus dados para que possam ser usados com eficiência em toda a organização.

Faça logon em Adobe Experience Platform.

Depois de fazer logon, você chegará na página inicial do Adobe Experience Platform.

Assimilação de dados

Antes de continuar, você precisa selecionar uma caixa de proteção. A caixa de proteção a ser selecionada é chamada de --aepSandboxId--. Você pode fazer isso clicando no texto Production Prod na linha azul na parte superior da tela.

Assimilação de dados

Depois de selecionar a caixa de proteção apropriada, você verá a tela mudar e agora está na sua caixa de proteção dedicada.

Assimilação de dados

No menu esquerdo, clique em Conjuntos de Dados.

DSW

Para desenvolver um modelo de aprendizado de máquina com recomendações de produto, estamos interessados em produtos que os usuários já compraram anteriormente com a Luma. Para simplificar os dados necessários para treinar nosso modelo de aprendizado de máquina, criamos um schema simples chamado Schema Recommendations Input, conforme descrito na tabela abaixo (campos chave: userid - o usuário que interagiu com o site Luma, carimbo de data e hora - hora da interação, interactiontype - Purchase, itemid - produto com o qual o usuário interagiu).

Neste tutorial, usaremos três conjuntos de dados:

Nome do conjunto de dados Esquema do conjunto de dados Descrição
Sistema de demonstração - Conjunto de dados do Evento para o site (Global v1.1) Sistema de demonstração - Conjunto de dados do Evento para o Schema do site (Global v1.1) Dados de sequência de cliques do site
Sistema de demonstração - Conjunto de dados do Evento para entrada do modelo Recommendations (Global v1.1) Sistema de demonstração - Schema do Evento para entrada do modelo Recommendations (Global v1.1) Os dados de sequência de cliques serão convertidos em um conjunto de dados de recursos/treinamento usando um pipeline de recursos. Esses dados são usados para treinar o modelo de aprendizado da máquina Recommendations do Produto. id de item e userid correspondem a um produto comprado por esse usuário no carimbo de data e hora
Sistema de demonstração - Conjunto de dados do Perfil para Previsões ML (Global v1.1) Sistema de demonstração - Schema de Perfil para Previsões ML (Global v1.1) SchemaEsse é o conjunto de dados que você obtém após a pontuação. Contém a lista de produtos recomendados para cada usuário

Vamos dar uma olhada no conjunto de dados Sistema de demonstração - Evento para site (Global v1.1).

Na página Conjuntos de dados -, digite Sistema de demonstração - Conjunto de dados do Evento para o site na caixa de pesquisa.

DSW

Abra o conjunto de dados Sistema de demonstração - Conjunto de dados do Evento para o site (Global v1.1).

DSW

Ao clicar no botão Conjunto de Dados de Pré-visualização, você pode ver quais dados são enviados para esse conjunto de dados e como o modelo de dados se parece. FYI - seus dados em seu conjunto de dados podem parecer diferentes. Isso é normal e esperado.

DSW

DSW

Feche a janela pré-visualização do conjunto de dados.

Vamos ver o schema que foi definido para este conjunto de dados.

No menu esquerdo, selecione Schemas.

DSW

Na visão geral dos Schemas, procure os 3 schemas que você usará neste laboratório.

Nome do schema
Sistema de demonstração - Schema do Evento para entrada do modelo Recommendations (Global v1.1)
Sistema de demonstração - Schema de Perfil para Previsões ML (Global v1.1)
Sistema de demonstração - Schema do Evento para o site (Global v1.1)

Clique para abrir o schema chamado Sistema de demonstração - Schema do Evento para o site (Global v1.1).

DSW

8.1.2 Notebooks abertos para Júpiter

Vamos sujar suas mãos agora, indo para Jupyter Notebooks.

No menu esquerdo, clique em Notebooks.

DSW

Clique em JupyterLab. Agora você verá o carregamento do JupyterLab. Isso pode levar de 1 a 2 minutos.

DSW

Assim que os notebooks de Júpiter estiverem em execução, você poderá continuar com a próxima etapa.

DSW

8.1.3 Transformar dados de sequência de cliques

Notebooks Júpiter estão sendo executados para que você possa start o processo de construção do seu notebook e adicionar o código necessário para transformar dados de sequência de cliques em um conjunto de dados utilizável pronto para treinamento.

DSW

Em Notebooks de Júpiter, abra um notebook em branco Python 3 clicando no botão em branco no Iniciador.

DSW

Você terá um novo notebook Python 3 vazio. Antes de continuar, dê um nome descritivo ao seu bloco de anotações. Clique com o botão direito do mouse no arquivo Untitled.ipynb e clique em Renomear.

DSW

Digite luma-Recomendações-feature-transformation.ipynb como o nome do seu notebook e pressione Enter. Você terá isto:

DSW

O que você fará em seguida:

  • Definir os conjuntos de dados de entrada e saída para este Bloco de Notas
  • Ler plataforma de formulário: Carregue o conjunto de dados de entrada e descreva-o
  • Filtrar valores vazios
  • Dividir o item_id em registros individuais
  • Crie um novo quadro de dados que armazene os dados necessários para o nosso modelo
  • Gravar na plataforma: Coloque esse quadro de dados em um conjunto de dados no Adobe Experience Platform

Definir os conjuntos de dados de entrada e saída para este Bloco de Notas

Clique na primeira célula do bloco de anotações.

DSW

Copie o código abaixo e cole-o na primeira célula do seu notebook.

import pandas as pd

inputDataset="--aepWebsiteInteractionsDatasetId--" # Demo System - Event Dataset for Website (Global v1.1) Dataset
outputDataset="--aepRecommendationsInputDatasetId--" # Demo System - Event Dataset for Recommendations Model Input (Global v1.1)
tenant_id = "--aepTenantId--"
item_id = "web.webPageDetails.name"
interactionType = "eventType"
user_id = "--aepTenantId--.identification.core.ecid"
brand_name = "--aepTenantId--.demoEnvironment.brandName"
timestamp = "timestamp"
idcolumn = "_id"

client_context = PLATFORM_SDK_CLIENT_CONTEXT
IMPORTANTE

As variáveis de ambiente aepWebsiteInteractionsDatasetId e aepRecommendationsInputDatasetId referem-se às IDs de conjuntos de dados que foram criados na sua instância do Adobe Experience Platform.

aepWebsiteInteractionsDatasetIdrefere-se à ID do conjunto de dados do Sistema de demonstração do conjunto de dados - Conjunto de dados do Evento para o site (Global v1.1), ​aepRecommendationsInputDatasetIdrefere-se à ID do conjunto de dados do Sistema de demonstração do conjunto de dados - Conjunto de dados do Evento para Entrada do Modelo Recommendations (Global v1.1))… Substitua as variáveis do ambiente pelas IDs do conjunto de dados ao colar o código na primeira célula do bloco de anotações.

Você terá isso na célula 1:

DSW

Clique no botão play para executar esta célula.

DSW

A execução desta célula pode levar alguns segundos a minutos. Espere e não faça mais nada neste caderno até que você obtenha o resultado abaixo.

Toda vez que você pressionar o botão play para executar uma célula, você verá um indicador que informa se sua ação ainda está em andamento ou não.

Este é o indicador quando você pressiona o botão Reproduzir para executar uma célula:

DSW

Este é o indicador quando a célula é executada e a ação é concluída:

DSW

Não continue os exercícios até que o indicador mostre que a execução está concluída. Se você não esperar o término da sua execução, você ficará preso e receberá muitos erros nas próximas etapas. Isso se aplica à execução de todas as células em qualquer notebook Júpiter: aguarde sempre até que a execução seja concluída e você verá o indicador mudar e ficar assim:

DSW

Não há resultado visual após a execução da célula 1. Depois de clicar no botão Play, prossiga para a próxima etapa.

Leia da plataforma: Carregar o conjunto de dados de entrada e mostrar uma visão geral dos dados

Clique na próxima célula vazia do bloco de anotações.

DSW

Copie o código abaixo e cole-o na próxima célula vazia do seu notebook.

from platform_sdk.dataset_reader import DatasetReader

dataset_reader = DatasetReader(client_context, inputDataset)
df = dataset_reader.limit(1000).read()
df.head()

Então você terá isso naquela célula:

DSW

Clique no botão play para executar esta célula.

A execução desta célula pode levar de 1 a 2 minutos. Espere e não faça mais nada neste caderno até que você obtenha o resultado abaixo.

DSW

Aguarde até que o indicador fique assim antes de continuar:

DSW

O resultado será semelhante a este (mas não será idêntico - talvez você tenha mais ou menos dados disponíveis na sua instância do Adobe Experience Platform):

DSW

Filtrar valores vazios e selecionar dados para Luma de marca

Clique na próxima célula vazia do bloco de anotações.

DSW

Copie o código abaixo e cole-o na próxima célula vazia do seu notebook.

# drop nulls
df = df.dropna(subset=[user_id, item_id, interactionType, brand_name])

# only focus on one brand
df = df[df[brand_name].isin(["Luma", "Luma Retail"])]

# filter out product views
df = df[df[interactionType].isin(["commerce.productViews"])]

Então você terá isso naquela célula:

DSW

Clique no botão play para executar esta célula.

DSW

Aguarde até que o indicador fique assim antes de continuar:

DSW

Não há resultado visual após essa execução. Depois de clicar no botão Play, prossiga para a próxima etapa.

Dividir os itens em registros individuais

Clique na próxima célula vazia do bloco de anotações.

DSW

Copie o código abaixo e cole-o na próxima célula vazia do seu notebook.

# vectorized (no loops) solution for splitting in pandas
# source: https://stackoverflow.com/a/48120674
def split_df(dataframe, col_name, sep):
    orig_col_index = dataframe.columns.tolist().index(col_name)
    orig_index_name = dataframe.index.name
    orig_columns = dataframe.columns
    dataframe = dataframe.reset_index()
    index_col_name = (set(dataframe.columns) - set(orig_columns)).pop()
    df_split = pd.DataFrame(
        pd.DataFrame(dataframe[col_name].str.split(sep).tolist())
        .stack().reset_index(level=1, drop=1), columns=[col_name])
    df = dataframe.drop(col_name, axis=1)
    df = pd.merge(df, df_split, left_index=True, right_index=True, how='inner')
    df = df.set_index(index_col_name)
    df.index.name = orig_index_name

    return df

df2 = split_df(df, item_id, "\|\|")

Então você terá isso naquela célula:

DSW

Clique no botão play para executar esta célula.

DSW

A execução desta célula pode levar de 1 a 2 minutos. Espere e não faça mais nada neste caderno até que você obtenha o resultado abaixo.

Aguarde até que o indicador fique assim antes de continuar:

DSW

Não há resultado visual após essa execução. Depois de clicar no botão Play, prossiga para a próxima etapa.

Prepare os dados antes de salvá-los novamente no Adobe Experience Platform

Clique na próxima célula vazia do bloco de anotações.

DSW

Copie o código abaixo e cole-o na próxima célula vazia do seu notebook.

filtered_column_list = [idcolumn, item_id, user_id, interactionType, brand_name, timestamp]

df2 = df2[filtered_column_list]

df2.rename(columns={
    item_id: tenant_id + ".recommendationsInput" + ".productSku",
    user_id: tenant_id + ".recommendationsInput" + ".ecid",
    interactionType: tenant_id + ".recommendationsInput" + ".interactionType",
    brand_name: tenant_id + ".recommendationsInput" + ".brandName"
}, inplace=True)

Então você terá isso naquela célula:

DSW

Clique no botão play para executar esta célula.

DSW

A execução desta célula pode levar de 1 a 2 minutos. Espere e não faça mais nada neste caderno até que você obtenha o resultado abaixo.

Aguarde até que o indicador fique assim antes de continuar:

DSW

Não há resultado visual após essa execução. Depois de clicar no botão Play, prossiga para a próxima etapa.

Gravar na plataforma: Coloque esse quadro de dados em um conjunto de dados no Adobe Experience Platform

Clique na próxima célula vazia do bloco de anotações.

DSW

Copie o código abaixo e cole-o na próxima célula vazia do seu notebook.

df2.head()

Então você terá isso naquela célula:

DSW

Clique no botão play para executar esta célula.

DSW

Aguarde até que o indicador fique assim antes de continuar:

DSW

O resultado é o seguinte:

DSW

Clique na próxima célula vazia do bloco de anotações.

DSW

Copie o código abaixo e cole-o na próxima célula vazia do seu notebook.

df2['timestamp'] = pd.to_datetime(df2['timestamp']).apply(lambda x: x.isoformat())

from platform_sdk.models import Dataset
from platform_sdk.dataset_writer import DatasetWriter
dataset = Dataset(PLATFORM_SDK_CLIENT_CONTEXT).get_by_id(dataset_id=outputDataset)
dataset_writer = DatasetWriter(PLATFORM_SDK_CLIENT_CONTEXT, dataset)
write_tracker = dataset_writer.write(df2, file_format='json')

Então você terá isso naquela célula:

DSW

Clique no botão play para executar esta célula.

DSW

Aguarde até que o indicador fique assim antes de continuar:

DSW

O resultado é o seguinte:

DSW

O resultado na Adobe Experience Platform é que um novo lote de dados foi criado no Sistema de demonstração - Conjunto de dados do Evento para a entrada do modelo Recommendations (Global v1.1), que você pode verificar indo
here.

DSW

DSW

Próxima etapa: 8.2 - Criação e operacionalização do modelo

Voltar ao módulo 8

Voltar para todos os módulos

Nesta página