> Observação: este projeto utiliza uma base pública de churn em telecom para fins educacionais e de portfólio. Os identificadores de clientes presentes na base são tratados apenas como chaves técnicas da amostra e não representam dados sensíveis reais.
Além da documentação técnica, este projeto possui um estudo executivo com o raciocínio de negócio, principais achados, recomendações e próximos passos.
O projeto também possui um dashboard executivo em HTML com KPIs, segmentação de risco, lift/gain, ROI simulado e recomendações de negócio.
- Base analisada: 7.043 clientes de telecom.
- Taxa geral de churn: 26,5%.
- Modelo final: Gradient Boosting.
- ROC AUC em teste: 0,8397.
- Recall de churn: 68,7%.
- Faixa crítica: 74,5% de churn real.
- Melhor cenário simulado: Top 5% com ROI estimado de 0,19.
Este projeto constrói uma solução analítica para apoiar decisões de retenção em telecom. A proposta é identificar clientes com maior risco estimado de churn, transformar esse risco em uma segmentação acionável e estimar o retorno financeiro de campanhas direcionadas.
O foco não é apenas treinar um modelo de machine learning, mas conectar análise de dados, priorização operacional e decisão executiva. O resultado final é uma base de clientes pontuada por probabilidade de churn, faixa de risco e ação recomendada.
Churn representa perda de receita recorrente e aumento da pressão por aquisição de novos clientes. Em vez de tratar cancelamentos apenas de forma reativa, a empresa pode usar dados para identificar padrões observáveis de risco e priorizar ações preventivas.
A pergunta central do projeto é:
Como identificar clientes com maior risco de cancelamento para priorizar investimentos de retenção?
O score gerado poderia ser usado por áreas de CRM, retenção, marketing, customer success e planejamento comercial para priorizar filas de contato, ofertas e campanhas.
- Estimar probabilidade de churn por cliente.
- Segmentar clientes em faixas de risco.
- Priorizar ações de retenção.
- Simular impacto financeiro de campanhas segmentadas.
- Gerar uma base operacional com score de churn.
- Base de clientes com score de churn e faixa de risco.
- Lista de clientes priorizados por maior risco estimado.
- Relatório de métricas do modelo.
- Tabela de importância de variáveis.
- Simulação de ROI por percentual de clientes abordados.
- Apresentação executiva do case.
| Item | Valor |
|---|---|
| Clientes analisados | 7.043 |
| Taxa geral de churn | 26,5% |
| Variáveis explicativas usadas | 19 |
| Variável alvo | Churn |
| Limitação principal | Ausência de janela temporal explícita |
A base contém informações de perfil, contrato, serviços, pagamento, cobrança e churn. Como não há data clara de extração, data de churn ou janela de previsão, a avaliação não deve ser interpretada como validação temporal out-of-time.
O projeto foi estruturado para reduzir risco de vazamento de dados e manter a lógica reprodutível:
- Entendimento inicial da base.
- Limpeza e tratamento de dados.
- Separação treino, validação e teste.
- Uso de
Pipelinepara imputação, escalonamento e encoding. - Comparação de modelos.
- Escolha de threshold na validação.
- Avaliação final em teste.
- Segmentação por risco.
- Simulação de ROI.
Modelos considerados:
- Logistic Regression
- Random Forest
- Gradient Boosting
- HistGradientBoosting
- XGBoost
- LightGBM
- CatBoost
| Métrica | Resultado |
|---|---|
| Modelo final | GradientBoosting_sklearn |
| Threshold | 0,342 |
| ROC AUC teste | 0,8397 |
| PR AUC teste | 0,6692 |
| F1 | 0,6266 |
| Recall | 0,6868 |
| Precision | 0,5761 |
| Accuracy | 0,7824 |
O Gradient Boosting foi escolhido por equilíbrio entre desempenho, estabilidade, baixo gap de overfit e simplicidade operacional. A diferença para XGBoost e CatBoost foi pequena, portanto a escolha não deve ser vendida como superioridade estatística absoluta.
| Resultado | Quantidade |
|---|---|
| TN - verdadeiros negativos | 634 |
| FP - falsos positivos | 142 |
| FN - falsos negativos | 88 |
| TP - verdadeiros positivos | 193 |
Em churn, falso negativo é um erro crítico, pois representa um cliente que cancelou sem ação preventiva. O objetivo do score é reduzir a dependência de palpite e priorizar a fila de retenção.
| Faixa de risco | Clientes | Churn real | Taxa real de churn | Probabilidade média |
|---|---|---|---|---|
| Baixo | 3.779 | 266 | 7,0% | 7,9% |
| Médio | 1.285 | 365 | 28,4% | 29,9% |
| Alto | 1.057 | 551 | 52,1% | 49,5% |
| Crítico | 922 | 687 | 74,5% | 70,9% |
A segmentação mostra concentração clara do risco. Clientes classificados como críticos apresentaram churn real superior a 74%, enquanto clientes de baixo risco ficaram próximos de 7%.
O ROI é uma simulação, não um resultado financeiro realizado. A simulação usa as seguintes premissas:
- Horizonte mensal.
- Margem de 70%.
- Custo unitário de campanha de R$ 10.
- Uplift esperado de 30%.
| Público | Clientes | Receita preservada estimada | ROI estimado |
|---|---|---|---|
| Top 5% | 352 | R$ 4.175 | 0,19 |
| Top 10% | 704 | R$ 7.480 | 0,06 |
| Top 15% | 1.056 | R$ 10.445 | -0,01 |
Campanhas mais concentradas nos clientes de maior risco tendem a ser financeiramente mais eficientes. A recomendação é iniciar por piloto controlado antes de escalar a campanha.
Os fatores abaixo estão associados ao risco previsto de churn. Eles não devem ser interpretados como causas diretas do cancelamento:
- Contrato mensal.
- Menor tempo de relacionamento (
tenure). - Internet fibra óptica.
- Ausência de segurança online.
- Ausência de suporte técnico.
- Pagamento via electronic check.
- Mensalidade.
- Não há validação temporal out-of-time porque a base não possui data clara.
- O horizonte de churn não está explicitado na base.
- O ROI é uma simulação, não um resultado financeiro observado.
- A importância das variáveis não prova causalidade.
- Threshold deve ser recalibrado conforme custo de erro e capacidade operacional.
- Em produção seria necessário teste A/B ou grupo de controle.
Crie o ambiente virtual:
python -m venv .venvAtive o ambiente no Linux/Mac:
source .venv/bin/activateAtive o ambiente no Windows PowerShell:
.\.venv\Scripts\Activate.ps1Ou ative no Windows CMD:
.venv\Scripts\activateInstale as dependências:
pip install -r requirements.txtExecute os notebooks na ordem:
notebooks/01_entendimento_dados.ipynbnotebooks/02_dataprep.ipynbnotebooks/03_feature_selection.ipynbnotebooks/04_machine_learning.ipynbnotebooks/05_resultado_negocio.ipynb
churn-retencao-telecom/
README.md
requirements.txt
.gitignore
data/
raw/
processed/
notebooks/
reports/
images/
presentation/
- Validação temporal out-of-time.
- Calibração formal das probabilidades.
- Teste A/B ou grupo de controle.
- Monitoramento de drift.
- Integração do score ao CRM.
- Retreinamento periódico.
- Mensuração de uplift real pós-campanha.
Machine Learning não reduz churn sozinho. Boas decisões reduzem churn.
O papel do modelo é aumentar a capacidade da empresa de decidir onde agir primeiro, com mais foco, consistência e melhor uso do investimento em retenção.


