K-Nearest Neighbors (KNN): Simples, Eficiente e Versátil
Às vezes, a melhor resposta está entre os vizinhos mais próximos
Continunado nossa série Top 8 Algoritmos de Machine Learning, hoje chegou a vez de vermos o algoritmo KNN !
K-Nearest Neighbors (KNN), ou K-vizinhos mais próximos, é um dos métodos de machine learning mais simples e intuitivos, amplamente utilizado para classificação e regressão.
Sua facilidade de implementação e eficácia em problemas diversos o tornam uma escolha popular para iniciantes e profissionais da área de ciência de dados.
Acesse o Colab (Notebook) com o código: https://elisaterumi.substack.com/p/notebooks
O Que é o KNN?
KNN é um algoritmo baseado em instância que classifica um novo dado com base nos exemplos mais próximos a ele em um espaço multidimensional.
Ele assume que dados semelhantes estão localizados próximos uns dos outros. Em termos práticos, o KNN busca os "K" vizinhos mais próximos de um novo ponto e decide sua classificação ou valor com base neles.
Como o KNN Funciona?
Escolha do valor de K: Define-se um número K de vizinhos a serem considerados para classificação ou previsão.
Cálculo da Distância: Para cada novo dado, calcula-se a distância entre ele e todos os pontos do conjunto de treinamento. A métrica de distância mais comum é a Distância Euclidiana.
Seleção dos K Vizinhos: Ordenam-se os vizinhos pela menor distância e selecionam-se os K mais próximos.
Decisão da Classificação ou Regressão:
Para classificação: A classe mais frequente entre os vizinhos é atribuída ao novo dado.
Para regressão: A média dos valores dos vizinhos é usada como previsão.
Escolhendo o Valor de K
A escolha de K impacta diretamente o desempenho do modelo:
Valores pequenos (K=1, K=3): Pode levar a overfitting, pois o modelo se torna sensível a ruídos nos dados.
Valores muito grandes (K=20) podem tornar o modelo excessivamente genérico e reduzir sua capacidade de capturar padrões, levando ao underfitting.
O parâmetro K é crucial para o desempenho do KNN. Uma técnica comum para escolher o valor de K é o método de validação cruzada, testando diferentes valores e escolhendo aquele que minimiza o erro de validação.
Vantagens e Desvantagens do KNN
Vantagens:
Simples de entender e implementar
Não requer treinamento antes da predição
Funciona bem para conjuntos de dados pequenos e bem distribuídos
Desvantagens:
Ineficiente para grandes volumes de dados, pois exige cálculo de distância para todos os pontos
Sensível a dados ruidosos e features irrelevantes
Dependente da escolha da métrica de distância
Implementação Prática com Python
Agora vamos ver um exemplo simples de como implementar o KNN usando a biblioteca scikit-learn,
com um dataset gerado artificialmente para classificar frutas com base em seu peso e tamanho.
O objetivo é prever se uma fruta é uma maçã ou uma laranja com base nessas características.
Acesse o Colab (Notebook) com o código: https://elisaterumi.substack.com/p/notebooks
Continue a ler com uma experiência gratuita de 7 dias
Subscreva a Explorando a Inteligência Artificial para continuar a ler este post e obtenha 7 dias de acesso gratuito ao arquivo completo de posts.