Leia isso em outros idiomas: English
O algoritmo de k-vizinhos mais próximos (k-NN) é um algoritmo de aprendizado de máquina supervisionado. É um algoritmo de classificação, determinando a classe de um vetor de amostra usando dados de amostra.
Na classificação k-NN, a saída é uma associação de classe. Um objeto é classificado por uma pluralidade de votos de seus vizinhos, com o objeto sendo atribuído à classe mais comum entre seus k
vizinhos mais próximos (k
é um inteiro positivo, tipicamente pequeno). Se k = 1
, então o objeto é simplesmente atribuído à classe daquele único vizinho mais próximo.
The idea is to calculate the similarity between two data points on the basis of a distance metric. Distância Euclidiana é usado principalmente para esta tarefa.
Fonte: Wikipedia
O algoritmo é o seguinte:
- Verifique se há erros como dados/rótulos inválidos.
- Calcule a distância euclidiana de todos os pontos de dados nos dados de treinamento com o ponto de classificação
- Classifique as distâncias dos pontos junto com suas classes em ordem crescente
- Pegue as classes iniciais
K
e encontre o modo para obter a classe mais semelhante - Informe a classe mais semelhante
Aqui está uma visualização da classificação k-NN para melhor compreensão:
Fonte: Wikipedia
A amostra de teste (ponto verde) deve ser classificada em quadrados azuis ou em triângulos vermelhos. Se k = 3
(círculo de linha sólida) é atribuído aos triângulos vermelhos porque existem 2
triângulos e apenas 1
quadrado dentro do círculo interno. Se k = 5
(círculo de linha tracejada) é atribuído aos quadrados azuis (3
quadrados vs. 2
triângulos dentro do círculo externo).
Outro exemplo de classificação k-NN:
Fonte: GeeksForGeeks
Aqui, como podemos ver, a classificação dos pontos desconhecidos será julgada pela proximidade com outros pontos.
É importante notar que K
é preferível ter valores ímpares para desempate. Normalmente K
é tomado como 3
ou 5
.