Projeto de extensão para a disciplina "Tópicos de Big Data em Python".
Este projeto investiga como a desigualdade social influencia o desempenho no Exame Nacional do Ensino Médio (ENEM). Utilizando microdados públicos do INEP (com ~4 milhões de registros), desenvolvemos um pipeline de Ciência de Dados para tratar, analisar e modelar esses dados, resultando em uma base limpa com ~2 milhões de registros relevantes para o projeto.
O objetivo final foi a criação de um Simulador de Nota Média capaz de predizer o desempenho de um usuário com base em apenas 10 indicadores socioeconômicos.
🚀 Testar Online: Acesse a versão com interface gráfica do simulador interativo diretamente no navegador: 👉 https://enem-2023-predicao.streamlit.app/
- Clenilton (Modelagem ML e Interface Gráfica)
- Misael (Coleta e Tratamento)
- Solário (Simulador pelo terminal)
- Vitor (Análise de Dados/EDA)
- Kairos (Documentação)
O projeto seguiu o fluxo clássico de KDD (Knowledge Discovery in Databases):
- Coleta e Tratamento: Limpeza de ~1.7GB de dados brutos para ~250MB e engenharia de features.
- Análise de Dados (EDA): Estudo visual das correlações (Renda, Tipo de Escola, etc.).
- Modelagem (Machine Learning): Treinamento e otimização de modelos (Linear, RF, LightGBM) e Clustering (MiniBatchKMeans).
- Predição de Nota (Simulador): Desenvolvimento de interface via terminal para predição de nota média.
A análise confirmou a forte correlação entre fatores socioeconômicos e desempenho.
Abaixo, a distribuição da nota média por categoria socioeconômica:
Quanto maior a categoria socioeconômica, maior a nota média observada. Isso reforça a influência dos fatores sociais no desempenho dos participantes.
| Modelo | MAE (Erro Médio Absoluto) | R² (Variância Explicada) | Acurácia (Derivada do MAPE) |
|---|---|---|---|
| Regressão Linear | 58.06 | 34.94% | 88.88% |
| Random Forest | 57.24 | 36.53% | 89.04% |
| LightGBM (Escolhido) | 57.04 | 37.06% | 89.08% |
Insight: Com os modelos escolhidos, variáveis socioeconômicas observáveis explicam ~37% da variação da nota média no conjunto de dados usado. Isso indica uma influência relevante, mas ~60% da variação permanece não explicada por essas variáveis e pode decorrer de fatores individuais, como motivação, ou de medida não observados.
ℹ️ Nota sobre a métrica de acurácia:
Como trabalhamos com regressão, a acurácia foi definida de forma personalizada como1 - MAPE.
Exemplo: se a nota real for 1000 e a acurácia for 90%, o modelo pode ter previsto 900.
- Python 3.10+
- Criar e ativar o ambiente virtual:
python -m venv .venv
.venv\Scripts\Activate- Instalar dependências:
pip install -r requirements.txtPara testar a IA imediatamente através da interface gráfica: Clique aqui para abrir o Web App ↗
- 🎯 Para testar o Simulador via linha de comando:
python scripts/inputs.py- Gerar a base de dados limpa (Requer os microdados brutos na pasta dados/enem_2023.csv):
python scripts/filtragem_inicial.pyRAM recomendada: 16–32GB
- Treinar os modelos (Gera os arquivos .joblib em
./modelos):
python scripts/treino_modelos.pydados/— bases de dados:enem_2023_limpo.zip— bases do ENEM tratada e compactada.municipios_rm_limpo.csv— municípios que compõem regiões metropolitanas (tratamento do recorte do IBGE).
evidencias/prints, gráficos e resultados por integrantescripts/— scripts executáveis:filtragem_inicial.py— limpeza e filtragem inicial dos microdados.treino_modelos.py— pipeline de treino e salvamento de modelos (salva em./modelos).inputs.py— script de predição interativo que solicita inputs socioeconômicos do usuário.
modelos/— modelos treinadosnotebooks/— análises e gráficos exploratórios.
-
INEP — Microdados ENEM 2023:
- https://www.gov.br/inep/pt-br/acesso-a-informacao/dados-abertos/microdados/enem
- Acessado em: 19/11/2025.
-
IBGE — Recortes Metropolitanos e Aglomerações Urbanas:


