Este projeto é um MVP (Minimum Viable Product) construído com o intuito de prever o risco de Burnout a partir de dados organizacionais e psicossociais por meio de uma abordagem quantitativa, interpretável e baseada em dados.
-
Estimar o valor contínuo do Burn Rate por meio de modelos de regressão
-
Comparar diferentes algoritmos de aprendizado de máquina
-
Classificar o risco de burnout a partir do valor previsto, utilizando um limiar estatístico
-
Variável alvo: Burn Rate
- Tipo: Numérica contínua
- Intervalo: [0, 1]
-
Principais variáveis:
-
Mental Fatigue Score
- Tipo: Numérica discreta
- Intervalo: [0, 10]
- Representa o nível de fadiga mental reportado pelo colaborador.
-
Resource Allocation
- Tipo: Numérica discreta
- Intervalo: [1, 10]
- Indica a carga de trabalho atribuída ao colaborador.
-
Designation
- Tipo: Numérica discreta (ordinal)
- Intervalo: [0, 5]
- Representa o nível hierárquico do colaborador na organização.
-
Gender
- Tipo: Categórica nominal
- Categorias: Male, Female
-
Company Type
- Tipo: Categórica nominal
- Categorias: Service, Product
-
WFH Setup Available (Work From Home Setup Available)
- Tipo: Categórica nominal
- Categorias: Yes, No
- Indica a acessibilidade para trabalho remoto
-
.
├── 📂 Data/ # Armazenamento de dados do projeto
│ ├── 📂 Dado_processado/ # Dataset limpo e preparado para treino
│ │ └── 📄 burnout_preprocessed.csv
│ └── 📂 EDA/ # Análise exploratória dos dados
│ └── 📓 EDA_burnout.ipynb
│
├── 📂 Front-end+Back_end/ # Interface do usuário e integração
│ ├── 📂 CSS/ # Estilização (style-consultar e style-resultado)
│ ├── 📂 HTML/ # Estrutura das páginas (consultar e resultado)
│ ├── 📂 JS/ # Lógica de interação (script.js)
│ └── 📓 Back_End.ipynb # Integração e lógica de servidor
│
├── 📂 Teste dos modelos/ # Experimentos com diversos algoritmos
│ ├── 📂 Baseline/
│ ├── 📂 Decision Tree Regressor/
│ ├── 📂 KNN/
│ ├── 📂 Linear Regression/
│ ├── 📂 Random Forest/
│ ├── 📂 SVR/
│ └── 📂 Xgboost/ # Modelo de melhor performance
│
├── 📄 modelo_burnout_final.pkl # Modelo treinado e salvo (Pickle)
├── 📓 Modelo_burnout.ipynb # Notebook principal de treinamento
└── 📄 README.md # Documentação do projeto
A análise exploratória dos dados indicou distribuição aproximadamente simétrica do Burn Rate e relações predominantemente lineares entre o Burn Rate e as variáveis numéricas, especialmente o Mental Fatigue Score. Com base nessas evidências, o problema foi formulado como uma tarefa de regressão.
No pré-processamento, foram removidos registros com valores ausentes, excluídas variáveis identificadoras e codificadas as variáveis categóricas. Além disso, foi realizada engenharia de features, com a criação da variável sintética Workload_Index, que combina carga de trabalho e nível hierárquico, visando capturar efeitos conjuntos observados durante o EDA.
-
Baseline (Dummy Regressor)
-
Regressão Linear
-
Árvore de Decisão
-
Random Forest
-
XGBoost
-
SVR
-
KNN
O baseline foi utilizado como referência mínima de desempenho, com todos os modelos comparados com base nas métricas MAE, RMSE e R².
Os resultados evidenciaram que os modelos lineares foram capazes de superar substancialmente o patamar de referência (baseline). A otimização dos resultados por meio do XGBoost revela que a relação entre as variáveis não é estritamente linear. Portanto, o uso de uma arquitetura de gradient boosting permitiu a identificação de padrões e interações complexas, corroborando a necessidade de métodos de aprendizado de máquina mais robustos para a plena captura da variabilidade presente na amostra.
Após a predição contínua do Burn Rate pelo modelo, é aplicada uma função de decisão baseada no quartil superior da distribuição (0,66). Valores acima desse limiar são classificados como alto risco de burnout, enquanto valores inferiores indicam menor risco, garantindo uma classificação objetiva e interpretável.
O projeto foi concebido como um produto preditivo com separação entre backend, responsável pela predição do Burn Rate e classificação do risco, e frontend, destinado à visualização dos resultados. Essa estrutura permite futura integração com interfaces voltadas a ambientes corporativos e de saúde ocupacional.
Todo o código foi produzido e funcionou localmente no python 3.13.5
Antes de qualquer uma das formas: no terminal, crie um ambiente virtual e ative-o
python -m venv venv <- Cria o ambiente virtual
- Dispositivos Windows:
.\venv\Scripts\activate -< Ativa o ambiente virtual
- Dispositivos Linux/Mac:
source venv/bin/activate <- Ativa o ambiente virtual
Forma 1 (back-end + front_end):
-
Clone o repositório:
git clone https://github.com/arthlz/Burnout-Risk-Machine-Learning
-
Clique na pasta Front_end+Back_end, acesse o arquivo Back_End.ipynb e execute-o:
├── 📂 Front-end+Back_end/ # Interface do usuário e integração │ ├── 📂 CSS/ # Estilização (style-consultar e style-resultado) │ ├── 📂 HTML/ # Estrutura das páginas (consultar e resultado) │ ├── 📂 JS/ # Lógica de interação (script.js) │ └── 📓 Back_End.ipynb # Integração e lógica de servidor
-
Clique na pasta HTML e execute o consultar.html (Recomendo baixar a extensão live server e abrir o html por ela):
├── 📂 Front-end+Back_end/ │ ├── 📂 CSS/ │ ├── 📂 HTML/ │ ├── 📓 consultar.html # Execute esse arquivo. │ ├── 📓 resultado.html │ ├── 📂 JS/ │ └── 📓 Back_End.ipynb
Se não funcionar, tente da segunda forma:
Forma 2 (Localmente no terminal):
-
Clone o repositório:
git clone https://github.com/arthlz/Burnout-Risk-Machine-Learning
-
Acesse o arquivo modelo_burnout.ipynb
├── 📂 Data/ ├── 📂 Front-end+Back_end/ ├── 📂 Teste dos modelos/ ├── 📄 modelo_burnout_final.pkl ├── 📓 Modelo_burnout.ipynb # Execute esse arquivo └── 📄 README.md -
Selecione o kernel Python Environment Python 3.13.5 e clique em run all:
Preencha as informações para as perguntas e receba o resultado do burn_rate
|
Arthur Luz |
Dalvan Gustavo |
Maria Luísa |
Severino João |
Thiago Luiz |