Este projeto tem como objetivo desenvolver um modelo de machine learning capaz de prever a saída (churn/attrition) de funcionários com base em dados de Recursos Humanos da IBM.
A rotatividade de funcionários é um custo significativo para as empresas, impactando a produtividade e o recrutamento. Este projeto visa mitigar isso identificando proativamente os funcionários em risco de demissão.
O dataset utilizado foi obtido no Kaggle: IBM HR Analytics Employee Attrition & Performance
Ele contém informações sobre 1.470 funcionários, com variáveis como idade, cargo, tempo de empresa, satisfação no trabalho, entre outras.
- Análise univariada e bivariada das variáveis.
- Verificação de dados ausentes e tratamento de inconsistências.
- Visualizações para entender padrões de attrition.
- Correlações entre variáveis.
Análise de distruibuição e simetria dos dados.
Análise de outliers e separação dos dados consiferando a coluna alvo.
Analisando as correlaç~eos entre as variáveis.
- Codificação de variáveis categóricas.
- Normalização de dados numéricos.
- Separação entre features e target.
- Divisão entre dados de treino e teste.
-
Teste com diferentes algoritmos de classificação.
-
Modelo final escolhido:
LogisticRegression
-
Avaliação com métricas como:
- Acurácia
- Matriz de Confusão
- ROC AUC
- Precisão e Recall
Resultados dos modelos treinados.
O modelo de Regressão Logística foi o que apresentou melhor desempenho, equilibrando simplicidade e performance. Ele se mostrou eficaz na detecção de funcionários com maior probabilidade de sair da empresa.
Apesar do modelo SVC ter obtido um melhor resultado de score, o LogistcRegression foi escolhido devido ter resultados melhores nas métricas como: recall, menor tempo de treinamento e por ser de mais fácil interpretação.
Resultados dos modelos treinados.
- Python 3
- Pandas, NumPy
- Matplotlib, Seaborn
- Scikit-learn
- Jupyter Notebook
Este projeto acadêmico demonstra conhecimentos em análise de dados, visualização e machine learning aplicados a um problema de negócios.
Alguns pontos podem ser destacados com esse estudo:
Váriaveis que mais tem relevância para sáida dos funcionários (churn = yes):
- Horas Extras( OverTime = yes)
- Estado civil Solteiro (MaritalStatus_Single)
- Viagem de negócios frequentemente (BusinessTravel_Travel_Frequently)
Com isso podemos definir algum tipo de plano de ação, como por exemplo:
Plano de Ação
- Avaliar os motivos que levam os funcionários a fazerem hora extra.
- Mão de obra insuficiente
- Falta de organização institucional
- Falta de treinamento
- Necessidade de investimento tecnológico
- Possibilidade de diminuir as viagens de begócios.
- Como isso afeta a equipe de vendas? = Como a renda mensal de cada setor e nível da empresa se comparam com o mercado?
├── .env <- Arquivo de variáveis de ambiente (não versionar)
├── .gitignore <- Arquivos e diretórios a serem ignorados pelo Git
├── environment.yml <- O arquivo de requisitos para reproduzir o ambiente de análise
├── LICENSE <- Licença
├── README.md <- README principal para desenvolvedores que usam este projeto.
|
├── dados <- Arquivos de dados para o projeto.
|
├── modelos <- Modelos treinados e serializados, previsões de modelos ou resumos de modelos
|
├── notebooks <- Cadernos Jupyter. A convenção de nomenclatura é um número (para ordenação),
│ as iniciais do criador e uma descrição curta separada por `-`, por exemplo
│ `01-jn-exploracao-inicial-de-dados`.
│
| └──src <- Código-fonte para uso neste projeto.
| │
| ├── __init__.py <- Torna um módulo Python
| ├── config.py <- Configurações básicas do projeto
| └── graficos.py <- Scripts para criar visualizações exploratórias e orientadas a resultados
| └── auxiliares.py <- função auxiliar
| └── models.py <- funções auxiliares para construção de pipeline e grid search
| └── models_rus.py <- funções auxiliares para construção de pipeline e grid search, versão para under sampling
|
|
├── referencias <- Dicionários de dados, manuais e todos os outros materiais explicativos.
|
├── relatorios <- Análises geradas em HTML, PDF, LaTeX, etc.
│ └── imagens <- Gráficos e figuras gerados para serem usados em relatórios
-
Faça o clone do repositório que será criado a partir deste modelo.
git clone https://github.com/jnjunior-96/projeto_IBM.git
-
Crie um ambiente virtual para o seu projeto utilizando o gerenciador de ambientes de sua preferência.
a. Caso esteja utilizando o
conda
, exporte as dependências do ambiente para o arquivoambiente.yml
:conda env export > environment.yml
Caso queira entrar em contato:
- Nome: [José Nivaldo]
- LinkedIn: [https://www.linkedin.com/in/jnjunior96/]
- E-mail: [jnjunior96@outlook.com]