Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/diegoribeiro2/previsao_de_churn_utilizando_python_e_streamlit
Projeto de previsibilidade de churn utilizando Python e Streamlit, aaplicando os conhecimentos sobre classificação para desenvolver um modelo que prevê se um cliente irá ou não cancelar o serviço (churn).
https://github.com/diegoribeiro2/previsao_de_churn_utilizando_python_e_streamlit
jupyter-notebook python streamlit
Last synced: 10 days ago
JSON representation
Projeto de previsibilidade de churn utilizando Python e Streamlit, aaplicando os conhecimentos sobre classificação para desenvolver um modelo que prevê se um cliente irá ou não cancelar o serviço (churn).
- Host: GitHub
- URL: https://github.com/diegoribeiro2/previsao_de_churn_utilizando_python_e_streamlit
- Owner: diegoribeiro2
- Created: 2024-10-02T22:48:06.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-17T13:09:25.000Z (about 1 month ago)
- Last Synced: 2024-11-09T11:08:10.750Z (10 days ago)
- Topics: jupyter-notebook, python, streamlit
- Language: Jupyter Notebook
- Homepage:
- Size: 547 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Introdução:
Neste case prático, analisei a previsibilidade de churn utilizando Python e Streamlit.
O objetivo é aplicar os conhecimentos adquiridos sobre classificação para desenvolver um modelo que prevê se um cliente irá ou não cancelar o serviço (churn).Foi utilizado um dataset da IBM com dados fictícios de uma companhia telefônica.
O case seguiu as etapas do processo CRISP-DM de mineração de dados para construir o modelo preditivo.
Em seguida, o modelo foi disponibilizado em um aplicativo Streamlit para prever novos clientes.Etapas do Case:
As etapas propostas para resolução do case são:
- Criar um arquivo requirements.txt com as bibliotecas Python necessárias
- Criar um ambiente virtual para isolamento das dependências
- Desenvolver o modelo seguindo as etapas do CRISP-DM
- Criar um app Streamlit para prever novos clientesEntendimento dos Dados:
O conjunto de dados fornecido contém 7043 linhas (clientes) e 21 colunas (variáveis ou atributos) sobre cada cliente.
As variáveis incluem informações demográficas (gênero, idade, região, etc), serviços utilizados (internet, segurança online, backups), dados de pagamentos e suporte.
A variável-alvo que queremos prever é a coluna “Churn”, que indica se o cliente cancelou (1) ou não (0) o serviço.Preparação dos Dados
Realizei algumas transformações nos dados para prepará-los para o modelo de machine learning:
- Converte valores ausentes para NaN
- Substitui NaN por média, mediana ou valor mais frequente
- Codifica variáveis categóricas como valores numéricos
- Normaliza os dados para uma escala comum
- Divide o conjunto entre treino (80%) e teste (20%)Esse pré-processamento é essencial para garantir a qualidade dos dados que alimentam o modelo.
Modelagem:
Testei vários algoritmos de classificação, utilizando validação cruzada para avaliar o desempenho dentro do conjunto de treino:
- Regressão Logística
- Árvores de Decisão
- Florestas Aleatórias
- Máquinas de Vetor de Suporte (SVM)O melhor modelo foi uma Floresta Aleatória com acurácia de ~85% na validação cruzada.
Avaliação:
Finalmente, avaliei o desempenho do modelo escolhido no conjunto de teste, obtendo 84% de acurácia. Isso indica que o modelo generaliza bem para dados totalmente novos.
Também analiseis a matriz de confusão, curva ROC, precisão, recall e outras métricas relevantes para o negócio.
O modelo final está pronto para ser utilizado em produção.Aplicativo Streamlit
Para disponibilizar as previsões, desenvolvi um aplicativo web usando a biblioteca Streamlit.
A interface permite que o usuário envie novos dados de clientes e receba como resposta a probabilidade estimada de churn para cada um.
O app lê o arquivo com o modelo treinado, faz o preprocessamento dos dados de entrada da mesma forma que nos dados de treino, utiliza o modelo para gerar as previsões e exibe uma tabela com as probabilidades.
O código também permite enviar um arquivo inteiro com múltiplos clientes e obter as previsões em lote, o que é mais eficiente.
Assim, o aplicativo web disponibiliza de forma muito simples e rápida as previsões do nosso modelo de machine learning treinado no Python.Considerações Finais
Neste projeto, apliquei com sucesso técnicas de classificação e deploy de modelo para resolver um importante caso de negócio envolvendo previsão de churn.
O app Streamlit fornece uma interface amigável para que os gestores da empresa possam identificar clientes com risco de cancelamento e tomar ações para reter essas pessoas.
Dessa forma, uni a poderosa capacidade preditiva de algoritmos de machine learning com a praticidade do desenvolvimento web, provendo valor real ao negócio.