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.
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.
Requisitos mínimos
- Receber
n_entradas,n_ocultosen_saidas. - Inicializar matrizes de pesos e vieses sem valores fixos de dimensão.
- Implementar ativação, forward pass, função de perda e atualização por backpropagation.
- Separar treino, validação e teste; não medir desempenho no conjunto usado para ajustar pesos.
- 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.
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
| id | idade | horas | frequência | modalidade | nota |
|---|---|---|---|---|---|
| 003 | vazio | 12 | 95 | presencial | 8.9 |
| 006 | 320 | 7 | 83 | Presencial | 6.9 |
| 008 | 23 | 15 | 97 | Híbrido | 9,1 |
| 009 | 20 | 5 | 88 | EAD | 6.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_alunodas 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.
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 repassando as requisições para o Python via X-Accel-Redirect, e PHP-FPM como aplicação backend. A única parte que o aluno altera são os arquivos Python (`mlp.py`, `extractor.py` e `train.py`).
O que já está pronto
docker-compose.ymlcom Nginx, PHP-FPM e serviço Python do modelo.- Configuração
X-Accel-Redirectdo Nginx para fluxo interno. - Scripts de setup e servidor Flask (
server.py). - Página HTML de teste e tela de bloqueio.
- Dataset rotulado de exemplos normais e suspeitos.
Responsabilidade do aluno
Implementar a extração de características (extractor.py), a arquitetura matemática da rede neural multicamadas (mlp.py) e o laço de treinamento (train.py).
Após o modelo funcionar, o teste seguro deve chegar ao PHP (200) e o payload hacker deve receber 403.
Como executar o ambiente
- Baixe o Ambiente Completo (Versão Aluno) abaixo e extraia.
- No terminal, abra a pasta extraída.
- Execute
docker compose up -d --build. - Treine a sua rede rodando:
docker compose exec python_waf python train.py - Acompanhe os resultados no terminal com
docker compose logs -f python_wafe faça requisições parahttp://localhost:8080/ - Ao terminar, execute
docker compose down.
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étrica | Pergunta prática |
|---|---|
| Precisão | Dos bloqueios, quantos eram de fato suspeitos? |
| Recall | Das requisições suspeitas, quantas o WAF encontrou? |
| F1-score | Como está o equilíbrio entre bloqueio correto e cobertura? |
| Matriz | Quais 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.
CLUSTERIZAÇÃO K-MEANS
Faça a segmentação de clientes de um e-commerce.
Utilize o algoritmo K-Means para agrupar clientes baseando-se na idade, renda e pontuação de gastos, sem utilizar rótulos pré-existentes. O objetivo é criar estratégias de marketing personalizadas.
Requisitos mínimos
- Carregue o dataset
ecommerce_kmeans.csve descarte o ID. - Use o Método do Cotovelo (Elbow Method) para provar o número ideal de K.
- Treine o K-Means com o número K escolhido.
- Plote um gráfico de dispersão colorindo os pontos pelos clusters gerados.
- Descreva um perfil de marketing para cada cluster (Ex: "Foco em cupons").
Entrega
Entregue o Jupyter Notebook com a visualização dos grupos, o gráfico do Cotovelo que justificou a escolha matemática do K, e um parágrafo defendendo qual campanha de marketing deve ser ativada para cada grupo descoberto.
REDUÇÃO DE DIMENSIONALIDADE (PCA)
Reduza dados de 15 sensores industriais para 2D.
Imagine que você está monitorando uma máquina complexa através de 15 sensores, o que torna a visualização impossível em telas normais. Use o PCA para condensar toda essa variação em apenas 2 eixos principais (Componentes).
Requisitos mínimos
- Carregue o dataset
sensores_pca.csv. - Padronize os dados (StandardScaler), pois o PCA é sensível à escala.
- Aplique o PCA pedindo 2 componentes (n_components=2).
- Avalie o
explained_variance_ratio_para ver quanta informação foi retida. - Crie um gráfico 2D mostrando o estado dos sensores.
REGRAS DE ASSOCIAÇÃO (APRIORI)
Descubra produtos vendidos juntos em uma padaria.
Se um cliente comprar pão, qual a probabilidade de ele comprar manteiga? Aplique o algoritmo Apriori para minerar regras de associação no histórico de cupons fiscais e organize melhor as prateleiras.
Requisitos mínimos
- Carregue o dataset
padaria_apriori.csv, que possui itens separados por vírgula. - Converta a lista de strings para o formato aceito pelo Apriori (One-Hot Encoding das cestas).
- Gere conjuntos de itens frequentes pedindo um suporte mínimo de 0.2 (20%).
- Gere as regras de associação filtrando por Confiança mínima de 0.6 (60%).
- Liste as Top 3 regras pelo índice Lift e justifique onde você colocaria esses produtos na loja.