Aula 1 – Introdução ao Feature Engineering
A Engenharia de Atributos consiste no processo de transformar dados brutos em variáveis preditivas para alimentar algoritmos de Machine Learning.
1. Atributos Irrelevantes / Redundantes
ID_Cliente/pedido_id: Apenas identificadores cadastrais sem padrão preditivo real.produto_id: Redundante quando já possuímos acategoria_produto.tipo_dispositivo: Pouco impacto direto na análise de risco financeiro.
2. Propostas de Novas Features
RendaPorLimiteCartao: Mede a proporção do limite concedido em relação aos ganhos mensais.PercentualSaldo: Percentual da renda mantido como saldo em conta.TempoComoCliente: Medida em anos de engajamento com a instituição.
Aula 2 – Criação e Visualização de Features (Banco Alpha)
Demonstração das transformações aplicadas via Pandas no dataset dados_banco_alpha.csv.
| ID_Cliente | DataAbertura | Idade | RendaMensal | SaldoConta | LimiteCartao | Status Atraso | TempoCliente (anos) | Renda/Limite | % Saldo/Renda |
|---|---|---|---|---|---|---|---|---|---|
| 201 | 2018-01-25 | 25 | R$ 3.000 | R$ 900 | R$ 4.000 | 0 (Em dia) | 8.10 | 0.750 | 30.00% |
| 202 | 2018-03-02 | 57 | R$ 4.500 | R$ 2.100 | R$ 8.000 | 1 (Atraso) | 7.99 | 0.563 | 46.67% |
| 203 | 2019-07-15 | 33 | R$ 2.800 | R$ 750 | R$ 5.000 | 0 (Em dia) | 6.63 | 0.560 | 26.79% |
| 204 | 2021-05-20 | 42 | R$ 6.500 | R$ 1.500 | R$ 12.000 | 0 (Em dia) | 4.78 | 0.542 | 23.08% |
| 205 | 2019-10-11 | 60 | R$ 7.000 | R$ 3.100 | R$ 10.000 | 1 (Atraso) | 6.39 | 0.700 | 44.29% |
Aula 3 – Seleção de Atributos & Relevância
Análise de colinearidade, redução de redundância e importância relativa das variáveis geradas.
Features Mais Relevantes
PercentualSaldo: Indicador direto do nível de comprometimento financeiro.TempoComoCliente: Histórico de retenção e estabilidade bancária.RendaPorLimiteCartao: Avalia proporcionalidade de crédito concedido.
Atributos Descartados
Variáveis brutas como SaldoConta e LimiteCartao possuem alta multicolinearidade com a renda e foram combinadas nos novos índices para evitar overfitting.
Gráfico de Importância das Features (Simulação SelectKBest / Random Forest):
Aula 4 – Modelos de Classificação Supervisionada
Treinamento e comparação entre Regressão Logística e Árvores de Decisão para predição de inadimplência.
# Roteiro de Modelagem (Classificação)
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
df = pd.read_csv('dados_banco_alpha_modificado.csv')
X = df.drop(columns=['AtrasoPagamento'])
y = df['AtrasoPagamento']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=42)
# Treinamento dos Classificadores
lr_model = LogisticRegression(max_iter=1000).fit(X_train, y_train)
dt_model = DecisionTreeClassifier(max_depth=5, random_state=42).fit(X_train, y_train)
# Avaliação Inicial
print("Acurácia Regressão Logística:", accuracy_score(y_test, lr_model.predict(X_test)))
print("Acurácia Árvore de Decisão:", accuracy_score(y_test, dt_model.predict(X_test)))
Aula 5 – Métricas e Avaliação de Desempenho
Diagnóstico aprofundado com Matriz de Confusão, Precision, Recall e Curva ROC-AUC.
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report, confusion_matrix
df = pd.read_csv('dados_banco_alpha_modificado.csv')
X = df.drop(columns=['AtrasoPagamento'])
y = df['AtrasoPagamento']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=42)
model_dt = DecisionTreeClassifier(random_state=42).fit(X_train, y_train)
pred_dt = model_dt.predict(X_test)
print("=== Relatório de Classificação ===")
print(classification_report(y_test, pred_dt))
print("=== Matriz de Confusão ===")
print(confusion_matrix(y_test, pred_dt))
Aula 6 – Ensembles & Otimização de Hiperparâmetros
Aumento da capacidade preditiva com Random Forest e busca exaustiva via GridSearchCV.
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
df = pd.read_csv('dados_banco_alpha_modificado.csv')
X = df.drop(columns=['AtrasoPagamento'])
y = df['AtrasoPagamento']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=42)
rf = RandomForestClassifier(n_estimators=50, random_state=42)
rf.fit(X_train, y_train)
importances = pd.Series(rf.feature_importances_, index=X.columns).sort_values(ascending=False)
print("=== Relevância das Variáveis no Ensemble ===")
print(importances)
Simulador Python Interativo (In-Browser)
Execução real de código Python com pandas e scikit-learn diretamente no seu navegador via WebAssembly.
Central de Downloads & Recursos
Baixe o conjunto de dados sintetizado do Banco Alpha e notebooks para execução local.
Dataset CSV Modificado
Base com variáveis originais e calculadas (Idade, RendaMensal, PontuacaoCredito, NumEmprestimos, TaxaUsoCredito, AtrasoPagamento).
Notebook .ipynb Completo
Jupyter Notebook com todo o roteiro prático, Feature Engineering, Modelagem e Avaliação.