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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.).
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.
Embora o algoritmo KNN ofereça várias vantagens, ele também apresenta alguns notáveis pontos fracos. Dentre eles:
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.
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.
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 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.
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.
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!