Projeto alinhado às vagas de mercado em Data Engineer, Analytics e Data Science (ex.: ETL, Python, SQL, BI, Databricks, Azure). Inclui parte teórica e um projeto prático de ponta a ponta: ETL → EDA → Feature Engineering → Modelagem (ML) → Avaliação.
data_science/
├── README.md # Este arquivo
├── requirements.txt # Dependências Python
├── config/
│ └── settings.yaml # Configurações do projeto
├── data/
│ ├── raw/ # Dados brutos (CSV) — gerados por generate_data
│ └── processed/ # Dados processados (Parquet) — saída do ETL
├── docs/
│ └── TEORIA.md # Conteúdo teórico (SQL, ETL, Python, ML, BI, Cloud)
├── models/ # Modelos treinados (.joblib)
├── notebooks/ # Jupyter notebooks
│ ├── 01_etl_ingestao.ipynb
│ ├── 02_eda_visualizacao.ipynb
│ ├── 03_feature_engineering.ipynb
│ ├── 04_modelagem.ipynb
│ └── 05_avaliacao_roc.ipynb
├── sql/
│ ├── schema.sql # Schema relacional (Star Schema)
│ └── queries_exemplo.sql # Consultas SQL de exemplo
└── src/
├── __init__.py
├── generate_data.py # Gera dataset sintético (churn)
├── etl.py # Pipeline ETL (load → clean → save)
├── features.py # Feature engineering
├── train.py # Treino do modelo (Random Forest)
└── evaluate.py # Métricas e avaliação
# Criar ambiente virtual (recomendado)
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Linux/Mac
# Instalar dependências
pip install -r requirements.txt# Na raiz do projeto (data_science/)
python -m src.generate_data # Gera data/raw/*.csv
python -m src.etl # ETL → data/processed/*.parquet
python -m src.train # Treina e salva modelo em models/Abra o Jupyter a partir da raiz do projeto:
jupyter lab
# ou: jupyter notebookExecute na ordem: 01 → 02 → 03 → 04 → 05. O notebook 01 chama generate_data se os arquivos raw ainda não existirem.
Use os arquivos em sql/ para praticar em qualquer banco (SQLite, PostgreSQL, etc.). O schema.sql cria tabelas no estilo Star Schema (dimensões + fato).
| # | Onde estudar | O que fazer |
|---|---|---|
| 1 | docs/TEORIA.md | Ler seções 1 (SQL/modelagem) e 2 (ETL) |
| 2 | sql/ + qualquer cliente SQL | Criar tabelas e rodar queries_exemplo.sql |
| 3 | notebooks/01 + src/etl.py | Entender ETL: extract, transform, load |
| 4 | notebooks/02 | EDA e visualização (pandas, seaborn) |
| 5 | notebooks/03 + src/features.py | Feature engineering e encoding |
| 6 | notebooks/04 e 05 + src/train.py | Modelagem (Random Forest), métricas e ROC |
| 7 | docs/TEORIA.md (restante) | ML, governança, cloud, BI, DevOps |
| Projeto | Mercado (vagas) |
|---|---|
| Python, pandas, scikit-learn | Python, PySpark, Databricks |
| ETL em Python (CSV → Parquet) | SSIS, Azure Data Factory, dbt |
| SQL (schema + queries) | Snowflake, Azure SQL, consultas avançadas |
| Jupyter notebooks | Databricks notebooks, Azure ML |
| Parquet | Data Lake, Medallion (Bronze/Silver/Gold) |
Para evoluir: adicionar PySpark, Databricks ou Azure Data Factory em um segundo projeto, mantendo esta base.
- Objetivo: prever se um cliente vai dar churn (sim/não).
- Dados: sintéticos (clientes, contrato, cobrança, serviços).
- Modelo: Random Forest (classificação binária).
- Métricas: acurácia, precisão, recall, F1, AUC-ROC; validação cruzada.
Isso cobre o fluxo típico de um projeto de Data Science e as competências pedidas nas vagas (dados, ETL, análise, ML, qualidade).