Este projeto implementa um modelo de previsão de churn para uma empresa de e-commerce fictícia. Utilizamos Python e bibliotecas como Pandas, Scikit-learn e Matplotlib para criar, analisar e visualizar dados, bem como para treinar e avaliar um modelo de machine learning.
- Python 3.7+
- Pandas
- NumPy
- Scikit-learn
- Matplotlib
- Seaborn
O projeto consiste em um único script Python que realiza todas as etapas, desde a geração de dados até a avaliação do modelo e previsões para novos clientes.
Criamos um conjunto de dados fictício com 1000 clientes. Cada cliente tem as seguintes características:
customer_id
: Identificador único do clienteage
: Idade do clientetenure_months
: Tempo como cliente (em meses)total_purchases
: Número total de comprasavg_order_value
: Valor médio dos pedidoslast_purchase_days_ago
: Dias desde a última compratotal_spend
: Gasto total do clientenum_support_requests
: Número de solicitações de suporte
A variável alvo churn
é criada com base em duas condições:
- A última compra foi há mais de 90 dias
- O gasto total está abaixo da média
Realizamos uma análise exploratória básica que inclui:
- Exibição das primeiras linhas do dataset
- Informações gerais sobre o dataset (tipos de dados, valores não nulos)
- Estatísticas descritivas
- Cálculo da taxa de churn
- Visualização da matriz de correlação entre as variáveis
- Separação das features (X) e da variável alvo (y)
- Divisão dos dados em conjuntos de treino e teste (80% treino, 20% teste)
- Normalização das features usando StandardScaler
Utilizamos um modelo Random Forest Classifier com 100 árvores de decisão.
A avaliação do modelo inclui:
- Relatório de classificação (precisão, recall, f1-score)
- Matriz de confusão
- Visualização da importância das características
Demonstramos como usar o modelo treinado para fazer previsões para novos clientes.
- Certifique-se de ter todas as bibliotecas necessárias instaladas.
- Execute o script Python.
- Analise a saída no console e as visualizações geradas.
- Para fazer previsões para novos clientes, adicione seus dados ao DataFrame
new_customers
no final do script.
- Utilizar dados reais em vez de dados fictícios.
- Implementar técnicas de balanceamento de classes se o churn for um evento raro.
- Experimentar outros algoritmos de classificação (ex: Gradient Boosting, SVM).
- Realizar otimização de hiperparâmetros (ex: usando GridSearchCV).
- Implementar validação cruzada para uma avaliação mais robusta do modelo.
- Criar uma interface de usuário simples para facilitar a entrada de dados de novos clientes.
Este projeto demonstra uma abordagem básica para prever churn em um contexto de e-commerce. O modelo e as técnicas utilizadas podem ser adaptados e expandidos para casos de uso específicos em empresas reais.