Fase 4 Modelagem dos Algoritmos - PadawanXXVI/projeto_ams GitHub Wiki

🤖 Fase 4 – Modelagem dos Algoritmos

Na Fase 4 da metodologia CRISP-DM, aplicamos técnicas de aprendizado de máquina para construir modelos preditivos capazes de identificar estudantes com risco de evasão escolar. O foco desta etapa está na seleção, treinamento e comparação de diferentes algoritmos de classificação supervisionada.


🧪 Preparação para modelagem

Antes do treinamento, os dados passaram por:

  • Transformação da variável-alvo em binária
  • Codificação de variáveis categóricas
  • Separação em conjuntos de treino e teste (70% / 30%), com estratificação para manter a proporção da variável Class.
from sklearn.model_selection import train_test_split

X = df.drop("Class", axis=1)
y = df["Class"]

x_train, x_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, stratify=y, random_state=42
)

🧠 Algoritmos utilizados

Foram testados seis modelos supervisionados clássicos, escolhidos por sua representatividade, popularidade e desempenho em problemas de classificação:

Modelo Tipo Biblioteca
Random Forest Ensemble de Árvores sklearn.ensemble
Regressão Logística Linear Probabilístico sklearn.linear_model
Naive Bayes (Gaussian) Probabilístico sklearn.naive_bayes
SVM (Support Vector Machine) Classificação por margens sklearn.svm
Gradient Boosting Boosting de Árvores sklearn.ensemble
MLP (Rede Neural) Rede Neural Multicamadas sklearn.neural_network

⚙️ Treinamento dos modelos

modelos = [
    RandomForestClassifier(n_estimators=100, random_state=42),
    LogisticRegression(max_iter=1000),
    GaussianNB(),
    svm.SVC(),
    GradientBoostingClassifier(n_estimators=100),
    MLPClassifier(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=(15,), max_iter=1000)
]

modelos_treinados = [modelo.fit(x_train, y_train) for modelo in modelos]

Obs.: Utilizamos tratamento de exceção para capturar eventuais falhas em tempo de execução, mantendo a execução contínua.


🧾 Considerações sobre os modelos

  • Random Forest: robusto e com bom desempenho em variáveis categóricas
  • Logistic Regression: altamente interpretável, base para comparação
  • GaussianNB: rápido, porém com suposições fortes de independência
  • SVM: útil para margens máximas, mas sensível a escala
  • Gradient Boosting: geralmente muito eficaz, porém mais lento
  • MLPClassifier: rede neural leve, eficaz com tuning adequado

🧠 Escolha do melhor modelo

A seleção foi baseada na métrica acurácia, com a seguinte função:

from sklearn.metrics import accuracy_score
acuracias = [accuracy_score(y_test, modelo.predict(x_test)) for modelo in modelos_treinados]
melhor_modelo = modelos_treinados[np.argmax(acuracias)]

✅ Conclusões da Fase 4

  • Todos os modelos foram treinados com sucesso
  • A acurácia foi medida de forma uniforme e padronizada
  • O melhor modelo foi salvo para reutilização e implantação futura

🔙 Voltar à Home