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.