🤖 Introdução ao Machine Learning

Inteligência Artificial

Sistemas de Informação - Graduação


Use as setas ← → ou clique para navegar

📋 Agenda do Curso

  • 🎯 Fundamentos de Machine Learning
  • 🔧 Preparação de Dados
  • 🏷️ Algoritmos de Classificação
  • 📈 Algoritmos de Regressão
  • 📊 Métricas de Avaliação
  • ⚡ Conceitos Avançados

PARTE 1

🎯 Fundamentos de ML

O que é Machine Learning?

Machine Learning é a capacidade dos computadores aprenderem com dados sem serem explicitamente programados

Programação Tradicional

Dados + Regras → Resultado

Machine Learning

Dados + Resultado → Regras

Tipos de Aprendizado

🎓 Supervisionado

Aprende com dados rotulados

Ex: Classificar emails (spam/não spam)

🔍 Não Supervisionado

Descobre padrões em dados não rotulados

Ex: Agrupar clientes similares

🎮 Por Reforço

Aprende por tentativa e erro

Ex: Jogos, robótica

Terminologia Essencial

Features (X) Variáveis de entrada idade, renda, cidade
Target (y) Variável de saída comprou sim/não
Modelo Função aprendida f(X) = y
Treino Processo de aprendizado Ajustar parâmetros
Predição Usar em dados novos Prever resultado

Fluxo de Trabalho em ML

1️⃣ Definir o Problema

2️⃣ Coletar Dados

3️⃣ Explorar os Dados (EDA)

4️⃣ Preparar os Dados

5️⃣ Escolher o Modelo

6️⃣ Treinar o Modelo

7️⃣ Avaliar o Modelo

8️⃣ Ajustar/Otimizar

9️⃣ Fazer Predições

PARTE 2

🔧 Preparação de Dados

Por que Preparar os Dados?

"Garbage in, garbage out"

Dados ruins = Modelos ruins

A preparação de dados consome 60-80% do tempo em projetos de ML

Divisão: Treino e Teste

Por quê? Evitar que o modelo "decore" os dados (overfitting)

🎓 Treino (70-80%)

Para o modelo aprender

🧪 Teste (20-30%)

Para avaliar o modelo

Valores Ausentes (Missing Values)

Estratégias de Tratamento:

  • Remoção: Quando há poucos valores ausentes (<5%)
  • Imputação com Média/Mediana: Para variáveis numéricas
  • Imputação com Moda: Para variáveis categóricas
  • Valor Constante: Ex: "Desconhecido", 0, -1

Outliers

🔍 Identificar

  • Boxplot
  • Método IQR
  • Z-score

🛠️ Tratar

  • Remover
  • Limitar (capping)
  • Transformar (log)

Codificação de Variáveis

ML trabalha com números! Precisamos converter categorias

Label Encoding

Para variáveis ordinais (pequeno → 0, médio → 1, grande → 2)

One-Hot Encoding

Para variáveis nominais (vermelho, azul, verde)

vermelho → [1,0,0] | azul → [0,1,0] | verde → [0,0,1]

Normalização vs Padronização

Normalização

Escala para [0, 1]

MinMaxScaler

Padronização

Média=0, DP=1

StandardScaler

⚠️ IMPORTANTE: Sempre fazer fit apenas nos dados de treino!

PARTE 3

🏷️ Algoritmos de Classificação

O que é Classificação?

Prever a categoria de uma instância

Exemplos:

  • 📧 Email: spam ou não spam
  • 🏥 Paciente: tem doença ou não
  • 🌸 Tipo de flor: setosa, versicolor, virginica
  • 😊 Sentimento: positivo, negativo, neutro

1️⃣ Regressão Logística

Calcula a probabilidade de pertencer a uma classe

✅ Vantagens

  • Simples e rápido
  • Interpretável
  • Dá probabilidades

❌ Desvantagens

  • Assume linearidade
  • Sensível a outliers

2️⃣ K-Nearest Neighbors (KNN)

"Diga-me com quem andas e te direi quem és"

Classifica baseado nos K vizinhos mais próximos

✅ Vantagens

  • Simples de entender
  • Sem fase de treino
  • Não linear

❌ Desvantagens

  • Lento para prever
  • Sensível à escala
  • Ruim com muitas features

3️⃣ Árvore de Decisão

Cria uma estrutura de regras (if-then-else)

✅ Vantagens

  • Fácil de interpretar
  • Sem normalização
  • Não linear
  • Visualizável

❌ Desvantagens

  • Overfitting fácil
  • Instável
  • Desbalanceamento

4️⃣ Random Forest

"A união faz a força" - Combina múltiplas árvores

✅ Vantagens

  • Muito preciso
  • Reduz overfitting
  • Robusto
  • Feature importance

❌ Desvantagens

  • Menos interpretável
  • Mais lento
  • Usa mais memória

PARTE 4

📈 Algoritmos de Regressão

O que é Regressão?

Prever um valor contínuo (numérico)

Exemplos:

  • 🏠 Preço de imóveis
  • 🌡️ Temperatura
  • 💰 Salário
  • 📊 Vendas futuras

Regressão Linear

Encontra a melhor linha reta que relaciona X e y

y = b₀ + b₁x

  • b₀ = intercepto (onde cruza o eixo y)
  • b₁ = coeficiente angular (inclinação)

Outros Algoritmos de Regressão

Regressão Polinomial

Para relações não-lineares

Decision Tree Regressor

Árvore de decisão para valores contínuos

Random Forest Regressor

Ensemble de árvores para regressão

PARTE 5

📊 Métricas de Avaliação

Métricas para Classificação

Acurácia: % de predições corretas
Precisão: Dos que previ positivo, quantos eram?
Recall: Dos que são positivos, quantos peguei?
F1-Score: Média harmônica de precisão e recall

Matriz de Confusão

PREDITO
Não Sim
REAL Não VN
Verdadeiro
Negativo
FP
Falso
Positivo
Sim FN
Falso
Negativo
VP
Verdadeiro
Positivo

Curva ROC e AUC

ROC: Receiver Operating Characteristic

AUC: Area Under the Curve

Interpretação AUC:

  • 0.9 - 1.0: Excelente ⭐⭐⭐⭐⭐
  • 0.8 - 0.9: Muito bom ⭐⭐⭐⭐
  • 0.7 - 0.8: Bom ⭐⭐⭐
  • 0.5: Aleatório (inútil) 💩

Métricas para Regressão

MAE: Erro médio absoluto (em unidades)
MSE: Erro médio quadrático (penaliza erros grandes)
RMSE: Raiz do MSE (mesma unidade do target)
R²: % da variância explicada (0 a 1, quanto maior melhor)

PARTE 6

⚡ Conceitos Avançados

Overfitting vs Underfitting

🔴 Overfitting

Modelo "decora" os dados

Treino: 98% ✅
Teste: 65% ❌

🔵 Underfitting

Modelo muito simples

Treino: 60% ❌
Teste: 58% ❌

🟢 Ideal

Treino: 85% | Teste: 83% ✅

Validação Cruzada

Divisão mais robusta dos dados

K-Fold (k=5): Divide em 5 partes

Iteração 1: [Test][Train][Train][Train][Train]

Iteração 2: [Train][Test][Train][Train][Train]

Iteração 3: [Train][Train][Test][Train][Train]

Iteração 4: [Train][Train][Train][Test][Train]

Iteração 5: [Train][Train][Train][Train][Test]

Ajuste de Hiperparâmetros

Grid Search

Testa todas as combinações de parâmetros

Exemplo: Random Forest

  • n_estimators: [50, 100, 200]
  • max_depth: [5, 10, 15, None]
  • min_samples_split: [2, 5, 10]

Total: 3 × 4 × 3 = 36 combinações

Checklist de Boas Práticas

✅ Entendi o problema de negócio?

✅ Fiz EDA completa?

✅ Tratei valores ausentes e outliers?

✅ Codifiquei variáveis categóricas?

✅ Normalizei/Padronizei?

✅ Dividi treino/teste corretamente?

✅ Testei múltiplos algoritmos?

✅ Avaliei com métricas apropriadas?

✅ Verifiquei overfitting?

✅ Documentei o processo?

📚 Recursos para Aprender

📖 Documentação

Scikit-learn, Pandas, Seaborn

🎥 Cursos

Coursera (Andrew Ng), Kaggle Learn, DataCamp

📊 Prática

Kaggle, UCI ML Repository

🚀 Próximos Passos

  1. Domine os fundamentos
  2. Pratique muito - faça projetos
  3. Participe de competições no Kaggle
  4. Explore tópicos avançados:
    • Deep Learning
    • NLP (Processamento de Linguagem Natural)
    • Computer Vision
    • MLOps

Obrigado! 🎓

Perguntas?


Lembre-se:
A prática leva à perfeição!
Quanto mais você experimentar,
melhor ficará! 💪