Este projeto implementa uma análise de segmentação de clientes utilizando a metodologia RFM (Recency, Frequency, Monetary). Através de técnicas de Machine Learning, o projeto identifica diferentes perfis de consumidores com base em seu comportamento histórico de compras, permitindo estratégias de marketing mais assertivas e personalizadas.
- Processar dados transacionais para extrair métricas de comportamento de compra.
- Calcular os indicadores de Recência (dias desde a última compra), Frequência (quantidade de compras) e Valor Monetário (total gasto).
- Agrupar clientes com perfis similares utilizando o algoritmo de clustering K-Means.
- Visualizar a distribuição dos segmentos e sugerir ações estratégicas para cada perfil identificado.
Os dados foram retirados do artigo "RFM-Based Customer Segmentation: A Pedagogical Case Study for Marketing Analytics Education". O arquivo original está localizado em data/2855054_v1_data.csv.
As principais colunas utilizadas são:
CustomerID: Identificador único do cliente.SaleID: Identificador da transação.SaleDate: Data e hora da compra.ItemValue: Valor monetário do item/venda.ItemDescription: Descrição do produto.
- Limpeza e Preparação: Remoção de valores nulos, exclusão de clientes genéricos (ID 0) e tratamento de duplicatas.
- Engenharia de Atributos: Cálculo das métricas R, F e M por cliente.
- Transformação de Dados: Aplicação de escala logarítmica para mitigar a assimetria dos dados e padronização com
StandardScaler. - Clustering: Utilização do algoritmo K-Means. O número ideal de grupos foi determinado através do Método do Cotovelo (Elbow Method) e da Análise de Silhueta.
- Análise Visual: Uso de PCA (Principal Component Analysis) para visualização dos clusters em 2D e Snake Plots para comparação das características de cada grupo.
A análise identificou três segmentos principais de clientes:
- Champions (Grupo 1): Clientes com baixíssima recência, alta frequência e alto valor gasto. São os melhores clientes.
- Novos/Promissores (Grupo 0): Clientes que compraram recentemente, mas ainda possuem frequência e gastos moderados.
- Em Risco/Hibernando (Grupo 2): Clientes que não compram há muito tempo e possuem baixo histórico de frequência e valor.
O projeto foi desenvolvido em Python, utilizando o gerenciador de pacotes uv.
-
Pré-requisitos
-
Instalação
- Clone o repositório.
- Sincronize o ambiente e instale as dependências:
uv sync
-
Execução:
- Abra o arquivo
rfm.ipynb. - Execute todas as células para processar os dados, gerar os modelos de clustering e visualizar os gráficos resultantes.
- Abra o arquivo