Trilha machine learning: Algoritmo KNN

O KNN (K-Nearest Neighbors, ou K-vizinhos mais próximos) é um algoritmo de aprendizado supervisionado utilizado para classificação e regressão, ele se baseia na ideia de que instâncias semelhantes tendem a ter rótulos semelhantes.

Para classificação, dado um ponto de consulta, o KNN encontra os k pontos de treinamento mais próximos a esse ponto (com base em alguma métrica de distância, como a euclidiana) e determina a classe mais comum entre eles. Já no caso da regressão, o KNN calcula a média dos valores alvo dos k vizinhos mais próximos para prever o valor para o ponto de consulta.

As vantagens desse método são a simplicidade de implementação, não requer treinamento explícito, e é eficiente para conjuntos de dados pequenos, mas em contrapartida, é sensível a outliers e pode ser computacionalmente custoso para conjuntos de dados grandes.

Podemos usá-los para identificar se um e-mail é spam ou não com base em características como palavras-chave ou prever o preço de uma casa com base nas características de casas semelhantes na vizinhança.

A escolha adequada do valor de k é crucial e depende do problema específico. O KNN assume que os dados são distribuídos de maneira homogênea no espaço de características. Normalização de características pode ser necessária para evitar que características com escalas diferentes dominem a distância.


Vamos aplicar!







Executamos nosso código e tivemos como resultado:























Nesse código nós:
  1. Importamos as bibliotecas necessárias, incluindo NumPy para manipulação numérica, Matplotlib para plotagem de gráficos e as ferramentas relacionadas ao k-NN do scikit-learn.
  2. Carregamos o conjunto de dados Iris, que já é um conjunto de dados conhecido por aqui, mas para lembrar ele contém características de três espécies de íris (setosa, versicolor e virginica).
  3. Dividimos os dados em conjuntos de treinamento e teste.
  4. Criamos um classificador k-NN com `n_neighbors=3` (3 vizinhos mais próximos) e o treina com os dados de treinamento.
  5. Utilizamos o modelo treinado para fazer previsões no conjunto de teste e avalia a precisão do modelo.
  6. E por fim, criamos uma grade de pontos para visualizar as regiões de decisão do classificador, a plotagem inclui as regiões de decisão coloridas e os pontos de treinamento/teste com diferentes marcadores.
O resultado visual que obtivemos mostra as regiões de decisão do classificador k-NN para as duas primeiras características do conjunto de dados Iris, onde cada região é atribuída a uma classe específica, os pontos de treinamento são marcados com círculos, enquanto os pontos de teste são marcados com "x" e as cores indicam as classes reais dos pontos. O objetivo é ilustrar como o k-NN divide o espaço de características em regiões que correspondem às diferentes classes, e como essas regiões podem se sobrepor ou ser claramente distintas dependendo da complexidade do modelo e da distribuição dos dados.

Espero que tenha gostado! Até breve! 😉

Comentários

Postagens mais visitadas deste blog

Resenha: Storytelling com dados - Cole Nussbaumer Knaflic

Trilha estatística: Variância e desvio padrão

Trilha machine learning: Algoritmo de regressão linear