Icon

6_​Session_​3 HR Attrition All Classification Model_​Exercise

EDA - Univariate Analysis
EDA - Bivariate Analysis
Data Pre-Processing
Logistic Regression Model [Classification]
Decision Tree without Pruning
Decision Tree with Pruning
Random Forrest
Gradient Boosted Trees with Default Hyperparameters
Gradient Boosted Trees with Custom Hyperparameters
Neural Network with default Hyperparameters
Neural Network with Custom Hyperparameters

Attrition - Classification Problem

The company believes in hiring the best talent available and retaining them for as long as possible. A huge amount of resources is spent on retaining existing employees through various initiatives. The Head of People Operations wants to bring down the cost of retaining employees by employing latest AI practices.

He proposes to introduce a different incentive structure for those employees who are at risk of attrition. For this, he has asked you,  Head of People Analytics to lead the initiative.

Objective

You & your team has been asked to identify patterns in characteristics of employees who leave the organisation. Also, you have to build an AI model that can predict if an employee is at risk of attrition. This information will be used to target them with a new incentive structure.

Task to be performed

  • What are the different factors that can help in identifying employees at risk of attrition?

  • Can we build classification Models to predict the attrition of employees? What should be the metric of choice to evaluate such a model? How can we tune the hyperparameters of the models to improve the performance of the model?

Data Dictionary

EmployeeNumber: Employee Identifier

Attrition: Did the employee attrite? Yes or No

Age: Age of the employee in years

BusinessTravel: Travel commitments for the job

Department: Employee Department

DistanceFromHome: Distance from work to home (in km)

Education: 1-Below College, 2-College, 3-Bachelor, 4-Master, 5-Doctor

EducationField: Field of Education

EnvironmentSatisfaction: 1-Low, 2-Medium, 3-High, 4-Very High

Gender: Employee's gender

JobInvolvement: 1-Low, 2-Medium, 3-High, 4-Very High

JobLevel: Level of job (1 to 5)

JobRole: Job Roles

JobSatisfaction: 1-Low, 2-Medium, 3-High, 4-Very High

Data Dictionary

MaritalStatus: Marital Status

MonthlyIncome: Monthly Salary

NumCompaniesWorked: Number of companies worked at

OverTime: Overtime? Yes or No

PercentSalaryHike: The percentage increase in salary last year

PerformanceRating: 1-Low, 2-Good, 3-Excellent, 4-Outstanding

RelationshipSatisfaction: 1-Low, 2-Medium, 3-High, 4-Very High

StockOptionLevel: Stock Option Level

TotalWorkingYears: Total years worked

TrainingTimesLastYear: Number of training attended last year

WorkLifeBalance: 1-Low, 2-Good, 3-Excellent, 4-Outstanding

YearsAtCompany: Years at Company

YearsInCurrentRole: Years in the current role

YearsSinceLastPromotion: Years since the last promotion

YearsWithCurrManager: Years with the current manager

What is the best model measured by accuracy?

  • Logistic Regression: 88.78% F1-Sore: 0,569

  • Decision Tree without Pruning: 92.06% F1-score: 0,76

  • Decision Tree with Pruning: 87.98% F1-socre: 0,518

  • Random Forest: 96.15% F1-Score: 0,866

  • Gradient Boosted Trees with default Hyperparameters: 94,56% F1- Score: 0,80

  • Gradient Boosted Trees with custom Hyperparameters: 97.28% F1-Score: 0,901

  • Neural Network with default Hyperparameters: 94.90% F1-Score: 0,822

  • Neural Network with custom Hyperparameters: 93.54% F1-Score: 0,805

Conclusion:

O Melhor Modelo é:Gradient Boosted Trees (Custom).

As Métricas:

  • Taxa de Acerto (Accuracy):97.28% (A mais alta de todas)

  • F1-Score:0.901 (O mais alto de todos)


Porquê?

Para justificar esta escolha, devemos olhar para três dimensões:

1. A consistência entre Métricas (O fator decisivo)

Muitas vezes, um modelo tem boa Acurácia mas mau F1-Score (como vemos na Regressão Logística, que tem ~89% de acerto mas um F1 fraco de 0.569). O Gradient Boosted Trees (Custom) é o vencedor indiscutível porque domina em ambas as frentes.

  • Ter um F1-Score de 0.901 num problema de RH é um resultado excecional. Significa que o equilíbrio entre encontrar quem sai (Recall) e não dar falsos alarmes (Precision) é quase perfeito.

2. Comparação com o "Segundo Lugar" (Random Forest)

O Random Forest foi o segundo melhor modelo:

  • Accuracy: 96.15% (vs 97.28% do GBT)

  • F1-Score: 0.866 (vs 0.901 do GBT)

Embora o Random Forest seja excelente e muito robusto (e mais fácil de configurar), o ajuste fino ("tuning") que fizemos no Gradient Boosted Trees (aumentando a profundidade e a taxa de aprendizagem) permitiu ao modelo aprender padrões mais subtis e difíceis que o Random Forest deixou escapar. O GBT "espremeu" aquele desempenho extra dos dados.

3. A "Desilusão" da Árvore de Decisão

É importante notar a diferença brutal entre a Árvore de Decisão simples e os métodos de Ensemble (Random Forest e GBT).

  • A melhor árvore (sem poda) teve um F1-Score de 0.76.

  • O GBT (Custom) teve 0.901. Isto prova a teoria: uma única árvore é limitada, mas muitas árvores a trabalhar em conjunto (seja em paralelo como na Floresta, ou em sequência como no Gradient Boosting) são imbatíveis em dados tabulares.

Nota Importante de "Data Science" (Caveat)

Apesar de o GBT Custom ser o vencedor matemático, deve-se deixar um alerta:

  • Os parâmetros usados (Learning Rate 0.4 e Profundidade 8) são muito agressivos.

  • Neste conjunto de teste funcionou muito bem (97%), mas na vida real, um modelo tão agressivo corre maior risco de Overfitting futuro se os dados mudarem.

  • Por isso, num cenário empresarial real, o Random Forest (com 96% e F1 0.866) seria muitas vezes a escolha "mais segura" e estável, apesar de ser matematicamente o "segundo lugar". Mais ainda é um modelo em que se consegue, embora com alguma complexidade, explicar como o algoritmo chegou à resposta logo conseguimos executar o principio da Explicabilidade.

Resposta e Recomendações

1. Diagnóstico (Os "Culpados")

Baseado no comportamento típico deste dataset e no que os algoritmos (especialmente a Árvore de Decisão e o Random Forest) costumam detetar:

  1. Culpado Nº 1: OverTime (Horas Extra)

    • Evidência no Modelo: Normalmente, é o primeiro nó (a raiz) da Árvore de Decisão.

    • Evidência na EDA: A taxa de saída entre quem faz OverTime = Yes é geralmente superior a 30%, enquanto nos que não fazem é inferior a 10%.

    • Interpretação: O "Burnout" ou exaustão é o fator mais crítico.

  2. Culpado Nº 2: MonthlyIncome (Salário)

    • Evidência: Aparece frequentemente nos nós de decisão logo abaixo do topo ou no Conditional Box Plot.

    • Interpretação: Existe uma correlação forte: salários mais baixos têm taxas de saída muito maiores. À medida que o salário sobe, a retenção aumenta drasticamente.

  3. Culpado Nº 3: StockOptionLevel (Incentivos/Ações)

    • Evidência: Visível na Crosstab.

    • Interpretação: Colaboradores com Nível 0 de Stock Options são os que mais saem. A partir do momento em que têm "pele no jogo" (nível 1 ou 2), a lealdade aumenta.

(Outros culpados comuns que podem aparecer: Age (jovens saem mais) e TotalWorkingYears (menos experiência sai mais)).


2. Plano de Ação (Recomendações de RH)

Aqui estão as medidas concretas podem propor para atacar os problemas diagnosticados acima:

Medida A: Programa de "Qualidade de Vida e Gestão de Carga" (Ataque ao OverTime)

  • Problema: O modelo indicou que fazer horas extra é o maior preditor de saída.

  • Ação:

    1. Realizar uma auditoria aos departamentos com maior OverTime.

    2. Implementar uma política de compensação mais agressiva (pagar mais pelas horas extra) OU, idealmente, contratar mais staff para reduzir a necessidade de horas extra.

    3. Monitorizar o "Risco de Burnout": Se alguém fizer horas extra 3 meses seguidos, o RH recebe um alerta.

Medida B: Reestruturação do Pacote de Incentivos (Ataque ao StockOption e Salário)

  • Problema: Quem não tem Stock Options (Nível 0) e tem salários mais baixos (frequentemente juniores) sai da empresa.

  • Ação:

    1. Eliminar o "Nível 0" de Stock Options. Criar um pacote mínimo de entrada para todos os colaboradores após o período experimental (mesmo que simbólico). Isto cria um sentimento de pertença ("Dono").

    2. Rever as tabelas salariais de entrada (Entry-level), pois é onde a hemorragia é maior.

Exercício Prático: Classificação e Previsão de Rotatividade (HR Attrition)

1. Introdução Teórica: Algoritmos de Machine Learning

Antes de iniciarmos o exercício prático no KNIME, é fundamental compreender "o que" são as ferramentas que vamos utilizar. Neste laboratório, vamos focar-nos em problemas de Classificação, onde o objetivo é prever uma categoria discreta (ex: Sim/Não ou 0/1).

1.1 Regressão Logística (Logistic Regression)

●      Conceito: É o algoritmo fundamental para classificação binária. Apesar do nome, não é usado para prever valores contínuos (como o preço de uma casa), mas sim probabilidades. Utiliza uma função em forma de "S" (função Sigmoide) para converter qualquer input num valor entre 0 e 1.

●      Como funciona: Calcula a soma ponderada das variáveis de entrada. Se o resultado for superior a 50%, classifica como "Sim"; caso contrário, "Não".

●      Aplicação: Ideal para quando precisamos de explicar como cada variável afeta o resultado (ex.: "Cada ano extra de idade reduz o risco de saída em 5%").

1.2 Árvore de Decisão (Decision Tree)

●      Conceito: Imita o raciocínio humano através de um fluxograma de regras "Se... Então...". Divide os dados repetidamente em grupos cada vez mais homogéneos.

●      Conceito Chave: Overfitting e Pruning (Poda)

○      Overfitting: Se deixarmos a árvore crescer sem limites, ela cria regras demasiado específicas para os dados de treino, decorando ruído e falhando em novos dados.

○      Pruning: É a técnica de "cortar" os ramos mais fracos da árvore para a tornar mais simples e generalista. No KNIME, usamos o método MDL (Minimum Description Length) para encontrar o equilíbrio entre precisão e simplicidade.

1.3 Random Forest (Floresta Aleatória)

●      Conceito (Bagging): A intuição é que "a sabedoria da multidão supera o indivíduo". Este algoritmo cria centenas de Árvores de Decisão independentes.

●      Como funciona: Cada árvore é treinada com uma parte diferente dos dados e perguntas diferentes. No final, todas as árvores "votam". A classe vencedora é a previsão final.

●      Vantagem: É extremamente robusto. Dificilmente entra em Overfitting porque os erros de uma árvore são cancelados pelos acertos das outras.

1.4 Gradient Boosted Trees (GBT)

●      Conceito (Boosting): Ao contrário da Floresta (onde as árvores são independentes), aqui as árvores aprendem em sequência.

●      Como funciona: A Árvore 1 faz previsões. A Árvore 2 analisa onde a Árvore 1 errou e tenta corrigir esses erros específicos. A Árvore 3 corrige os erros da Árvore 2, e assim por diante.

●      Cuidado: É muito poderoso, mas como se foca obsessivamente nos erros, pode decorar ruído se não limitarmos a profundidade ou a taxa de aprendizagem (learning rate).

1.5 Redes Neuronais (Neural Networks / MLP)

●      Conceito: Inspirado na biologia. É composto por "neurónios" artificiais organizados em camadas.

●      Como funciona: Os dados passam por várias camadas ocultas (Hidden Layers), onde são transformados matematicamente para encontrar padrões não-lineares complexos.

●      Requisito Crítico: Exige que todos os dados numéricos estejam na mesma escala (ex: entre 0 e 1), obrigando ao uso de Normalização.

1.6 Avaliação de Modelos: Muito além da "Taxa de Acerto"

Para avaliar corretamente um modelo, precisamos de olhar para além da simples percentagem de acertos.

A. Matriz de Confusão (A Base)

Uma tabela que cruza a Realidade com a Previsão:

●      True Positives (TP): O modelo previu que saía e saiu mesmo. (Acerto Crítico)

●      True Negatives (TN): O modelo previu que ficava e ficou. (Acerto Normal)

●      False Positives (FP): O modelo previu que saía, mas ficou. (Alarme Falso)

●      False Negatives (FN): O modelo previu que ficava, mas saiu. (O erro mais perigoso em RH - perder talento sem aviso!)

B. Métricas Derivadas

●      Precision (Precisão): Das pessoas que o modelo disse que iam sair, quantas saíram mesmo?

○      Fórmula: TP / (TP + FP)

○      Quando usar: Quando queremos evitar falsos alarmes (não queremos incomodar funcionários felizes com planos de retenção desnecessários).

●      Recall (Sensibilidade): Das pessoas que realmente saíram, quantas o modelo conseguiu detetar?

○      Fórmula: TP / (TP + FN)

○      Quando usar: Quando o custo de perder alguém é muito alto. Queremos apanhar todos os casos de risco, mesmo que isso gere alguns falsos alarmes.

●      F1-Score: É a média harmónica entre a Precision e o Recall.

○      Fórmula: 2 (Precision Recall) / (Precision + Recall)

○      Significado: É a métrica suprema para dados desequilibrados. Se o F1-Score for alto, significa que o modelo é robusto e não está apenas a "chutar" na classe maioritária.

C. Curva ROC e AUC

●      Curva ROC: Ilustra o compromisso entre apanhar verdadeiros positivos (Eixo Y) e gerar falsos alarmes (Eixo X).

●      AUC (Area Under Curve): Varia entre 0 e 1.

○      0.5: Aleatório (Moeda ao ar).

○      0.79: Bom modelo (79% de probabilidade de distinguir corretamente as classes).

○      1.0: Perfeito (Suspeito, provavelmente Overfitting).

2. Contexto do Problema (O Cenário de RH)

O departamento de Recursos Humanos (RH) de uma grande empresa está preocupado com a taxa de saída dos seus colaboradores (attrition). A empresa acredita que contratar os melhores talentos e mantê-los é crucial para o sucesso.

O seu objetivo: Como Analista de Dados / Data Scientist, deve utilizar o KNIME para identificar padrões e construir modelos que prevejam quem está em risco de sair. Esta informação servirá para desenhar novas políticas de retenção.

3. Guião de Trabalho no KNIME

Siga os passos abaixo para construir o seu fluxo de análise.

Passo 1: Leitura e Análise Exploratória (EDA)

Tarefa: Carregue os dados (CSV Reader) e utilize gráficos para responder às perguntas de negócio.

1.1 Análise Univariada (Distribuições)

●      Use Histogram ou Bar Chart.

●      Verifique a coluna Attrition: Temos o mesmo número de pessoas que saíram e ficaram?

1.2 Análise Bivariada (Descobrir Padrões)

Cruze variáveis com o Attrition usando Conditional Box Plot e Crosstab:

●      Salário vs Saída: Quem ganha menos sai mais?

●      Idade vs Saída: São os jovens ou os seniores que saem?

●      Horas Extra (OverTime): Qual a % de saída entre quem faz horas extra vs quem não faz?

●      Stock Options: A falta de ações da empresa (StockOptionLevel = 0) leva à saída?

Passo 2: Pré-processamento e Partição

Antes da matemática, temos de preparar os dados.

1.     Codificação (One to Many): Transforme as colunas de texto (ex: Department) em números.

○      Porquê: A maioria dos algoritmos (como Regressão Logística e Redes Neuronais) baseia-se em equações matemáticas (somas e multiplicações). Eles não conseguem "multiplicar" uma palavra como "Vendas" ou "RH" por um coeficiente. Precisam de números.

○      Como funciona (One-Hot Encoding): O nó cria uma nova coluna binária para cada categoria possível.

■      Exemplo: Se um funcionário for do departamento de "Vendas", terá 1 na coluna Department_Sales e 0 na coluna Department_HR. Assim, tornamos o texto compreensível para a máquina sem criar uma ordem artificial (como 1<2<3).

2.     Partição (Partitioning):

○      Divida em Treino (80%) e Teste (20%).

○      Obrigatório: Use "Stratified Sampling" na coluna Attrition.

○      Porquê? Garante que a proporção de saídas se mantém igual nas duas partições (não queremos um teste sem exemplos de saída!).

Passo 3: Modelação e Testes (Machine Learning)

Implemente os modelos estudados na secção teórica.

3.1 Regressão Logística (O Baseline)

●      Treine o modelo e avalie-o duas vezes: uma com os dados de Treino e outra com os dados de Teste.

●      Objetivo: Se a Taxa de Acerto no Treino for muito superior à do Teste, existe Overfitting.

3.2 Árvores de Decisão (O Efeito do Pruning)

Crie dois fluxos paralelos para comparar:

●      Fluxo A (Sem Poda): Decision Tree Learner com "No Pruning" e "Min records per node" = 2.

○      Expectativa: Vai decorar o treino (Overfitting). A Taxa de Acerto no treino será quase 100%.

●      Fluxo B (Com Poda) e Curva ROC: 1. Configure o Decision Tree Learner com MDL e Reduced Error Pruning ativados.
2. Ligue a saída do Decision Tree Predictor (Teste) a um nó ROC Curve.
3. Análise da Curva: Abra a visualização.
* Observe a linha azul. Quanto mais curvada em direção ao canto superior esquerdo, melhor.
* Interpretação do Resultado: Deverá ver um valor de AUC (Area Under Curve) próximo de 0.790.
* Pergunta: O que significa este valor de 0.790? É um modelo bom ou mau? (Dica: Compare com 0.5 que seria aleatório).

3.3 Random Forest (A Multidão)

●      Configure o Random Forest Learner com 100 árvores.

●      Compare o resultado com a Árvore de Decisão simples. A estabilidade aumentou?

3.4 Gradient Boosted Trees (Parâmetros)

●      Default: Use as configurações padrão.

●      Custom: Teste uma versão agressiva (Profundidade 8, Learning Rate 0.4, 150 modelos).

○      Análise: O Learning Rate alto causou instabilidade ou Overfitting? Olhe para a Taxa de Acerto no Treino vs Teste.

3.5 Redes Neuronais (A Complexidade)

●      Pré-requisito: Utilize o nó Normalizer (Min-Max 0-1) antes do learner.

●      Teste: Compare uma rede simples (Default) com uma rede profunda (6 camadas ocultas, 15 neurónios, 350 iterações). O tempo extra de computação compensou na Taxa de Acerto?

Passo 4: Avaliação Global e Estudo de Caso

Utilize o nó Scorer para comparar os modelos no conjunto de Teste.

⚠ CUIDADO NA INTERPRETAÇÃO DA TABELA:

Não olhe apenas para a Accuracy (Taxa de Acerto) global.

1.     Na tabela do Scorer, procure a linha onde RowID diz "Yes".

2.     Este é o valor que interessa: O F1-Score da linha "Yes" diz-nos quão bom o modelo é a detetar pessoas que vão sair.

3.     Se um modelo tiver 90% de Taxa de Acerto global mas um F1-Score de 0.20 na linha "Yes", esse modelo é inútil para o RH (pois só acerta em quem fica).

Estudo de Caso 1: "O Modelo Perigoso" (Gradient Boosted Trees - Exemplo)

Imagine que obteve estes resultados:

●      Taxa de Acerto Global (Accuracy): 91.3%

●      Precision (Yes): 89.2%

●      Recall (Yes): 52.1%

Análise: Apesar da alta Taxa de Acerto (91%), o modelo só deteta metade (52%) das pessoas que vão sair. É perigoso para a empresa confiar neste modelo, pois vai perder muitos talentos sem aviso.

Estudo de Caso 2: "O Modelo Vencedor" (Random Forest - Exemplo)

Agora imagine que obteve estes resultados:

●      Taxa de Acerto Global (Accuracy): 96.1%

●      Precision (Yes): 98.2%

●      Recall (Yes): 77.5%

Análise: Este modelo é muito superior!

1.     Recall: Subiu de 52% para 77.5%. Agora detetamos a grande maioria dos riscos.

2.     Precision: Quase perfeita (98%). Quando o modelo avisa, é para levar a sério.

3.     Conclusão: A estratégia de "Ensemble" (usar 100 árvores) compensou claramente, criando um modelo robusto e equilibrado.

4. Dicas Práticas: Como Descobrir os "Culpados" (Data Mining)

Para responder às perguntas de negócio, não basta olhar para a tabela de Taxa de Acerto. Tem de "interrogar" os dados e os modelos. Veja aqui como fazê-lo:

4.1 Na Análise Exploratória (EDA)

Abra a vista interativa dos nós (Botão direito -> Interactive View) para confirmar visualmente as suas suspeitas.

●      O Fator Cansaço (OverTime):

○      Onde: Utilize o gráfico de barras ou Crosstab.

○      O que procurar: Compare as barras. Se a barra de saída for muito maior proporcionalmente no grupo "OverTime = Yes", confirmou um problema de gestão de carga de trabalho.

●      O Fator Financeiro (StockOptionLevel):

○      Onde: Crosstab.

○      O que procurar: Verifique se os colaboradores com Nível 0 (nenhuma ação) têm uma taxa de abandono drástica comparada com o Nível 1. Se sim, falta "pele no jogo" (incentivos).

●      O Fator Carreira (MonthlyIncome ou JobLevel):

○      Onde: Conditional Box Plot.

○      O que procurar: Se a "caixa" dos que saem estiver visivelmente mais abaixo no eixo dos valores, é sinal claro que saem para ganhar mais noutro lado.

Attrition by Job Satisfaction
Crosstab
Normalizer (Apply)
RProp MLP Learner
Correlation on Numerical Variables
Linear Correlation
Scorer
Scorer
Training
MultiLayerPerceptron Predictor
Test
MultiLayerPerceptron Predictor
Table Partitioner
Test
MultiLayerPerceptron Predictor
Logistic Regression Learner
RProp MLP Learner
One to Many
Scorer
Column Filter
Prediction on Training Data
Logistic Regression Predictor
Prediction on Test Data
Logistic Regression Predictor
Performance on Test data
Scorer
Training
MultiLayerPerceptron Predictor
Scorer
ROC Curve
ROC Curve
Performance on Train Data
Scorer
ROC Curve
Test
Decision Tree Predictor
On training Data
Decision Tree Learner
ROC Curve
Training
Decision Tree Predictor
ROC Curve
On training Data
Decision Tree Learner
Training
Scorer
Test
Scorer
HR+Employee+Attrition.csv
CSV Reader
Data Explorer
Attrition
Bar Chart (JavaScript) (legacy)
Environmental Satisfaction
Bar Chart (JavaScript) (legacy)
Job Satisfaction
Bar Chart (JavaScript) (legacy)
Work Life Balance
Bar Chart (JavaScript) (legacy)
Age by Attrition
Conditional Box Plot (JavaScript) (legacy)
ROC Curve
Test
Decision Tree Predictor
Test
Scorer
Training
Decision Tree Predictor
Training
Scorer
Test
Random Forest Predictor
Training
Scorer
Random Forest Learner
Training
Random Forest Predictor
Test
Scorer
Gradient Boosted Trees Learner
Training
Gradient Boosted Trees Predictor
Scorer
Statistics on monthly income by attrition
GroupBy
Gradient Boosted Trees Learner
Test
Gradient Boosted Trees Predictor
Scorer
Statistics on age by attrition
GroupBy
Attrition by Business Travel Frequency
Crosstab
Test
Gradient Boosted Trees Predictor
Monthly income by attrition
Conditional Box Plot (JavaScript) (legacy)
Attrition by Department
Crosstab
Scorer
Years at company by Attrition
Conditional Box Plot (JavaScript) (legacy)
Training
Gradient Boosted Trees Predictor
Statistics on years at the company by attrition
GroupBy
Scorer
Attrition by Stock Option Level
Crosstab
Attrition by Environmental Satisfaction
Crosstab
Attrition by Marital Status
Crosstab
Normalizer
Attrition by Overtime Work
Crosstab

Nodes

Extensions

Links