toco O que é um KNN (K-Vizinhos Mais Próximos)? - Unite.AI
Entre em contato
Masterclass de IA:

AI 101

O que é um KNN (K-Vizinhos Mais Próximos)?

mm
Atualização do on

O que é K-vizinhos mais próximos (KNN)?

K-Nearest Neighbors é uma técnica e algoritmo de aprendizado de máquina que pode ser usado para tarefas de regressão e classificação. Vizinhos mais próximos examina os rótulos de um número escolhido de pontos de dados em torno de um ponto de dados de destino, a fim de fazer uma previsão sobre a classe em que o ponto de dados se enquadra. K-Nearest Neighbours (KNN) é um algoritmo conceitualmente simples, mas muito poderoso e, por esses motivos, é um dos algoritmos de aprendizado de máquina mais populares. Vamos mergulhar fundo no algoritmo KNN e ver exatamente como ele funciona. Ter um bom entendimento de como o KNN opera permitirá que você aprecie os melhores e os piores casos de uso do KNN.

Visão geral dos K-vizinhos mais próximos (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 ao longo do gráfico em pequenos grupos. 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 recebem um rótulo. A principal suposição que um modelo KNN faz é que os pontos/instâncias de dados que existem próximos uns dos outros são altamente semelhantes, enquanto se um ponto de dados estiver longe de outro grupo, ele será diferente desses pontos de dados.

Um modelo KNN calcula a similaridade 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 pontos, mas a métrica de distância mais comum é apenas 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 rótulos atribuídos a eles/suas classes devem ser conhecidas. Há duas outras coisas importantes a saber sobre o KNN. Primeiro, 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 teste, portanto, todos os dados de treinamento também são usados ​​quando o modelo é solicitado a fazer previsões.

Como funciona um algoritmo KNN

Um algoritmo KNN passa por três fases principais à medida que é executado:

  1. Configurando K para o número escolhido de vizinhos.
  2. Calcular a distância entre um exemplo fornecido/de teste e os exemplos do conjunto de dados.
  3. Classificando as distâncias calculadas.
  4. Obtendo os rótulos das entradas K principais.
  5. Retornando 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 fazer 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 classificadas. Em seguida, a lista ordenada é verificada e os rótulos dos K ​​elementos principais são retornados. Em outras palavras, se K for definido como 5, o modelo verifica os rótulos dos 5 principais 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 or classificação tarefa. Para uma tarefa de regressão, a média dos K ​​rótulos superiores é usada, enquanto a moda dos K ​​rótulos superiores é usada no caso de classificação.

As operações matemáticas exatas usadas para realizar o KNN diferem dependendo da métrica de distância escolhida. Se quiser saber mais sobre como as métricas são calculadas, você pode ler sobre algumas das métricas de distância mais comuns, como Euclidiano, Manhattan e Minkowski.

Por que o valor de K é importante

A principal limitação ao usar KNN é que um valor impróprio de K (o número errado de vizinhos a serem considerados) pode ser escolhido. Se isso acontecer, as previsões retornadas podem estar substancialmente erradas. É muito importante que, ao usar um algoritmo KNN, o valor adequado para K seja escolhido. Você deseja escolher um valor para K que maximize a capacidade do modelo de fazer previsões sobre dados não vistos enquanto reduz o número de erros cometidos.

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 feitas pelo KNN são menos estáveis ​​e confiáveis. Para obter uma intuição de por que isso ocorre, considere um caso em que temos 7 vizinhos em torno de um ponto de dados de destino. Vamos supor que o modelo KNN esteja trabalhando com um valor K de 2 (estamos pedindo para olhar para os dois vizinhos mais próximos para fazer uma previsão). Se a grande maioria dos vizinhos (cinco de sete) pertencer à classe Blue, mas os dois vizinhos mais próximos forem Red, o modelo preverá que o exemplo de consulta é Red. Apesar da suposição do modelo, em tal cenário, Azul seria uma suposição melhor.

Se for esse o caso, por que não escolher o valor de K mais alto possível? Isso ocorre porque dizer ao modelo para considerar 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 incorreta começará a ocorrer. Por exemplo, mesmo que o ponto escolhido inicialmente estivesse em uma das regiões vermelhas acima, se K fosse definido muito alto, o modelo alcançaria as outras regiões para considerar pontos. Ao usar um modelo KNN, diferentes valores de K são testados para ver qual valor dá ao modelo o melhor desempenho.

KNN prós e contras

Vamos examinar alguns dos 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.

KNN é altamente preciso e simples de usar. É fácil de interpretar, entender e implementar.

O KNN não faz suposições 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. Grandes conjuntos de dados também podem fazer com que as previsões demorem muito.

O KNN prova ser muito sensível à escala do conjunto de dados e pode ser descartado por recursos irrelevantes com bastante facilidade em comparação com outros modelos.

Resumo de K-vizinhos mais próximos (KNN)

K-Nearest Neighbors é um dos algoritmos de aprendizado de máquina mais simples. Apesar de o KNN ser simples, em conceito, também é um algoritmo poderoso que fornece precisão bastante alta na maioria dos problemas. Ao usar o KNN, certifique-se de experimentar vários valores de K para encontrar o número que fornece a maior precisão.

Blogueiro e programador com especialidades em Machine Learning e Aprendizagem profunda tópicos. Daniel espera ajudar outras pessoas a usar o poder da IA ​​para o bem social.