Skip to content

Projeto de clusterização de clientes com depoly na plataforma AWS | Customer clustering project deployed on the AWS platform

License

Notifications You must be signed in to change notification settings

lavinomenezes/insiders_loyalty_program

Repository files navigation

Insiders loyalty project

Problema de negócio

A empresa All in One Place é um outlet multimarcas que comercializa produtos de segunda linha de várias marcas a um preço menor, por meio de um e-commerce.

Em pouco mais de 1 ano de operação, o time de marketing percebeu que alguns clientes de sua base compram produtos mais caros com alta frequência e contribuem significativamente para o faturamento da empresa.

Com base nessa percepção, o time de marketing lançará um programa de fidelidade para os melhores clientes da base, chamado Insiders. No entanto, o time não tem conhecimento avançado em análise de dados para selecionar os participantes do programa.

Por esse motivo, o time de marketing requisitou ao time de dados uma seleção de clientes elegíveis para o programa, usando técnicas avançadas de manipulação de dados. Será entregue uma lista contendo os clientes classificados de acordo com suas características de consumo. Além disso, um dashboard será entregue para melhor visualização das características dos grupos resultantes da análise

Dataset overview

Variable Meaning
Invoice Number identificador único de cada transação
Stock Code Product Código do item
Description Product Nome do item
Quantity A quantidade de cada item comprado por transação
Invoice Date O dia em que a transação ocorreu
Unit Price Preço do produto por unidade
Customer ID identificador único do cliente
Country O nome do país que o cliente reside

Questões do negócio

Entregar uma lista de pessoas elegíveis a participar dovprograma Insiders, junto com um relatório respondendo às seguintes perguntas:

  1. Quem são as pessoas elegíveis para participar do programa de Insiders ?
  2. Quantos clientes farão parte do grupo?
  3. Quais as principais características desses clientes ?
  4. Qual a porcentagem de contribuição do faturamento, vinda do Insiders ?
  5. Qual a expectativa de faturamento desse grupo para os próximos meses ?
  6. Quais as condições para uma pessoa ser elegível ao Insiders ?
  7. Quais as condições para uma pessoa ser removida do Insiders ?
  8. Qual a garantia que o programa Insiders é melhor que o restante da base ?
  9. Quais ações o time de marketing pode realizar para aumentar o faturamento?

Premissas do negócio

  • As informações estão limitadas no periodo de Novembro de 2016 ate Dezembro de 2017;
  • Na coluna "quantity" os valores negativos foram considerados devoluções;
  • Foram descartados linhas que o valor unitário "unit_price" é menor que 0.04;
  • Linhas em que o 'customer_id' tinha valores nulos foram preenchidos com valores sequenciais a partir do valor numérico mais alto da coluna. Por se tratar apenas de um identificador, esse processo não afetará o modelo ou a análise;
  • Todas as linhas em que os valores da coluna "stock_code" não são puramente numéricos serão removidas, devido a falta de conhecimento sobre o significado desses valores.

Planejamento da Solução

Neste projeto foi aplicado o método CRISP-DM (Cross-Industry Standard Process for Data Mining) adaptado para os processos de ciência de dados que se tornou o CRIS-DS.

Modelo crisp-dm.

A divisão dos passos utilizados no projeto foi:

  1. Entendimento de negócio: Compreender o motivo da requisição dos agrupamentos de clientes e as características principais a serem observadas é fundamental para entender melhor o problema e apresentar a solução mais eficiente em menor tempo possível.
  2. Coleta de dados: Todos os dados estavam disponíveis na plataforma, sendo esta disponibilizada pela própria empresa.
  3. Análise descritiva: Uma breve análise dos dados para adquirir familiaridade com eles. Os dados foram divididos em numéricos e categóricos para aplicarmos os métodos de análise adequados para cada tipo. Durante a análise, observamos algumas irregularidades nos dados, que, devido à falta de informações sobre quem montou a tabela, poderiam afetar nossa análise e modelagem, como quantidades negativas e códigos alfanuméricos no código de estoque.
  4. Dados faltantes: No início, havía uma quantidade significativa de dados nulos na coluna 'customer_id', chegando a quase 25% dos dados. Seguindo da coluna 'description', com 0,25% de dados nulos. Por se tratar apenas de um identificador, a coluna 'customer_id' foi preenchida de forma sequencial. Já a coluna 'description' foi removida por não apresentar relevância neste momento da análise.
  5. Filtragem de dados:Remoção de linhas que não contribuem com o modelo e aquelas que por não termos acesso aos significados dos códigos alfanuméricos podem atrapalhar a análise. Sendo eles:
    • Colunas removidas: 'description','country';
    • Linhas removidas:
      • Linhas do 'unit_price' que tem valor abaixo de U$0.04;
      • Linhas que a coluna 'stock_code' possui os seguntes códigos: ['POST', 'D', 'DOT', 'M', 'S', 'AMAZONFEE', 'm', 'DCGSSBOY','DCGSSGIRL', 'PADS', 'B', 'CRUK','C2'];
      • Linhas que a coluna 'country' possuia essas descrições: ['European Community','Unspecified'].
  6. Feature engineering: Para compreender melhor o comportamento dos clientes, foram criados novos atributos a partir dos existentes. Estes atributos serão analisados para a formação de clusters. Sendo eles:
    Atributo Descrição
    gross_revenue receita bruta por cliente
    recency_days Dias da última compra
    qtde_invoice Quantidade de compras
    qtde_items Quantidade de produtos únicos comprados
    qtde_products Quantidade de produtos compras
    avg_basket_size Quantidade de produtos comprados por cesta
    avg_unique_basket_size Quantidade de produtos únicos comprados por cesta
    freq Frequência
    avg_ticket Ticket médio
    avg_rec_days Recência média
    qtde_returns Quantidade de devoluções

    Com os novos atributos foi feita a remoção de valores nulos que surgiram com eles devido a forma como foram derivados.

  7. Análise exploratória de dados I (EDA I): Análise dos novos atributos criados, testando e validando hyphoteses para melhor entender o comportamento deles e como se relacionam. A analise consistiu em alguma etapas. Sendo elas:
    • Analise dos atributos com a biblioteca pandas-profiling onde foi possivel ver alguns outliers que poderiam atrapalhar o modelo, assim foi decidida a remoção dos mesmos
    • Foi verificado quais atributo tinham maior variabilidade, assim melhor contribuindo para o modelo.
    • Foi também feito um estudo do espaço dos novos atributos levando eles para o espaço de "embedding". sendo aplicados os algoritimos: PCA, UMAP, T-SNE, Tree-based embedding
      • PCA;
      • UMAP;
      • T-SNE;
      • Tree-based embedding.
    Ao final da etapa o 'Tree-based embedding' apresentou a melhor divisão de espaço. sendo o espaço gerado palo método salvo em um dataframe para ser utilizado nos próximos passos.Gráficamente o agrupamento no espaço pode ser visto a seguir:
  8. Preparação dos dados: Manipular os dados para se adequarem melhor num modelo de machine learning. foi aplicado a re-escala dos atributos numéricos para não força o modelo a trabalhar com valores muito altos:
    • MinMaxscaler: foi aplicado a todos os atributos já na etapa de estudo de espaço para melhor se adequar a transformação do embedding .
  9. Feature selection: Baseado nas análises dos atributos os escolhidos para dar continuidade foram:
    • 'customer_id';
    • 'gross_revenue';
    • 'recency_days';
    • 'qtde_products';
    • 'freq';
    • 'qtde_return'.
  10. Modelos de machine learning: Nesta etapa foram aplicados quatro algoritmos de clusterização e observado quais as métricas se comportavam melhor para determinado número de clusters:
    • K-Means;
    • Gaussian Mixture Model(GMM);
    • Hierarchical Clustering;
    • DBSCAN;
    • Ao final foi escolhido o GMM.
    Fine tuning: O fine tuning de modelos de clusterização é feito pela análise dos valores das métricas com diferentes número de clustes. As métricas utilizadas foram:
    • Within-Cluster Sum of Square (WSS)
    • elbow
    • Sillhouete Score
  11. Deploy: Nesta última etapa, já tendo aplicado o modelo final no dataset e observado os valores gerados, o modelo foi colocado em produção com ferramentas AWS da seguinte forma:
    • Criado um Bucket S3 (Simple Storage Service) na AWS para armazenar os dados dos clientes;
    • Criado um banco de dados Postgres com o AWS RDS (Relational Database Service), onde os dados já tratados e agrupados serão arquivados;
    • Foi instanciado um ambiente Linux AWS EC2 (Elastic Compute Cloud) que, por meio das bibliotecas 'papermill' e 'cronjob', executará o notebook para que a análise dos clusters seja constantemente atualizada e a movimentação dos clientes entre os clusters seja observada;
    • Um dashboard no metabase foi criado acessando o banco de dados RDS.

Os principais insights de negócio

Os clientes do cluster insiders possuem um volume (faturamento) de compras acima de 10% do total de compras

Verdadeiro, o clusters insiders possui 54,4% do total de faturamento

Os clientes do cluster insiders possuem um volume ( produtos ) de compras acima de 10% do total de compras.

Verdadeiro, o clusters insiders possui 57% do total de vendas de produtos

A mediana do faturamento dos clientes do cluster insider é 10% maior do que a mediana do faturamento geral.

Verdadeiro, a mediana do cluster insider é 268% maior que o geral

Performance do modelo de Machine learning

Nesse projeto, utilizamos três algoritmos de clusterização - Kmeans, Gaussian Mixture Model (GMM) e Hierarchical Clustering (HC) - em cada espaço de features e de embeddings. Para avaliar a qualidade dos agrupamentos produzidos, utilizamos a métrica de silhueta, que mede a distância entre os pontos de dados e seus respectivos clusters em relação aos outros clusters.

Em cada caso, variamos o número de clusters e avaliamos o valor de Silhouette Score obtido para cada quantidade. Observamos que, em geral, a performance dos modelos aumentava à medida que o número de clusters aumentava, mas devido a restrições de negócios, decidimos limitar o número máximo de clusters para 10.

Os resultados obtidos foram os seguintes:

Original Feature Space

Umap

T-SNE

Tree Based Embedding

Foi observado que os modelos tiveram um desempenho inferior no espaço original das variáveis, apresentando uma melhora significativa dentro do espaço de embeddings. Como mencionado anteriormente, notamos que o aumento do número de clusters resultou em um aumento no valor da silhueta. Dessa forma, decidimos limitar o número de clusters a 8 e escolhemos o algoritmo GMM para treinar o modelo.

Após o treinamento, avaliamos os resultados e verificamos que o modelo foi capaz de produzir agrupamentos mais precisos e coerentes dentro do espaço de embeddings. Essa abordagem nos permitiu obter uma compreensão mais profunda dos dados e fornecer insights valiosos para a nossa análise.

No entanto, é importante ressaltar que a escolha do modelo e dos parâmetros ideais depende do contexto e dos objetivos do projeto, e pode variar de acordo com as características dos dados e do problema em questão.

Performance de cluster

Após o treino do modelo com o número de clusters definido, as principais características dos clientes de cada agrupamento foram definidas e podem ser observadas na tabela abaixo.

Para facilitar a identificação, observando algumas características de cada cluster, foram definidos os seguintes nomes:

Cluster Name
6 Insiders
5 More products
0 Spend Money
3 Even More products
7 Less days
2 Less 1k
1 Stop Returns
4 More buy

Resultados

Quantos clientes farão parte do grupo?

943

Quais as principais características desses clientes ?

4. Qual a porcentagem de contribuição do faturamento, vinda do Insiders ?

O clusters 'insiders' possuem 50,5% do faturamento da empresa

6. Quais as condições para uma pessoa ser elegível ou ser removida do Insiders ?

para ser classificada como cliente insiders o cliente stem de apresentar as caracteristicas dentro de intervalos:
caracteristica min max
gross_revenue 5471.44 6142.97
recency_days 57.05 61.04
qtde_products 311.95 331.11
freq 0.294 0.312
qtde_returns 85.13 192.70

Esses são os valores de intervalo do nosso modelo atual. Se as características da base de clientes mudarem, haverá mudanças nesses valores.

Quais ações o time de marketing pode realizar para aumentar o faturamento?

  • Um acompanhamento mais preciso dos clientes 'insiders' para fidelizalos e evitar sua evasão
  • Oferecer benefícios exclusivos para os clientes que estão próximos de se tornarem Insiders, como descontos em produtos selecionados ou frete grátis em suas próximas compras.
  • Podemos enviar ofertas personalizadas com base em seus históricos de compra para aumentar a probabilidade deles se tornarem Insiders.

abaixo o dashborad no app Metabase:

É importante destacar que esses incentivos devem ser cuidadosamente planejados para que não prejudiquem o valor da marca ou o desempenho da empresa. Por isso, é importante analisar os dados de compra dos clientes e criar incentivos que estejam alinhados com seus perfis e necessidades.

Conclusão

O objetivo deste projeto foi segmentar os clientes para identificar os mais valiosos para a empresa, com o intuito de oferecer benefícios personalizados e aumentar a fidelidade desses clientes. Para isso, realizamos uma análise dos dados de compras dos clientes, levando em consideração o total gasto, a recência das compras, a frequência, a quantidade de produtos comprados e a quantidade de devoluções.

Com base nesses critérios, foram criados 8 clusters, sendo o principal deles o cluster "Insider". Esse grupo é composto por 943 clientes, representando 16,5% da base de clientes total, e é responsável por 54,2% do faturamento da empresa e 57,5% do volume de compras.

Com esses resultados em mãos, os times de negócios podem iniciar campanhas mais precisas para oferecer benefícios personalizados para os clientes do cluster "Insider", visando aumentar a fidelidade desses clientes e evitar sua evasão ou diminuição do ritmo de compras. Além disso, podemos incentivar os clientes dos outros agrupamentos a se tornarem insiders, oferecendo benefícios exclusivos para esse grupo seleto de clientes.

Com essa estratégia, esperamos aumentar a fidelidade de nossos clientes, melhorar o desempenho da empresa e garantir o sucesso a longo prazo.

Próximos passos

  • Novo ciclo do CRISP-DM;
  • Criar novas features;
  • Testar mais hipóteses;
  • Testar outros algoritmos de clusterização.

Ferramentas utilizadas

  • Jupyter notebook
  • Git
  • Python
  • Pandas
  • Pandas Profile
  • Numpy
  • Sklearn
  • Seaborn
  • Umap
  • PCA
  • T-SNE
  • Kmeans
  • Gaussian Mixture Model
  • Hierarchical Clustering
  • AWS
  • Metabase

About

Projeto de clusterização de clientes com depoly na plataforma AWS | Customer clustering project deployed on the AWS platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published