Revisão de Machine Learning e Algoritmos de Classificação
Profª Maristela
Aula prática com Python e Scikit-learn
Conceitos Fundamentais
Pipeline de ML
Tipos de Aprendizagem
KNN e Decision Tree
Treinamento e Avaliação
Objetivos da Aula
Ao final desta aula, você será capaz de aplicar os fundamentos de Machine Learning na prática, utilizando Python e Scikit-learn para construir e avaliar modelos de classificação reais.
Compreender os fundamentos de Machine Learning
Entender o que é ML, como funciona e onde é aplicado no mundo real.
Identificar tipos de aprendizagem
Diferenciar aprendizagem supervisionada, não supervisionada e por reforço.
Entender o pipeline de ML
Conhecer todas as etapas do processo, da coleta de dados à predição final.
Implementar e comparar KNN e Árvore de Decisão
Treinar, avaliar e comparar os dois algoritmos usando Scikit-learn.
Revisando: que é Machine Learning?
Machine Learning (ML) é uma subárea da Inteligência Artificial que permite que sistemas aprendam padrões a partir de dados — sem que regras sejam programadas manualmente. O algoritmo observa exemplos, identifica padrões e generaliza para novas situações.
Recomendação
Netflix sugerindo filmes com base no seu histórico de visualizações.
Filtro de Spam
Detecção automática de e-mails indesejados na sua caixa de entrada.
Reconhecimento Facial
Desbloqueio de celulares e identificação de pessoas em fotos.
Diagnóstico Médico
Auxílio na detecção precoce de doenças a partir de exames.
Como o Machine Learning Funciona?
O processo de Machine Learning segue um fluxo lógico e bem definido: os dados são a matéria-prima, o algoritmo é o motor, e o modelo treinado é o produto final — capaz de fazer previsões sobre novos dados desconhecidos.
O modelo não recebe instruções explícitas: ele encontra padrões por conta própria, aprende as relações entre variáveis e generaliza esse aprendizado para fazer previsões precisas em dados que nunca viu antes.
Pipeline de Machine Learning
O pipeline de ML é o conjunto de etapas que transforma dados brutos em um modelo funcional e avaliado. Seguir esse processo garante qualidade, reprodutibilidade e confiabilidade nos resultados.
Coleta de Dados
Reunir dados relevantes de fontes confiáveis para o problema.
Limpeza e Preparação
Tratar valores ausentes, remover ruídos e normalizar os dados.
Divisão Treino/Teste
Separar os dados para treinar e avaliar o modelo de forma justa.
Escolha e Treinamento
Selecionar o algoritmo adequado e ajustá-lo aos dados de treino.
Avaliação e Predição
Medir o desempenho com métricas e aplicar o modelo em novos dados.
Tipo de Aprendizagem
Aprendizagem Supervisionada
Na aprendizagem supervisionada, os dados de treinamento possuem rótulos conhecidos — ou seja, para cada exemplo, já sabemos qual é a resposta correta. O algoritmo aprende a mapear entradas para saídas corretas com base nesses exemplos rotulados.
Como funciona
O modelo recebe pares (entrada, rótulo) e aprende a associação entre eles para generalizar a novos dados.
Exemplos Práticos
  • Classificar e-mails como spam ou não spam
  • Detectar fraudes em transações bancárias
  • Prever aprovação de crédito
  • Diagnosticar doenças a partir de exames
Tipo de Aprendizagem
Aprendizagem Não Supervisionada
Neste paradigma, os dados não possuem rótulos. O algoritmo precisa descobrir estruturas, padrões e agrupamentos por conta própria, sem orientação prévia sobre o que procurar.
Como funciona
O modelo analisa a estrutura interna dos dados e agrupa exemplos semelhantes, sem saber antecipadamente quantos grupos existem.
Exemplos Práticos
  • Segmentação de clientes por perfil de compra
  • Detecção de anomalias em sistemas
  • Redução de dimensionalidade de dados
  • Organização automática de documentos
Tipo de Aprendizagem
Aprendizagem por Reforço
No aprendizado por reforço, um agente interage com um ambiente, toma ações e recebe recompensas ou penalidades. O objetivo é aprender a sequência de ações que maximiza a recompensa acumulada ao longo do tempo.
Conceito-chave
O agente aprende por tentativa e erro, refinando sua estratégia a cada interação com o ambiente.
Exemplos Práticos
  • Agentes jogando xadrez ou videogames
  • Robôs aprendendo a caminhar
  • Carros autônomos tomando decisões
  • Otimização de campanhas de marketing
Problemas de Classificação
Classificação é um dos tipos mais comuns de problemas em ML supervisionado. O objetivo é prever a categoria à qual um novo exemplo pertence, com base em padrões aprendidos nos dados de treinamento.
Diagnóstico Médico
Prever se um paciente tem ou não uma determinada doença: Sim / Não.
Crédito Bancário
Classificar um cliente como adimplente ou inadimplente antes de aprovar crédito.
Espécie de Flor
Identificar a espécie de uma flor com base em medidas de suas pétalas e sépalas.
Filtro de Spam
Classificar mensagens recebidas como spam ou não spam automaticamente.
Introdução ao KNN — K-Nearest Neighbors
"Diga-me quem são seus vizinhos e direi quem você é."
O KNN é um algoritmo de classificação baseado em similaridade. Para classificar um novo ponto, ele calcula a distância até todos os pontos do conjunto de treino e usa os K vizinhos mais próximos para votar na classe mais frequente.
Pontos Fortes
  • Simples de entender e implementar
  • Não requer fase de treinamento explícita
  • Eficaz para datasets pequenos
Limitações
  • Lento com grandes volumes de dados
  • Sensível a atributos irrelevantes
  • Requer normalização dos dados
Funcionamento do KNN — Passo a Passo
O KNN classifica novos exemplos seguindo quatro etapas simples e intuitivas. A escolha do valor de K é crítica: valores muito pequenos geram overfitting, valores muito grandes geram underfitting.
Introdução à Árvore de Decisão
A Árvore de Decisão é um algoritmo que toma decisões de classificação através de uma série de perguntas hierárquicas sobre os atributos dos dados. Cada nó interno representa uma pergunta, cada ramo representa uma resposta e cada folha representa uma classe.
Nó Raiz
Pergunta mais importante que melhor divide os dados. Ex: "Temperatura > 30°C?"
Nós Internos
Perguntas subsequentes que refinam a classificação. Ex: "Umidade > 70%?"
Folhas (Saída)
Resultado final da classificação. Ex: "Classe A" ou "Classe B".
Vantagens e Desvantagens da Árvore de Decisão
A Árvore de Decisão é um dos algoritmos mais populares em ML justamente pela sua interpretabilidade. No entanto, é preciso conhecer suas limitações para aplicá-la com responsabilidade.
Vantagens
  • Fácil de interpretar: a lógica de decisão é visível e explicável
  • Visual: pode ser desenhada e apresentada a não-técnicos
  • Versátil: funciona bem com dados categóricos e numéricos
  • Não requer normalização dos dados
Limitações
  • Overfitting: tende a memorizar os dados de treino
  • Instável: pequenas mudanças nos dados geram árvores muito diferentes
  • Solução: usar Random Forest (conjunto de árvores)
Treinamento e Teste — Separação dos Dados
Um princípio fundamental em ML é nunca avaliar o modelo com os mesmos dados usados para treiná-lo. A separação em conjuntos de treino e teste garante uma avaliação honesta da capacidade de generalização do modelo.
Métricas de Avaliação de Modelos
Avaliar um modelo corretamente é tão importante quanto treiná-lo. A acurácia é a métrica mais intuitiva, mas nem sempre é suficiente — especialmente com dados desbalanceados.
Acurácia
Proporção de previsões corretas sobre o total de exemplos avaliados.
Outras Métricas Importantes
  • Precisão: dos que o modelo classificou como positivos, quantos realmente eram?
  • Recall: dos que eram realmente positivos, quantos o modelo encontrou?
  • F1-Score: média harmônica entre precisão e recall — útil para dados desbalanceados.
Dataset Iris — O "Olá Mundo" do Machine Learning
O Iris é o dataset mais clássico e utilizado para aprendizado em ML. Ele contém 150 amostras de três espécies de flores, com 50 exemplos cada, descritas por quatro características numéricas.
📐 Características (Features)
  • Comprimento da sépala (cm)
  • Largura da sépala (cm)
  • Comprimento da pétala (cm)
  • Largura da pétala (cm)
🌸 Classes (Labels)
  • Setosa — facilmente separável
  • Versicolor — sobreposição moderada
  • Virginica — sobreposição moderada
Prática com Python
Bibliotecas Necessárias
Antes de implementar os modelos, precisamos importar as bibliotecas corretas. O ecossistema Python para ML é rico e bem documentado — cada biblioteca tem um papel específico no pipeline.
import pandas as pd from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score
pandas
Manipulação e análise de dados tabulares.
sklearn.datasets
Carregamento de datasets clássicos prontos para uso.
train_test_split
Separação automática dos dados em treino e teste.
accuracy_score
Cálculo da acurácia das predições do modelo.
Prática com Python
Carregando os Dados
O Scikit-learn disponibiliza o dataset Iris de forma nativa. Com apenas duas linhas, temos acesso às features (X) e aos rótulos de classe (y) prontos para uso.
iris = load_iris() X = iris.data # Shape: (150, 4) — 150 amostras, 4 features y = iris.target # Shape: (150,) — 0=Setosa, 1=Versicolor, 2=Virginica
iris.data (X)
Matriz com 150 linhas e 4 colunas. Cada linha é uma flor; cada coluna é uma medida (comprimento/largura de sépala e pétala).
iris.target (y)
Vetor com 150 valores representando as classes: 0 (Setosa), 1 (Versicolor) e 2 (Virginica). É o que o modelo deve aprender a prever.
Prática com Python
Separando Treino e Teste
A função train_test_split divide automaticamente os dados de forma aleatória. O parâmetro random_state garante que você obtenha os mesmos resultados toda vez que executar o código.
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, # 30% para teste, 70% para treino random_state=42 # Semente aleatória para reprodutibilidade )
105
Amostras de Treino
70% dos dados — o modelo aprende com esses exemplos.
45
Amostras de Teste
30% dos dados — usados apenas para avaliação final.
42
Random State
Semente que garante reprodutibilidade dos resultados.
Prática com Python
Implementando o KNN
Com o Scikit-learn, implementar o KNN é surpreendentemente simples. O fluxo segue o padrão da biblioteca: instanciar → treinar (fit) → prever (predict) → avaliar.
knn = KNeighborsClassifier(n_neighbors=3) knn.fit(X_train, y_train) pred_knn = knn.predict(X_test) print("Accuracy KNN:", accuracy_score(y_test, pred_knn))
n_neighbors=3
O modelo usará os 3 vizinhos mais próximos para votar na classe do novo ponto.
knn.fit()
Armazena os dados de treino. No KNN, o "treinamento" é simplesmente memorizar os exemplos.
knn.predict()
Para cada ponto de teste, calcula distâncias e retorna a classe majoritária dos K vizinhos.
Prática com Python
Implementando a Árvore de Decisão
A Árvore de Decisão segue exatamente o mesmo padrão de interface do Scikit-learn. Isso é uma das grandes vantagens da biblioteca: a API é consistente entre todos os algoritmos.
tree = DecisionTreeClassifier() tree.fit(X_train, y_train) pred_tree = tree.predict(X_test) print("Accuracy Tree:", accuracy_score(y_test, pred_tree))
Comparando os Algoritmos
Não existe um algoritmo universalmente melhor — a escolha depende do problema, do volume de dados e do quanto você precisa explicar as decisões do modelo. Compare os dois e escolha com consciência.
Debate:
O aprendizado se consolida quando você questiona, compara e justifica suas escolhas. Reflita sobre os experimentos realizados e traga seus resultados para o debate!
1
Qual modelo teve melhor desempenho?
Compare as acurácias obtidas pelo KNN e pela Árvore de Decisão no dataset Iris.
2
O que acontece ao mudar o valor de K?
Teste K=1, 3, 5, 7 e 15. Como a acurácia varia? Existe um padrão?
3
Qual algoritmo é mais interpretável?
Você consegue explicar para alguém de fora da área como a Árvore toma decisões?
4
Onde aplicar esses modelos?
Pense em problemas do seu dia a dia ou área de interesse onde classificação seria útil.
Conclusões da Aula
Nesta aula, percorremos toda a jornada do Machine Learning — dos conceitos fundamentais até a implementação prática de dois algoritmos de classificação. Dados são o novo combustível da Inteligência Artificial.
ML aprende padrões
Sem regras explícitas — o algoritmo descobre sozinho.
Classificação prevê categorias
O modelo aprende a separar classes a partir de exemplos.
KNN usa vizinhos
Classifica pela maioria dos K pontos mais próximos.
Árvore decide hierarquicamente
Perguntas sequenciais levam à classe final.
Avaliação é essencial
Acurácia, precisão e recall medem a qualidade real do modelo.