Fundamentos de IA
O que é KNN (K-Nearest Neighbors)?
O que é K-Nearest Neighbors (KNN)?
K-Nearest Neighbors é uma técnica de aprendizado de máquina e algoritmo que pode ser usado para tarefas de regressão e classificação. K-Nearest Neighbors examina as etiquetas de um número escolhido de pontos de dados ao redor de um ponto de dados alvo, a fim de fazer uma previsão sobre a classe em que o ponto de dados se encontra. K-Nearest Neighbors (KNN) é um conceito simples, mas muito poderoso, e por essas razões, é um dos algoritmos de aprendizado de máquina mais populares. Vamos mergulhar profundamente no algoritmo KNN e ver exatamente como ele funciona. Ter uma boa compreensão de como o KNN opera permitirá que você aprecie os melhores e piores casos de uso para o KNN.
Visão Geral de K-Nearest Neighbors (KNN)

Foto: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)
Vamos visualizar um conjunto de dados em um plano 2D. Imagine um monte de pontos de dados em um gráfico, espalhados pelo gráfico em pequenos clusters. O KNN examina a distribuição dos pontos de dados e, dependendo dos argumentos dados ao modelo, separa os pontos de dados em grupos. Esses grupos são então atribuídos a uma etiqueta. A principal suposição que um modelo KNN faz é que os pontos de dados/instâncias que existem em proximidade um do outro são muito semelhantes, enquanto se um ponto de dados está longe de outro grupo, é dissimilar aos pontos de dados.
Um modelo KNN calcula a semelhança usando a distância entre dois pontos em um gráfico. Quanto maior a distância entre os pontos, menos semelhantes eles são. Existem várias maneiras de calcular a distância entre os pontos, mas a métrica de distância mais comum é a distância euclidiana (a distância entre dois pontos em uma linha reta).
KNN é um algoritmo de aprendizado supervisionado, o que significa que os exemplos no conjunto de dados devem ter etiquetas atribuídas a eles/suas classes devem ser conhecidas. Existem duas outras coisas importantes a saber sobre o KNN. Primeiro, o KNN é um algoritmo não paramétrico. Isso significa que nenhuma suposição sobre o conjunto de dados é feita quando o modelo é usado. Em vez disso, o modelo é construído inteiramente a partir dos dados fornecidos. Em segundo lugar, não há divisão do conjunto de dados em conjuntos de treinamento e teste ao usar o KNN. O KNN não faz generalizações entre um conjunto de treinamento e um conjunto de teste, então todos os dados de treinamento também são usados quando o modelo é solicitado a fazer previsões.
Como um Algoritmo KNN Opera
Um algoritmo KNN passa por três fases principais enquanto é executado:
- Definir K para o número escolhido de vizinhos.
- Calcular a distância entre um exemplo fornecido/teste e os exemplos do conjunto de dados.
- Ordenar as distâncias calculadas.
- Obter as etiquetas dos principais K elementos.
- Retornar uma previsão sobre o exemplo de teste.
Na primeira etapa, K é escolhido pelo usuário e informa ao algoritmo quantos vizinhos (quantos pontos de dados circundantes) devem ser considerados ao renderizar um julgamento sobre o grupo ao qual o exemplo de destino pertence. Na segunda etapa, observe que o modelo verifica a distância entre o exemplo de destino e cada exemplo no conjunto de dados. As distâncias são então adicionadas a uma lista e ordenadas. Em seguida, a lista ordenada é verificada e as etiquetas dos principais K elementos são retornadas. Em outras palavras, se K for definido como 5, o modelo verifica as etiquetas dos 5 pontos de dados mais próximos do ponto de dados de destino. Ao renderizar uma previsão sobre o ponto de dados de destino, importa se a tarefa é uma regressão ou classificação . Para uma tarefa de regressão, a média das principais K etiquetas é usada, enquanto o modo das principais K etiquetas é usado no caso de classificação.
As operações matemáticas exatas usadas para executar o KNN diferem dependendo da métrica de distância escolhida. Se você quiser aprender mais sobre como as métricas são calculadas, pode ler sobre algumas das métricas de distância mais comuns, como Euclidiana, Manhattan e Minkowski.
Por que o Valor de K é Importante
A principal limitação ao usar o KNN é que um valor inadequado de K (o número errado de vizinhos a ser considerado) pode ser escolhido. Se isso acontecer, as previsões retornadas podem ser substancialmente erradas. É muito importante que, ao usar um algoritmo KNN, o valor correto para K seja escolhido. Você deseja escolher um valor para K que maximize a capacidade do modelo de fazer previsões em dados não vistos, enquanto reduz o número de erros que ele comete.

Foto: Agor153 via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)
Valores mais baixos de K significam que as previsões renderizadas pelo KNN são menos estáveis e confiáveis. Para ter uma ideia de por que isso é assim, considere um caso em que temos 7 vizinhos ao redor de um ponto de dados de destino. Vamos supor que o modelo KNN está trabalhando com um valor de K de 2 (estamos pedindo que ele olhe para os dois vizinhos mais próximos para fazer uma previsão). Se a grande maioria dos vizinhos (cinco de sete) pertence à classe Azul, mas os dois vizinhos mais próximos acontecem de ser Vermelho, o modelo preverá que o exemplo de consulta é Vermelho. Apesar da previsão do modelo, nesse cenário, Azul seria uma suposição melhor.
Se for esse o caso, por que não escolher simplesmente o valor mais alto de K que podemos? Isso ocorre porque dizer ao modelo que considere muitos vizinhos também reduzirá a precisão. À medida que o raio que o modelo KNN considera aumenta, ele eventualmente começará a considerar pontos de dados que estão mais próximos de outros grupos do que do ponto de dados de destino e a classificação errada começará a ocorrer. Por exemplo, mesmo que o ponto inicialmente escolhido estivesse em uma das regiões vermelhas acima, se K for definido muito alto, o modelo alcançará outras regiões para considerar pontos. Ao usar um modelo KNN, diferentes valores de K são tentados para ver qual valor dá ao modelo o melhor desempenho.
Prós e Contras do KNN
Vamos examinar alguns prós e contras do modelo KNN.
Prós:
O KNN pode ser usado para tarefas de regressão e classificação, ao contrário de alguns outros algoritmos de aprendizado supervisionado.
O KNN é altamente preciso e simples de usar. É fácil de interpretar, entender e implementar.
O KNN não faz nenhuma suposição sobre os dados, o que significa que pode ser usado para uma ampla variedade de problemas.
Contras:
O KNN armazena a maioria ou todos os dados, o que significa que o modelo requer muita memória e é computacionalmente caro. Conjuntos de dados grandes também podem causar previsões que demoram muito tempo.
O KNN se prova muito sensível à escala do conjunto de dados e pode ser facilmente afetado por recursos irrelevantes em comparação com outros modelos.
Resumo de K-Nearest Neighbors (KNN)
K-Nearest Neighbors é um dos algoritmos de aprendizado de máquina mais simples. Apesar de ser simples, o KNN é um algoritmo poderoso que fornece precisão razoavelmente alta na maioria dos problemas. Quando você usa o KNN, certifique-se de experimentar diferentes valores de K para encontrar o número que fornece a precisão mais alta.












