Pular para conteúdo

Aula 06 - Classificação e K-Nearest Neighbors (KNN) 🏷️

Diferente da Regressão (que prevê números), a Classificação serve para decidir a qual categoria algo pertence.

📂 O que é Classificação?

É o processo de prever um rótulo ou categoria. - E-mail: Spam ou Não Spam? - Fruta: Maçã ou Laranja? - Saúde: Doente ou Saudável?


👥 O Algoritmo KNN (K-Vizinhos Mais Próximos)

O KNN é um dos algoritmos mais intuitivos. Ele diz: "Diz-me com quem andas e dir-te-ei quem és".

Como funciona?

  1. Você coloca o novo ponto no gráfico.
  2. Olha para os \(K\) vizinhos mais próximos dele.
  3. A categoria que ganhar por maioria de votos é a escolha do modelo.
graph TD
    start["Novo Dado"] --> find["Procurar K vizinhos mais próximos"]
    find --> vote["Votação (Maioria)"]
    vote --> result["Classificação Final"]

📏 O Conceito de Distância

Como o computador sabe quem está "perto"? Ele calcula a distância matemática (geralmente a Distância Euclidiana).

$ python
>>> from sklearn.neighbors import KNeighborsClassifier
>>> # Treino: [Peso, Textura] -> 0: Laranja, 1: Maçã
>>> X = [[150, 4], [170, 4.2], [140, 3.8], [130, 3.5]]
>>> y = [0, 0, 1, 1]
>>> # Criando modelo com 3 vizinhos (K=3)
>>> knn = KNeighborsClassifier(n_neighbors=3).fit(X, y)
>>> print(f"Resultado da previsão: {knn.predict([[160, 4]])}")

🧠 Dica do Especialista

Escolha do K

  • Se o \(K\) for muito pequeno (ex: 1), o modelo fica sensível a ruídos.
  • Se o \(K\) for muito grande, ele pode ignorar padrões locais importantes.
  • Geralmente, usamos \(K\) como um número ímpar para evitar empates!

🚀 Mini-Projeto

Desafio: Escolha um valor para \(K\) (1 ou 100) para classificar se um filme é bom ou ruim baseado em 3 notas de amigos. Qual valor parece fazer mais sentido e por quê?


Próxima Aula: Overfitting e Underfitting