ATIVIDADES INTEGRADORAS · DO DADO À DECISÃO

Construa, trate, proteja e avalie.

Quatro desafios encadeados para praticar uma rede multicamadas, a preparação de dados, a classificação de requisições suspeitas e a leitura crítica das métricas.

ROTEIRO

O percurso proposto

Faça as atividades na ordem. Os links de estudo abrem o conteúdo de apoio já disponível no material.

01 · MLPDefina arquitetura e implemente o treinamento.
02 · LimpezaConverta uma tabela inconsistente em dados de treino.
03 · WAFClassifique requisições antes que cheguem ao PHP.
04 · MétricasJustifique a qualidade e os riscos da decisão.
01

REDE NEURAL MULTICAMADAS

Implemente uma MLP configurável.

Crie um algoritmo de Perceptron Multicamadas no qual seja possível definir o número de entradas, os neurônios da camada oculta e as saídas. A implementação deve montar pesos e vieses com os tamanhos corretos e treinar a rede por backpropagation.

Forward passBackpropagationArquitetura variávelTreino e teste

Requisitos mínimos

  1. Receber n_entradas, n_ocultos e n_saidas.
  2. Inicializar matrizes de pesos e vieses sem valores fixos de dimensão.
  3. Implementar ativação, forward pass, função de perda e atualização por backpropagation.
  4. Separar treino, validação e teste; não medir desempenho no conjunto usado para ajustar pesos.
  5. Exibir perda por época e uma métrica apropriada ao alvo.

Entrega

Entregue o código, um arquivo de configuração da arquitetura, gráfico de perda e uma breve explicação das escolhas: ativação, taxa de aprendizagem, épocas, critério de parada e métrica.

Teste pelo menos duas arquiteturas e compare erro de validação, não apenas acurácia de treino.

02

TRATAMENTO DE DADOS

Transforme um dataset “sujo” em dado de treino.

O arquivo fornecido descreve estudantes e o alvo aprovado. Ele contém valores ausentes, duplicata, espaços, categorias escritas de formas diferentes, formatos numéricos incompatíveis e valores fora do intervalo esperado.

Amostra de problemas presentes

ididadehorasfrequênciamodalidadenota
003vazio1295presencial8.9
006320783Presencial6.9
008231597Híbrido9,1
00920588EAD6.4

Checklist obrigatório

  • Padronize nomes, espaços e categorias.
  • Converta valores para o tipo numérico correto.
  • Trate NA, ? e células vazias sem usar informação do teste.
  • Encontre e trate duplicatas, intervalos impossíveis e outliers com uma regra justificada.
  • Codifique a modalidade, normalize entradas quando necessário e registre cada transformação.
  • Remova id_aluno das entradas: ele não representa um sinal pedagógico.

CONEXÃO ENTRE AS ATIVIDADES 01 E 02

O algoritmo aprende exatamente a representação que recebe.

Use o dataset limpo como problema de classificação para a MLP. O objetivo é prever aprovado usando idade, horas de estudo, frequência, modalidade e nota de simulado.

Dataset brutoerros, ausências e escalas misturadas
Pipeline de limpezaregras aprendidas somente no treino
MLP configurávelentradas tratadas → camada oculta → saída
Teste finalmétricas e análise dos erros
03

SEGURANÇA DEFENSIVA · WAF COM IA

Classifique e bloqueie requisições suspeitas antes do PHP.

O kit fornece a infraestrutura completa em Docker: Nginx na frente, PHP como aplicação protegida, um pequeno serviço de decisão e uma página de teste. A única parte que o aluno altera é o algoritmo em student/model.py.

Navegadorpágina de teste
Nginxponto de bloqueio
Modelo IArisco: permitir ou bloquear
403 ou PHPinterrompe ou encaminha

O que já está pronto

  • docker-compose.yml com Nginx, PHP-FPM e serviço do modelo.
  • Configuração auth_request do Nginx: uma resposta 403 do modelo para a requisição protegida.
  • Coleta de atributos da requisição e limiar configurável.
  • Página HTML + JavaScript com botão para requisição normal e outra com padrão suspeito, além da visualização da resposta.
  • Dataset rotulado de exemplos normais e suspeitos.

Responsabilidade do aluno

Transformar os atributos em um vetor, treinar ou definir a regra/classificador e retornar um risco entre 0 e 1. Escolha o limiar a partir da validação; não use o conjunto de teste para essa decisão.

O exemplo inicial permite tudo. Após o modelo funcionar, o teste normal deve chegar ao PHP (200) e o teste suspeito deve receber 403.

Como executar o ambiente

  1. Instale e inicie o Docker Desktop.
  2. No terminal, entre em starter-kits/waf-ia.
  3. Execute docker compose up --build.
  4. Abra http://localhost:8080/testar.html e faça os dois testes.
  5. Edite apenas student/model.py, reconstrua com docker compose up --build e repita os testes.
  6. Ao terminar, execute docker compose down.
04

AVALIAÇÃO DO MODELO

Defenda a decisão do modelo com métricas.

Avalie tanto a MLP de aprovação quanto o classificador do WAF. Apresente matriz de confusão, acurácia, precisão, recall e F1-score no conjunto de teste mantido separado.

Leitura esperada para o WAF

MétricaPergunta prática
PrecisãoDos bloqueios, quantos eram de fato suspeitos?
RecallDas requisições suspeitas, quantas o WAF encontrou?
F1-scoreComo está o equilíbrio entre bloqueio correto e cobertura?
MatrizQuais erros foram bloqueios indevidos (FP) e ataques liberados (FN)?

Entrega final

  • Uma tabela com as métricas para cada modelo.
  • A matriz de confusão identificando VP, VN, FP e FN.
  • O limiar usado e por que ele foi escolhido.
  • Três exemplos de erro e uma hipótese para cada um.
  • Uma decisão de melhoria: mais dados, atributos melhores, limpeza, arquitetura ou ajuste de limiar.