Este projeto aplica a metodologia de Recência, Frequência e Valor Monetário (RFM) sobre o Online Retail Dataset da UCI Machine Learning Repository. O objetivo é segmentar a base de clientes em grupos distintos com base em seu comportamento de compra (quão recente, frequente e valioso), identificando segmentos chave como 'Campeões', 'Fiéis', 'Em Risco', 'Perdidos', 'Hibernados', etc., para embasar decisões estratégicas de marketing e retenção.
- Python 3.9+ (ou a versão que estiver usando)
- Polars: Para manipulação e preparação de dados de alta performance (conforme nossas conversas anteriores). (Se estiver usando Pandas primariamente, ajuste aqui).
ucimlrepo: Para buscar o dataset diretamente da UCI via API.- Matplotlib & Seaborn: Para visualização dos dados e resultados da segmentação.
- Jupyter Lab / Notebook: Para desenvolvimento e execução interativa da análise.
-
Clone o repositório (se aplicável):
git clone https://github.com/geangobo/rfm_analysis cd rfm_analysis -
(Recomendado) Crie um Ambiente Virtual:
python -m venv venv # No Windows: venv\Scripts\activate # No macOS/Linux: source venv/bin/activate
-
Instale as dependências: Certifique-se de ter um arquivo
requirements.txtno seu projeto que incluapolars,ucimlrepo,matplotlib,seaborn,jupyterlab(ounotebook), etc.Para instalar os pacotes necessários, execute:
pip install -r requirements.txt
(Se não tiver o
requirements.txt, você pode criar um após instalar tudo compip freeze > requirements.txt)
- Dados de Entrada: Os dados do "Online Retail Dataset" são buscados diretamente da UCI Machine Learning Repository via API usando a biblioteca
ucimlrepodentro do notebook. Não é necessário download manual prévio do dataset. - Execute o Notebook: Abra o Jupyter Lab ou Jupyter Notebook, navegue até a pasta
src/e execute as células do notebook principal (ex:rfm_analysis_notebook.ipynb- substitua pelo nome real do seu notebook). O notebook guiará pelo processo de:- Busca dos dados.
- Pré-processamento e limpeza.
- Cálculo das métricas e scores RFM.
- Segmentação dos clientes.
- Geração de visualizações.
- Resultados: O processo irá gerar:
- Logs e saídas diretamente no notebook.
- Visualizações gráficas (ex: Treemap, gráficos de barras, histogramas).
- (Opcional) Um arquivo de saída (ex:
.csvou.parquet) com o DataFrame final contendo os clientes e seus respectivos segmentos RFM, se implementado no código.
- RFM (Recency, Frequency, Monetary Value): 🔑 Técnica para segmentar clientes baseada no histórico de compras:
- Recência (R): ⏱️ Tempo desde a última compra (Menor = Melhor).
- Frequência (F): 🔄 Número de compras em um período (Maior = Melhor).
- Valor Monetário (M): 💰 Gasto total no período (Maior = Melhor).
- Pontuação/Scoring RFM: 🔢 Atribuição de notas (ex: 1-5 ou A-E) para cada dimensão RFM, geralmente baseada em quantis (ex: quintis), para comparar clientes em uma escala comum e relativa à base de dados.
- Segmentação RFM: 🧩 Agrupamento de clientes com base em seus scores RFM combinados para criar personas acionáveis (ex: Campeões, Fiéis, Atenção, Em Risco, Perdidos, etc.), permitindo ações de marketing e relacionamento mais direcionadas.
- Treemap: Visualização da distribuição dos segmentos de clientes (ex: por Valor Total Gasto ou por Contagem de Clientes em cada segmento).
- Gráficos de Barras: Contagem de clientes por segmento RFM ou valor médio por segmento.
- Histogramas/Boxplots: Análise da distribuição das métricas R, F e M para cada segmento.
- Gráficos de Dispersão: Relação entre Recência vs Frequência ou Frequência vs Valor, coloridos por segmento RFM.