O que é o algoritmo K-Nearest Neighbors (KNN), ou K vizinhos mais próximos? O algoritmo K-Nearest Neighbors (KNN), ou K vizinhos mais próximos, é um método de aprendizado de máquina supervisionado, usado para fins de classificação e regressão. Esse algoritmo atribui rótulos com base nos pontos de dados "K" mais próximos no conjunto de treinamento, sendo um dos classificadores mais usados no aprendizado de máquina. Demonstração da IA
Fatos importantes sobre os dados sintéticos
O que são vetores e pesquisa de vetores? Para que é usado o algoritmo KNN? O que são métricas de distância? Como o valor de "K" deve ser definido? Por que o algoritmo KNN é importante? Quais são as vantagens? Quais são as desvantagens? Como funciona o algoritmo KNN? Quais são as diferentes maneiras? Utilizando o algoritmo KNN

A classificação de dados é um processo fundamental tanto no aprendizado de máquina quanto na inteligência artificial. O objetivo é atribuir rótulos a pontos de dados com base em seus recursos. Isso envolve a análise de dados conhecidos (dados de treinamento) em que cada exemplo é rotulado com uma categoria ou valor. Os rótulos ajudam a estabelecer padrões e relacionamentos dentro dos dados, possibilitando que o modelo faça previsões precisas sobre novos pontos de dados não vistos. Infelizmente, trabalhar com dados rotulados não é uma opção livre de problemas. Os processos manuais envolvidos na rotulagem de dados podem ser demorados e difíceis, e o investimento em recursos pode fazer com que isso não seja uma opção para algumas organizações. 

O algoritmo K-Nearest Neighbors (KNN), ou K vizinhos mais próximos, oferece uma solução direta e eficiente a esse problema. Em vez de exigir cálculos complexos antecipadamente, o KNN funciona armazenando todos os dados e, em seguida, fazendo previsões para novos dados com base na sua semelhança aos dados existentes. Essa abordagem permite que o KNN faça previsões precisas sem precisar de ajustes finos extensivos, uma abordagem particularmente útil ao trabalhar com conjuntos de dados menores e poder de computação limitado.

Expandir tudo Recolher tudo O que são vetores e pesquisa de vetores no KNN?

Os vetores são parte integrante da funcionalidade do algoritmo K vizinhos mais próximos. Um vetor é uma sequência de números que representa um ponto em um espaço multidimensional. Os modelos de aprendizado de máquina devem ser capazes de transformar dados brutos e não estruturados nessas representações numéricas, conhecidas como representações vetoriais. As representações vetoriais capturam a essência semântica ou estrutural dos dados inseridos, com as relações entre as representações vetoriais representadas como sua proximidade espacial (quão próximas ou distantes estão umas das outras) no espaço do vetor.

O KNN usa esse arranjo espacial identificando os "vizinhos" de um ponto de consulta, outras representações vetoriais posicionadas proximamente ao espaço multidimensional. Esses vizinhos refletem pontos de dados com caraterísticas compartilhadas ou recursos semelhantes.

Por exemplo, dois documentos com temas semelhantes terão representações vetoriais mais próximas, o que permite ao KNN reconhecer semelhanças e associações, de modo a classificar novos dados ou prever resultados com base nesses relacionamentos.

Conheça o Now Intelligence Descubra como a ServiceNow está tirando a IA e a análise dos laboratórios para transformar a maneira como as empresas trabalham e acelerar a transformação digital. Receba o eBook
Para que é usado o algoritmo KNN? 

O algoritmo KNN opera por meio do uso de vetores para identificar o "K" (que são os pontos de contato mais próximos, ou vizinhos) de um novo ponto de dados e fazer previsões com base nesses vizinhos. Por exemplo, se o objetivo fosse classificar e-mails como spam ou não spam, o KNN olharia para os e-mails com "K" mais semelhantes e classificaria o novo e-mail com base na classificação majoritária desses vizinhos.

De outro modo, imagine que uma organização tenha dados sobre vários clientes, com recursos como idade, interesses e histórico de compras. O KNN pode comparar as características desses clientes e agrupá-los em categorias, como compradores frequentes, compradores ocasionais e somente observadores. Se um novo cliente visitar o site, o KNN poderá prever seu comportamento de compra avaliando o grupo ao qual ele mais se assemelha. 

A adaptabilidade do algoritmo se estende ainda mais quando ele é usado com conjuntos de dados multimodais. Aqui, as informações são combinadas a partir de várias fontes de uma só vez, como texto, imagens ou áudio. O KNN pode analisar essas representações vetoriais em um espaço de vetor compartilhado, identificando semelhanças entre modalidades distintas. A aplicação do KNN a dados multimodais permite seja encontrado o vizinho mais semelhante, independentemente dos tipos de dados. Por isso, o KNN é um algoritmo versátil para cenários de dados cada vez mais complexos e diversificados.

  • Reconhecimento de padrões

O KNN é amplamente utilizado em tarefas de reconhecimento de padrões, como reconhecimento de imagem e caligrafia. Ao comparar novas imagens ou amostras a um conjunto de dados rotulado, o KNN pode classificar com precisão objetos, caracteres ou rostos com base na semelhança com padrões conhecidos. 

  • Processamento de dados 

O KNN é eficaz no pré-processamento de dados, como na atribuição de valores ausentes ou na detecção de valores atípicos. Ao analisar os vizinhos mais próximos, o KNN pode estimar valores ausentes com base nos pontos de dados mais semelhantes, melhorando assim a qualidade e a consistência dos dados. 

  • Mecanismos de recomendação 

O KNN ajuda a criar sistemas de recomendação analisando o comportamento e as preferências do usuário. Ao encontrar usuários com interesses semelhantes, o KNN pode sugerir produtos, filmes ou conteúdo que outros usuários com perfis semelhantes tenham curtido, melhorando assim a experiência e o engajamento do usuário. 

  • Transformação de imagem em texto 

O KNN tem sido cada vez mais usado em tarefas de transformação de imagem em texto em sistemas multimodais. Ao comparar as representações vetoriais de imagens com as de descrições textuais, o KNN possibilita que os sistemas de IA executem tarefas complexas, como a geração de legendas automatizadas, em que as correspondências mais próximas fornecem texto contextualmente apropriado para uma determinada imagem. 

Quais métricas de distância são usadas no KNN?

Em cada abordagem listada acima, a precisão das previsões do KNN depende muito das métricas de distância usadas para medir a semelhança dos dados. As métricas de distância no KNN medem a semelhança entre pontos de dados, o que é fundamental para previsões precisas. Essas métricas determinam como o algoritmo calcula a "proximidade" dos pontos de dados para classificar ou prever novos pontos de dados de maneira eficaz.

Distância euclidiana 

A distância euclidiana é a métrica mais comum usada no KNN, calculando a distância em linha reta entre dois pontos no espaço euclidiano. Imagine usar um mapa e uma régua para medir o caminho mais curto entre dois locais. Quanto menor a distância, mais semelhantes os pontos serão considerados. Por exemplo, ao comparar a altura e o peso de diferentes indivíduos, a distância euclidiana ajudaria a determinar quais indivíduos são mais semelhantes com base nessas duas caraterísticas pelas quais são separados com a menor distância euclidiana. 

 

Distância de Manhattan 

A distância de Manhattan mede as diferenças absolutas entre pontos ao longo de cada dimensão, como a navegação pela malha urbana das ruas de uma cidade. Imagine uma malha urbana em que o movimento somente possa seguir ao longo das ruas (e não diagonalmente, entre os prédios). Essa métrica é útil quando os pontos de dados são estruturados em um padrão semelhante ao de uma grade, como no caso da comparação de rotas de entrega ou de cenários de planejamento urbano.

Distância de Minkowski  

A distância de Minkowski é uma generalização das distâncias euclidiana e de Manhattan. Ao ajustar um parâmetro "p", ela pode se comportar como qualquer uma dessas métricas. Pense na distância de Minkowski como uma ferramenta flexível que pode se adaptar a diferentes cenários conforme as necessidades específicas da análise de dados. Por exemplo, se alguém comparasse propriedades com diferentes dimensões (como preço, área e número de quartos), ajustar o valor "p" ajudaria a enfatizar certas dimensões em relação a outras. Por isso, essa é uma métrica versátil para diversos tipos de comparações de dados. 

Como o valor de "K" deve ser definido? 

Sem definirmos o valor certo para o "K", o algoritmo KNN não funcionará como desejado. Se usarmos um valor de "K" muito pequeno, as previsões poderão ser exageradamente sensíveis aos ruídos nos dados, o que levaria a uma alta variância e a previsões menos estáveis. Por outro lado, um valor muito grande pode suavizar as previsões e fazer com que o modelo fique generalizado demais, a ponto de perder padrões específicos.

Para encontrar o valor ideal de "K", os profissionais normalmente usam validação cruzada (uma técnica em que o conjunto de dados é dividido em conjuntos de treinamento e validação várias vezes para testar diferentes valores de "K"). Isso ajuda a identificar um "K" que minimize os erros de previsão e mantenha a capacidade de generalização do algoritmo.

Esse processo pode envolver tentativas e erros. Para encontrar o "K" correto. é necessário testar vários valores e garantir que o modelo funcione bem em dados vistos e não vistos, alcançando o equilíbrio ideal de estabilidade e especificidade.

Por que o algoritmo KNN é importante? 
O algoritmo KNN é uma ferramenta valiosa em vários cenários em que as relações entre pontos de dados não sejam imediatamente óbvias, aproveitando a semelhança entre pontos de dados para fazer previsões precisas, sem extenso treinamento de modelos. Isso é particularmente útil em campos como o de reconhecimento de imagem, onde as semelhanças visuais podem ser cruciais para identificar objetos, ou na segmentação de clientes, onde os padrões de comportamento ajudam a categorizar os usuários em grupos significativos. 
Quais são as vantagens do algoritmo KNN? 

Estabelecer conexões, semelhanças e relacionamentos entre pontos de dados é o objetivo geral do algoritmo K de vizinhos mais próximos. O que ajuda a fazer desse modelo uma opção tão usada pelas organizações é o conjunto adicional de vantagens que ele agrega. Dentre os benefícios do KNN, estão:

Facilidade de implementação 

O KNN é simples de implementar e entender, até mesmo para quem está começando a usar o aprendizado de máquina. Não requer uma fase de treinamento complexa; em vez disso, memoriza o conjunto de dados de treinamento e o usa diretamente para fazer previsões.

Adaptabilidade 

O KNN consegue processar as várias estruturas de dados e os relacionamentos necessários para agrupar pontos de dados, seja em tarefas de classificação seja nas de regressão. Essa flexibilidade possibilita sua aplicação em vários domínios (financeiros, de saúde, comércio eletrônico, etc.).

Menos complexidade

O KNN requer apenas alguns hiperparâmetros, principalmente o valor de "K" e a métrica de distância. Isso reduz a complexidade envolvida no ajuste de modelos em comparação com outros algoritmos que possa exigir uma ampla otimização de parâmetros. Como resultado, ele simplifica o processo geral de desenvolvimento de modelos e facilita a obtenção de um desempenho superior com ajustes mínimos.

Quais são as desvantagens de se usar o algoritmo KNN? 

Embora o algoritmo KNN ofereça várias vantagens, ele também apresenta alguns notáveis pontos fracos. Dentre eles: 

Problemas com alta dimensionalidade 

A alta dimensionalidade refere-se ao aumento exponencial dos dados necessários para manter o mesmo nível de desempenho conforme a quantidade de recursos (ou dimensões) for crescendo. Em espaços de alta dimensão, a distância entre pontos de dados se torna menos significativa, dificultando a identificação de vizinhos verdadeiramente "mais próximos" por parte do KNN. Esse problema pode reduzir significativamente a precisão e a eficácia do algoritmo nos conjuntos de dados com muitos recursos. 

Suscetibilidade ao sobreajuste 

O KNN pode ser afetado negativamente pelo ruído e pelas discrepâncias no conjunto de dados, especialmente quando o valor de "K" é pequeno. Essa sensibilidade pode levar ao que se chama de sobreajuste, onde o algoritmo captura ruído e anomalias como se fossem padrões verdadeiros. O sobreajuste resulta na má generalização de dados novos e não vistos, reduzindo o desempenho preditivo do modelo. 

Dificuldade de escalonamento 

A complexidade computacional cresce com o tamanho do conjunto de dados, o que faz com que o KNN seja ineficiente para conjuntos de dados excessivamente grandes. Cada previsão requer o cálculo da distância entre o novo ponto de dados e todos os pontos existentes no conjunto de treinamento, levando a um alto uso de memória e longos tempos de computação. Essa falta de escalabilidade limita a aplicabilidade do KNN em cenários com grandes volumes de dados. 

Como funciona o algoritmo KNN? 

Como mencionado anteriormente, o algoritmo KNN classifica pontos de dados com base em sua proximidade a outros pontos de dados no conjunto de dados. Para fazer isso, o algoritmo deve seguir um conjunto específico de etapas:

1. Escolha a quantidade de vizinhos (K) 

Defina o valor de "K" a ser considerado ao fazer a classificação ou regressão. Esse valor influenciará a forma como o algoritmo avaliará a semelhança entre pontos de dados.

2. Calcule a distância 

Para cada ponto de dados no conjunto de treinamento, calcule a distância entre ele e o novo ponto de dados usando uma das métricas de distância padrão (distância euclidiana, Manhattan ou Minkowski). Essa medição da distância ajuda a identificar quais devem ser considerado os vizinhos mais próximos do novo ponto de dados.

3. Identifique os vizinhos mais próximos 

Classifique as distâncias calculadas na Etapa 2 e determine os vizinhos "K" mais próximos. Esses vizinhos são os pontos de dados mais próximos do novo ponto de dados, com base na métrica de distância escolhida. 

4. Faça uma previsão 

Para tarefas de classificação, atribua o novo ponto de dados à classe que for mais comum entre seus vizinhos "K" mais próximos. Para tarefas de regressão, calcule o valor médio ou mediano dos vizinhos "K" mais próximos e use esse valor como previsão para o novo ponto de dados.

5. Avalie o modelo

Avalie a precisão e o desempenho do modelo de KNN usando técnicas de validação cruzada. Ajuste o valor de "K" e a métrica de distância conforme necessário para otimizar as previsões do modelo. 

Quais são as diferentes maneiras de realizar o KNN? 

Existem vários métodos para executar o algoritmo K-Nearest Neighbors (KNN), ou K vizinhos mais próximos, cada um com suas próprias vantagens e aplicações adequadas. Os métodos a seguir ajudam a otimizar o processo de encontrar os vizinhos mais próximos, o que faz do KNN uma opção eficiente para diferentes tipos de conjuntos de dados.  

  • Força bruta 

O método de força bruta calcula a distância entre o ponto de consulta e todos os outros pontos no conjunto de dados. Embora seja simples, é computacionalmente caro, o que faz com que seja mais adequado a pequenos conjuntos de dados 

  • Árvore bidimensional (árvore k-d)

Uma árvore k-d organiza pontos em um espaço k-dimensional dividindo o espaço recursivamente em hiper-retângulos. Ela reduz os cálculos de distância e acelera as pesquisas de KNN para obter dados moderadamente elevados. 

  • Árvore de bolas

Uma árvore de bolas divide o espaço em hiperesferas aninhadas, permitindo pesquisas eficientes de vizinhos mais próximos e eliminando partes irrelevantes do conjunto de dados. É particularmente eficaz para dados de alta dimensão e, muitas vezes, tem melhor desempenho do que as árvores k-d nesses cenários. 

Preços da ServiceNow A ServiceNow oferece pacotes de produtos competitivos que se adaptam ao crescimento e às necessidades em constante mudança da sua empresa. Acessar preços
Como aproveitar os K de vizinhos mais próximos com a ServiceNow 

O algoritmo K de vizinhos mais próximos é importantíssimo por sua capacidade de classificar pontos de dados e quantificar relacionamentos para sistemas de IA. Líder em soluções de TI empresariais, a ServiceNow integra IA avançada e KNN, fornecendo ferramentas poderosas para a transformação digital. A premiada Now Platform® da ServiceNow aproveita a IA e o aprendizado de máquina para automatizar, otimizar e modernizar fluxos de trabalho em toda a gama de funções de negócios, permitindo uma otimização inteligente em toda a empresa. 

Ao integrar o KNN e outros algoritmos avançados, a ServiceNow permite que as organizações aproveitem a IA para aprimorar a tomada de decisões, reduzir os tempos de resposta e alcançar uma abordagem mais eficiente para os negócios. Experimente o poder transformador da IA e da Now Platform. Solicite uma demonstração da ServiceNow hoje mesmo! 

Alt
Explorar fluxos de trabalho de IA Descubra como a plataforma ServiceNow leva a utilidade da IA a todos os aspectos da sua empresa. Explore a IA generativa Fale conosco
Recursos Artigos O que é IA? O que é a IA generativa? Relatórios dos analistas IDC InfoBrief: Maximize AI Value with a Digital Platform (Maximize o valor da IA com uma plataforma digital) Generative AI in IT Operations (IA generativa em operações de TI) Implementação da IA generativa no setor de telecomunicações Folhas de dados AI Search (Pesquisa com IA) Preveja e evite indisponibilidades com a AIOps preditiva da ServiceNow® Gestão de recursos eBooks Modernize IT Services and Operations with AI (Modernize serviços e operações de TI com a IA) GenAI: Is it really that big of a deal? (IA generativa: é tudo isso mesmo?) Libere a produtividade em toda a empresa com a GenAI White Papers Enterprise AI Maturity Index (Índice de maturidade da IA empresarial) GenAI for Telco (IA generativa para telecomunicações)