A capacidade de prever que um determinado cliente corre um alto risco de abandono, enquanto ainda há tempo para fazer algo a respeito, representa uma enorme fonte potencial de receita para todos os negócios on-line. Dependendo do objetivo da indústria e do negócio, a declaração do problema pode ter várias camadas. A seguir estão alguns objetivos de negócios com base nessa estratégia:
Esta postagem discute como você pode orquestrar um modelo de previsão de rotatividade de ponta a ponta em cada etapa: preparação de dados, experimentação com um modelo de linha de base e otimização de hiperparâmetros (HPO), treinamento e ajuste e registro do melhor modelo. Você pode gerenciar seu Amazon Sage Maker fluxos de trabalho de treinamento e inferência usando Estúdio Amazon SageMaker e o SageMaker Python SDK. O SageMaker oferece todas as ferramentas necessárias para criar soluções de ciência de dados de alta qualidade.
O SageMaker ajuda cientistas de dados e desenvolvedores a preparar, construir, treinar e implantar modelos de aprendizado de máquina (ML) de alta qualidade rapidamente, reunindo um amplo conjunto de recursos desenvolvidos especificamente para ML.
O Studio fornece uma interface visual única baseada na Web, na qual você pode executar todas as etapas de desenvolvimento de ML, melhorando a produtividade da equipe de ciência de dados em até 10 vezes.
Pipelines Amazon SageMaker é uma ferramenta para criar pipelines de ML que aproveita a integração direta do SageMaker. Com o Pipelines, você pode automatizar facilmente as etapas de criação de um modelo de ML, catalogar modelos no registro do modelo e usar um dos vários modelos fornecidos no SageMaker Projects para configurar a integração contínua e a entrega contínua (CI/CD) de ponta a ponta. -fim do ciclo de vida de ML em escala.
Depois que o modelo é treinado, você pode usar Esclarecimento do Amazon SageMaker para identificar e limitar o viés e explicar as previsões às partes interessadas nos negócios. Você pode compartilhar esses relatórios automatizados com as equipes técnicas e de negócios para campanhas de destino downstream ou para determinar os recursos que são os principais diferenciadores do valor da vida útil do cliente.
Ao final desta postagem, você deve ter informações suficientes para usar com êxito esse modelo de ponta a ponta usando Pipelines para treinar, ajustar e implantar seu próprio caso de uso de análise preditiva. As instruções completas estão disponíveis no GitHub repo.
Nesta solução, seu ponto de entrada é o ambiente de desenvolvimento integrado (IDE) do Studio para experimentação rápida. O Studio oferece um ambiente para gerenciar a experiência completa do Pipelines. Com o Studio, você pode ignorar o Console de gerenciamento da AWS para todo o seu gerenciamento de fluxo de trabalho. Para obter mais informações sobre como gerenciar pipelines do Studio, consulte Visualize, rastreie e execute pipelines do SageMaker no SageMaker Studio.
O diagrama a seguir ilustra a arquitetura de alto nível do fluxo de trabalho de ciência de dados.
Depois de criar o domínio do Studio, selecione seu nome de usuário e escolha Estúdio Aberto. Abre-se um IDE baseado na Web que permite armazenar e coletar tudo o que você precisa, seja código, blocos de anotações, conjuntos de dados, configurações ou pastas de projeto.
O Pipelines é integrado diretamente ao SageMaker, portanto, você não precisa interagir com nenhum outro serviço da AWS. Você também não precisa gerenciar nenhum recurso porque o Pipelines é um serviço totalmente gerenciado, o que significa que ele cria e gerencia recursos para você. Para obter mais informações sobre os vários componentes do SageMaker que são APIs independentes do Python junto com componentes integrados do Studio, consulte o página de serviço do SageMaker.
Para este caso de uso, você usa os seguintes componentes para o processo de desenvolvimento de modelo totalmente automatizado:
Um pipeline do SageMaker é uma série de etapas interconectadas definidas por uma definição de pipeline JSON. Essa definição de pipeline codifica um pipeline usando um gráfico acíclico direcionado (DAG). Este DAG fornece informações sobre os requisitos e relacionamentos entre cada etapa do seu pipeline. A estrutura do DAG de um pipeline é determinada pelas dependências de dados entre as etapas. Essas dependências de dados são criadas quando as propriedades da saída de uma etapa são passadas como entrada para outra etapa.
Para esta postagem, nosso caso de uso é um problema clássico de ML que visa entender quais estratégias de marketing baseadas no comportamento do consumidor podemos adotar para aumentar a retenção de clientes em uma determinada loja de varejo. O diagrama a seguir ilustra o fluxo de trabalho de ML completo para o caso de uso de previsão de rotatividade.
Vamos analisar o processo de desenvolvimento de fluxo de trabalho de ML acelerado em detalhes.
Para acompanhar este post, você precisa baixar e salvar o amostra de conjunto de dados no padrão Serviço de armazenamento simples da Amazon (Amazon S3) associado à sua sessão do SageMaker e no bucket S3 de sua escolha. Para experimentação rápida ou construção de modelo de linha de base, você pode salvar uma cópia do conjunto de dados em seu diretório pessoal em Sistema de arquivos elástico da Amazon (Amazon EFS) e siga o notebook Jupyter Customer_Churn_Modeling.ipynb
.
A captura de tela a seguir mostra o conjunto de amostra com a variável de destino como 1 retido, se o cliente for considerado ativo ou 0, caso contrário.
Execute o seguinte código em um bloco de anotações do Studio para pré-processar o conjunto de dados e carregá-lo em seu próprio bucket do S3:
import boto3
import pandas as pd
import numpy as np ## Preprocess the dataset
def preprocess_data(file_path): df = pd.read_csv(file_path) ## Convert to datetime columns df["firstorder"]=pd.to_datetime(df["firstorder"],errors='coerce') df["lastorder"] = pd.to_datetime(df["lastorder"],errors='coerce') ## Drop Rows with null values df = df.dropna() ## Create Column which gives the days between the last order and the first order df["first_last_days_diff"] = (df['lastorder']-df['firstorder']).dt.days ## Create Column which gives the days between when the customer record was created and the first order df['created'] = pd.to_datetime(df['created']) df['created_first_days_diff']=(df['created']-df['firstorder']).dt.days ## Drop Columns df.drop(['custid','created','firstorder','lastorder'],axis=1,inplace=True) ## Apply one hot encoding on favday and city columns df = pd.get_dummies(df,prefix=['favday','city'],columns=['favday','city']) return df ## Set the required configurations
model_name = "churn_model"
env = "dev"
## S3 Bucket
default_bucket = "customer-churn-sm-pipeline"
## Preprocess the dataset
storedata = preprocess_data(f"s3://{default_bucket}/data/storedata_total.csv")
Com os notebooks Studio com computação elástica, agora você pode executar facilmente vários trabalhos de treinamento e ajuste. Para este caso de uso, você usa o algoritmo XGBoost integrado do SageMaker e o SageMaker HPO com função objetiva como "binary:logistic"
e "eval_metric":"auc"
.
def split_datasets(df): y=df.pop("retained") X_pre = df y_pre = y.to_numpy().reshape(len(y),1) feature_names = list(X_pre.columns) X= np.concatenate((y_pre,X_pre),axis=1) np.random.shuffle(X) train,validation,test=np.split(X,[int(.7*len(X)),int(.85*len(X))]) return feature_names,train,validation,test # Split dataset
feature_names,train,validation,test = split_datasets(storedata) # Save datasets in Amazon S3
pd.DataFrame(train).to_csv(f"s3://{default_bucket}/data/train/train.csv",header=False,index=False)
pd.DataFrame(validation).to_csv(f"s3://{default_bucket}/data/validation/validation.csv",header=False,index=False)
pd.DataFrame(test).to_csv(f"s3://{default_bucket}/data/test/test.csv",header=False,index=False)
Treine, ajuste e encontre o melhor modelo candidato com o seguinte código:
Depois de estabelecer uma linha de base, você pode usar Depurador do Amazon SageMaker para análise de modelo off-line. O depurador é um recurso do SageMaker que fornece automaticamente visibilidade do processo de treinamento do modelo para análise off-line e em tempo real. O depurador salva o estado do modelo interno em intervalos periódicos, que você pode analisar em tempo real durante o treinamento e offline após a conclusão do treinamento. Para este caso de uso, você usa a ferramenta de explicação SHAP (SHapley Additive exPlanation) e a integração nativa do SHAP com o Debugger. Consulte o seguinte caderno para análise detalhada.
O gráfico de resumo a seguir explica as relações positivas e negativas dos preditores com a variável de destino. Por exemplo, a variável principal aqui, esent
, é definido como o número de e-mails enviados. Este gráfico é feito de todos os pontos de dados no conjunto de treinamento. Azul indica arrastar a saída final para a classe 0 e rosa representa a classe 1. Os principais recursos de influência são classificados em ordem decrescente.
Agora você pode prosseguir com a etapa de implantação e gerenciamento do fluxo de trabalho de ML.
Desenvolva e automatize o fluxo de trabalho
Vamos começar com a estrutura do projeto:
- /modelo-churn-cliente - Nome do Projeto
- /dados – Conjunto de dados
- /pipelines – Código para componentes de pipeline do SageMaker
- SageMaker_Pipelines_project.ipynb – Permite criar e executar o fluxo de trabalho de ML
- Customer_Churn_Modeling.ipynb – Caderno de desenvolvimento de modelo de linha de base
Debaixo <project-name>/pipelines/customerchurn
, você pode ver os seguintes scripts Python:
- Pré-processo.py – Integra-se com o SageMaker Processing para engenharia de recursos
- Avalie.py – Permite cálculo de métricas do modelo, neste caso auc_score
- Gerar_config.py – Permite a configuração dinâmica necessária para o trabalho downstream Clarify para explicabilidade do modelo
- Pipeline.py – Código modelo para o fluxo de trabalho do Pipelines ML
Vamos percorrer cada etapa do DAG e como elas são executadas. As etapas são semelhantes a quando preparamos os dados pela primeira vez.
Execute a preparação de dados com o seguinte código:
Treine, ajuste e encontre o melhor modelo candidato:
Você pode adicionar um etapa de ajuste do modelo (TuningStep) no pipeline, que invoca automaticamente um trabalho de ajuste de hiperparâmetros (consulte o código a seguir). O ajuste de hiperparâmetro localiza a melhor versão de um modelo executando muitos trabalhos de treinamento no conjunto de dados usando o algoritmo e os intervalos de hiperparâmetros que você especificou. Você pode então registrar a melhor versão do modelo no registro do modelo usando a etapa RegisterModel.
Depois de ajustar o modelo, dependendo das métricas de objetivo do trabalho de ajuste, você pode usar a lógica de ramificação ao orquestrar o fluxo de trabalho. Para esta postagem, a etapa condicional para verificação da qualidade do modelo é a seguinte:
O melhor modelo candidato é registrado para pontuação em lote usando a etapa RegisterModel:
Agora que o modelo está treinado, vamos ver como o Clarify nos ajuda a entender em quais recursos os modelos baseiam suas previsões. Você pode criar um analysis_config.json
arquivo dinamicamente por fluxo de trabalho executado usando o generate_config.py
Utilitário. Você pode criar versões e rastrear o arquivo de configuração por pipeline runId
e armazene-o no Amazon S3 para referências futuras. Inicialize o dataconfig
e modelconfig
arquivos da seguinte forma:
Depois de adicionar a etapa Esclarecer como uma tarefa de pós-processamento usando sagemaker.clarify.SageMakerClarifyProcessor
no pipeline, você pode ver um recurso detalhado e um relatório de análise de viés por execução do pipeline.
Como etapa final do fluxo de trabalho do pipeline, você pode usar o TransformStep
passo para pontuação offline. Passe no transformer instance
e os votos de TransformInput
com o batch_data
parâmetro de pipeline definido anteriormente:
Por fim, você pode acionar uma nova execução de pipeline escolhendo Iniciar uma execução na interface do Studio IDE.
Você também pode descrever uma execução de pipeline ou iniciar o pipeline usando o seguinte caderno. A captura de tela a seguir mostra nossa saída.
Você pode agendar suas execuções de pipeline de construção de modelo do SageMaker usando Amazon Event Bridge. Os pipelines de construção de modelo do SageMaker são suportados como um destino no Amazon EventBridge. Isso permite acionar o pipeline para execução com base em qualquer evento no barramento de eventos. O EventBridge permite que você automatize suas execuções de pipeline e responda automaticamente a eventos como trabalho de treinamento ou alterações de status de terminal. Os eventos incluem um novo arquivo sendo carregado em seu bucket do S3, uma alteração no status do endpoint do SageMaker devido a um desvio e Serviço de notificação simples da Amazon (Amazon SNS) tópicos.
Conclusão
Esta postagem explicou como usar o SageMaker Pipelines com outros recursos integrados do SageMaker e o algoritmo XGBoost para desenvolver, iterar e implantar o melhor modelo candidato para previsão de churn. Para obter instruções sobre como implementar esta solução, consulte o GitHub repo. Você também pode clonar e estender esta solução com fontes de dados adicionais para retreinamento do modelo. Incentivamos você a entrar em contato e discutir seus casos de uso de ML com seu gerente de contas da AWS.
Referências adicionais
Para obter informações adicionais, consulte os seguintes recursos:
Sobre os autores
Gayatri Ganakota é um engenheiro de aprendizado de máquina da AWS Professional Services. Ela é apaixonada por desenvolver, implantar e explicar soluções de IA/ML em vários domínios. Antes dessa função, ela liderou várias iniciativas como cientista de dados e engenheira de ML com as principais empresas globais no espaço financeiro e de varejo. Ela possui mestrado em Ciência da Computação com especialização em Ciência de Dados pela University of Colorado, Boulder.
Sarita Joshi é cientista de dados sênior da AWS Professional Services, focada no suporte a clientes em vários setores, incluindo varejo, seguros, manufatura, viagens, ciências biológicas, mídia e entretenimento e serviços financeiros. Ela tem vários anos de experiência como consultora, assessorando clientes em vários setores e domínios técnicos, incluindo IA, ML, análise e SAP. Hoje, ela trabalha apaixonadamente com clientes para desenvolver e implementar soluções de aprendizado de máquina e IA em grande escala.
- "
- 100
- 107
- 39
- Conta
- ativo
- Adicional
- Vantagem
- AI
- algoritmo
- Todos os Produtos
- alfa
- Amazon
- Amazon Sage Maker
- análise
- analítica
- APIs
- arquitetura
- Automatizado
- AWS
- Linha de Base
- MELHOR
- construir
- Prédio
- ônibus
- negócio
- Campanhas
- casos
- alterar
- Cidades
- clientes
- código
- Colorado
- Coluna
- Computar
- Ciência da Computação
- consultor
- consumidor
- comportamento do consumidor
- Recipiente
- Fidelização de clientes
- Clientes
- DAG
- dados,
- ciência de dados
- cientista de dados
- Entrega
- detalhe
- Dev
- desenvolver
- desenvolvedores
- Desenvolvimento
- domínios
- Cair
- Ponto final
- engenheiro
- Engenharia
- Entretenimento
- Meio Ambiente
- Evento
- eventos
- execução
- vasta experiência
- Explicação
- Característica
- Funcionalidades
- financeiro
- serviços financeiros
- encontra
- Primeiro nome
- seguir
- cheio
- função
- Global
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Alta
- Início
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- enorme
- identificar
- Incluindo
- Crescimento
- indústrias
- indústria
- INFORMAÇÕES
- com seguro
- integração
- IT
- Trabalho
- Empregos
- Caderno Jupyter
- Chave
- grande
- aprendizagem
- levou
- Ciências da Vida
- aprendizado de máquina
- de grupos
- fabrica
- Marketing
- Mídia
- média
- Métrica
- ML
- modelo
- laptops
- notificação
- Oferece
- online
- Negócios Online
- abre
- ordem
- Outros
- predição
- Previsões
- Análise Preditiva
- produtividade
- projeto
- projetos
- Python
- qualidade
- Prontidão
- em tempo real
- Relacionamentos
- Denunciar
- Relatórios
- Requisitos
- Recursos
- Resultados
- varejo
- reciclagem
- receita
- Risco
- Execute
- corrida
- sábio
- seiva
- Escala
- Ciência
- CIÊNCIAS
- cientistas
- Sdk
- Série
- Serviços
- conjunto
- Partilhar
- simples
- So
- Soluções
- Espaço
- divisão
- começo
- Estado
- Declaração
- Status
- armazenamento
- loja
- Estratégia
- Suportado
- Target
- Dados Técnicos:
- teste
- tempo
- topo
- Temas
- pista
- Training
- Transformação
- viagens
- universidade
- us
- utilidade
- valor
- visibilidade
- dentro
- de gestão de documentos
- X
- anos