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?
- Você coloca o novo ponto no gráfico.
- Olha para os \(K\) vizinhos mais próximos dele.
- 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ê?