|
| 1 | +# Algoritmo de k-vizinhos mais próximos |
| 2 | + |
| 3 | +_Leia isso em outros idiomas:_ |
| 4 | +[_English_](README.md) |
| 5 | + |
| 6 | +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. |
| 7 | + |
| 8 | +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. |
| 9 | + |
| 10 | +The idea is to calculate the similarity between two data points on the basis of a distance metric. [Distância Euclidiana](https://github.com/trekhleb/javascript-algorithms/tree/master/src/algorithms/math/euclidean-distance) é usado principalmente para esta tarefa. |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | +_Fonte: [Wikipedia](https://en.wikipedia.org/wiki/Euclidean_distance)_ |
| 15 | + |
| 16 | +O algoritmo é o seguinte: |
| 17 | + |
| 18 | +1. Verifique se há erros como dados/rótulos inválidos. |
| 19 | +2. Calcule a distância euclidiana de todos os pontos de dados nos dados de treinamento com o ponto de classificação |
| 20 | +3. Classifique as distâncias dos pontos junto com suas classes em ordem crescente |
| 21 | +4. Pegue as classes iniciais `K` e encontre o modo para obter a classe mais semelhante |
| 22 | +5. Informe a classe mais semelhante |
| 23 | + |
| 24 | +Aqui está uma visualização da classificação k-NN para melhor compreensão: |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | +_Fonte: [Wikipedia](https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm)_ |
| 29 | + |
| 30 | +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). |
| 31 | + |
| 32 | +Outro exemplo de classificação k-NN: |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | +_Fonte: [GeeksForGeeks](https://media.geeksforgeeks.org/wp-content/uploads/graph2-2.png)_ |
| 37 | + |
| 38 | +Aqui, como podemos ver, a classificação dos pontos desconhecidos será julgada pela proximidade com outros pontos. |
| 39 | + |
| 40 | +É importante notar que `K` é preferível ter valores ímpares para desempate. Normalmente `K` é tomado como `3` ou `5`. |
| 41 | + |
| 42 | +## Referências |
| 43 | + |
| 44 | +- [k-nearest neighbors algorithm on Wikipedia](https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm) |
0 commit comments