Skip to content

Davisdenner/Prevision-Churn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Customer Churn Prediction API

Python FastAPI Scikit-Learn Joblib Docker SHAP

Este projeto implementa uma solução completa de Machine Learning para prever a evasão de clientes (Churn). O objetivo é transformar dados brutos em insights acionáveis através de um modelo preditivo robusto.

Destaques Técnicos: Pipeline Completo: Desde a análise exploratória (EDA) até o deploy.

API de Produção: Implementação de uma API REST pronta para integração com sistemas externos.

Dataset: Telco Customer Churn (Kaggle).

Diferencial: Vai além de modelos executados em notebooks. Este projeto entrega uma solução de Machine Learning pronta para produção, exposta via API e projetada para escalar, refletindo um cenário real de engenharia de Machine Learning.

Visão Geral

O modelo analisa o perfil do cliente (tipo de contrato, serviços assinados, cobranças e tempo de casa) e retorna a probabilidade dele abandonar o serviço. Isso permite que empresas de SaaS ou Telecom tomem medidas preventivas.

Diferenciais Técnicos:

  • Pipeline Automatizado: O modelo utiliza um churn_pipeline.pkl que encapsula o pré-processamento e o algoritmo, garantindo consistência nos dados.
  • Performance: API com FastAPI.
  • Gestão de Ciclo de Vida: Uso de lifespan do FastAPI para carregamento eficiente do modelo em memória.
  • Segurança de Tipos: Validação de dados de entrada via Pydantic.

Tecnologias Utilizadas

  • Linguagem: Python
  • Modelagem: Scikit-Learn / Pandas
  • API: FastAPI / Uvicorn
  • Serialização: Joblib

Estrutura do Projeto

O projeto está organizado seguindo as boas práticas de engenharia de dados:

  • api/: Contém o main.py com a API desenvolvida em FastAPI.
  • src/data/: Separação entre dados brutos (raw) e dados limpos (processed).
  • src/features/: Scripts para engenharia de atributos.
  • src/models/: Scripts de treinamento e o artefato final do modelo (churn_pipeline.pkl).
  • src/reports/figures/: Visualizações geradas, incluindo o SHAP Summary Plot.
  • src/visualization/: Scripts dedicados à geração de gráficos e análise visual.

Como Executar

Instale as dependências:

pip install -r requirements.txt

Inicie a API:

uvicorn api.main:app --reload

Acesse a Documentação: Acesse http://127.0.0.1:8000/docs para testar a API via Swagger UI.

Exemplo de Uso (Payload)

Para testar a predição, envie um POST para /predict com o seguinte formato:

{
  "gender": "Female",
  "SeniorCitizen": 0,
  "Partner": "Yes",
  "Dependents": "No",
  "tenure": 12,
  "PhoneService": "Yes",
  "MultipleLines": "No",
  "InternetService": "Fiber optic",
  "OnlineSecurity": "No",
  "OnlineBackup": "Yes",
  "DeviceProtection": "No",
  "TechSupport": "No",
  "StreamingTV": "Yes",
  "StreamingMovies": "Yes",
  "Contract": "Month-to-month",
  "PaperlessBilling": "Yes",
  "PaymentMethod": "Electronic check",
  "MonthlyCharges": 85.5,
  "TotalCharges": 1024.3
}

Próximos Passos

[Incluído] Implementar explicabilidade local com SHAP no retorno da API.

[Incluído] Criar imagem Docker para deploy escalável.

[Incluído] Implementar monitoramento de métricas do modelo (ML Model Monitoring).

Desenvolvido por: Davis Denner Costa Silva

LinkedIn: davis-denner-costa-silva

GitHub: Davisdenner

About

Este projeto implementa uma solução completa de Machine Learning para prever a evasão de clientes (Churn).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors