Skip to content

sdvfh/v-lab-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desafio técnico – Predição de evasão acadêmica (V-Lab)

Problema

O objetivo é identificar estudantes em risco de evasão acadêmica para subsidiar ações preventivas. O notebook apresenta uma análise exploratória, um modelo preditivo de baseline e uma avaliação/correção de fairness voltada à subidentificação de estudantes bolsistas.

Dataset

  • Fonte: UCI Machine Learning Repository – Predict Students' Dropout and Academic Success.
  • Escopo: 4.424 registros com variáveis socioeconômicas, acadêmicas e administrativas.
  • Variável alvo: Target (Graduate, Dropout, Enrolled), binarizada como evasão (1 = Dropout) e permanência (0 = Graduate/Enrolled).
  • Observação importante: embora não haja NaN no arquivo, parte das variáveis utiliza códigos específicos para representar valores desconhecidos. Esses códigos são tratados durante o pré-processamento.

Metodologia

  1. Aquisição e leitura do dataset (download automático via URL oficial).
  2. Pré-processamento com tradução de colunas, criação da variável alvo e engenharia de atributos (binarização de categorias, imputação de códigos desconhecidos com a moda do treino e remoção de colinearidade).
  3. Divisão estratificada em treino/validação/teste (80/10/10) com semente fixa para reprodutibilidade.
  4. Análise estatística com qui-quadrado, V de Cramér e odds ratio para variáveis binárias; Mann–Whitney para variáveis contínuas.
  5. Modelo baseline de regressão logística.
  6. Avaliação de desempenho global e por subgrupo (accuracy, precision, recall, F1 e ROC-AUC).
  7. Avaliação de fairness focada em equal opportunity (paridade de TPR) entre bolsistas e não-bolsistas.
  8. Correção de fairness via pós-processamento com ThresholdOptimizer (Fairlearn), impondo paridade de TPR.

Resultados (conjunto de teste)

  • Baseline (geral): acurácia ≈ 0,867; recall ≈ 0,697; F1 ≈ 0,770; ROC-AUC ≈ 0,911.
  • Menor recall observado: grupo de mulheres bolsistas.
  • Fairness (baseline):
    • TPR não-bolsistas ≈ 0,734 vs. bolsistas ≈ 0,357 (Δ ≈ 0,377; razão ≈ 0,486).
    • FPR não-bolsistas ≈ 0,066 vs. bolsistas ≈ 0,022.
  • Após correção por equal opportunity:
    • TPR bolsistas ≈ 0,429 e não-bolsistas ≈ 0,727 (Δ ≈ 0,298; razão ≈ 0,590).
    • FPR aumenta de forma moderada (bolsistas ≈ 0,033; não-bolsistas ≈ 0,076).
    • Acurácia de não-bolsistas reduz para ≈ 0,850 (queda controlada).

Valores arredondados e extraídos diretamente das métricas geradas no notebook.

Limitações

  • Binarização do alvo simplifica o problema e perde nuances entre “matriculado” e “concluinte”.
  • Modelo linear simples (regressão logística) sem tuning extensivo; há margem para ganhos com modelos mais expressivos.
  • Avaliação com uma única divisão de dados; não há validação cruzada.
  • Fairness restrita ao atributo “bolsista”; análises interseccionais e outros atributos sensíveis não foram aprofundados.
  • Subgrupos pequenos em algumas análises podem limitar a robustez estatística.
  • Generalização limitada ao contexto do dataset (instituição e período específicos).

Recomendações para próximos passos

  • Implementar validação cruzada e tuning de hiperparâmetros; testar modelos não lineares (ex.: XGBoost).
  • Adicionar variabilidade dos experimentos e análises estatísticas com execuções repetidas variando a semente inicial.
  • Incluir calibração de probabilidades e avaliação de custo de erro (falsos negativos vs. falsos positivos).
  • Ampliar análise de fairness para outros atributos sensíveis e interseções (ex.: gênero + bolsa).
  • Definir critérios de intervenção com stakeholders (custos, capacidade operacional, impacto social).
  • Adicionar monitoramento de drift e rotinas de re-treinamento.
  • Explorar interpretação de modelos e explicabilidade para suportar decisões institucionais, utilizando valores Shapley, por exemplo.

Conclusão

O trabalho demonstra que variáveis acadêmicas e socioeconômicas permitem antecipar risco de evasão e que a análise por subgrupos é essencial para evitar subidentificação de estudantes vulneráveis. A correção por equal opportunity reduz de forma significativa o gap de TPR entre bolsistas e não-bolsistas, com impacto controlado na acurácia, alinhando o modelo ao objetivo institucional de intervenção precoce. Com a evolução proposta nos próximos passos, o sistema pode tornar-se mais robusto, justo e operacionalmente útil.

Como executar (passo a passo)

  1. Crie um ambiente virtual:
    python -m venv .venv
  2. Ative o ambiente:
    • Linux/macOS:
      source .venv/bin/activate
    • Windows (PowerShell):
      .\.venv\Scripts\Activate.ps1
  3. Instale as dependências:
    pip install -r requirements.txt
  4. Execute o notebook:
    • Abra src/main.ipynb no VS Code (extensão Jupyter) ou
    • Instale e use Jupyter:
      pip install jupyter
      jupyter lab

O notebook faz o download automático do dataset e grava os arquivos em data/.

Reprodutibilidade

  • Semente fixa: SEED = 0.
  • Divisão estratificada: 80/10/10.
  • Caminhos relativos: execute o notebook a partir do diretório src/.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published