K-Nearest Neighbours (KNN): o que é e como é usado no aprendizado de máquina

Publicados: 2024-12-18

K-vizinhos mais próximos (KNN) é uma técnica fundamental em aprendizado de máquina (ML). Este guia ajudará você a entender o KNN, como ele funciona e suas aplicações, benefícios e desafios.

Índice

Qual é o algoritmo de k-vizinhos mais próximos?

Como funciona o KNN?

Diferença entre k-vizinhos mais próximos e outros algoritmos

Como o KNN é usado no aprendizado de máquina?

Aplicações do KNN

Vantagens do KNN

Desvantagens do KNN

Qual é o algoritmo de k-vizinhos mais próximos?

O algoritmo k-vizinhos mais próximos (KNN) é uma técnica de aprendizagem supervisionada usada tanto para classificação quanto para regressão. KNN determina o rótulo (classificação) ou valor previsto (regressão) de um determinado ponto de dados avaliando pontos de dados próximos no conjunto de dados.

Trabalhe de maneira mais inteligente com Grammarly
O parceiro de redação de IA para qualquer pessoa com trabalho a fazer

Como funciona o KNN?

KNN é baseado na premissa de que pontos de dados espacialmente próximos uns dos outros em um conjunto de dados tendem a ter valores semelhantes ou pertencer a categorias semelhantes. KNN usa essa ideia simples, mas poderosa, para classificar um novo ponto de dados, encontrando um número predefinido (o hiperparâmetro k) de pontos de dados vizinhos dentro do conjunto de dados de treinamento rotulado. Este valor, k, é um dos hiperparâmetros KNN, que são variáveis ​​de configuração predefinidas que os profissionais de ML usam para controlar como o algoritmo aprende.

Em seguida, o algoritmo determina quais dos valores vizinhos estão mais próximos do novo ponto de dados e atribui a ele o mesmo rótulo ou categoria que seus vizinhos. O valor escolhido de k afeta o desempenho do modelo. Valores menores aumentam a sensibilidade ao ruído, enquanto valores maiores aumentam a robustez, mas podem fazer com que o KNN perca padrões locais.

A proximidade, ou distância, entre pontos de dados é calculada usando métricas originalmente desenvolvidas para medir a similaridade de pontos em um espaço matemático. As métricas comuns incluem distância euclidiana, distância de Manhattan e distância de Minkowski. O desempenho do KNN é afetado pela métrica escolhida, e diferentes métricas têm melhor desempenho com diferentes tipos e tamanhos de dados.

Por exemplo, o número de dimensões nos dados, que são atributos individuais que descrevem cada ponto de dados, pode afetar o desempenho da métrica. Independentemente da métrica de distância escolhida, o objetivo é categorizar ou prever um novo ponto de dados com base na distância de outros pontos de dados.

  • A distância euclidianaé a distância ao longo de uma linha reta entre dois pontos no espaço e é a métrica mais comumente usada. É melhor usado para dados com um número menor de dimensões e sem valores discrepantes significativos.
  • A distância de Manhattané a soma das diferenças absolutas entre as coordenadas dos pontos de dados que estão sendo medidos. Essa métrica é útil quando os dados são altamente dimensionais ou quando os pontos de dados formam uma estrutura semelhante a uma grade.
  • A distância de Minkowskié uma métrica ajustável que pode atuar como a distância euclidiana ou de Manhattan, dependendo do valor de um parâmetro ajustável. O ajuste deste parâmetro controla como a distância é calculada, o que é útil para adaptar o KNN a diferentes tipos de dados.

Outras métricas menos comuns incluem as distâncias de Chebyshev, Hamming e Mahalanobis. Essas métricas são mais especializadas e adequadas para distribuições e tipos de dados específicos. Por exemplo, a distância de Mahalanobis mede a distância de um ponto a uma distribuição de pontos, levando em consideração as relações entre as variáveis. Como tal, a distância de Mahalanobis é adequada para trabalhar com dados onde os recursos usam escalas diferentes.

KNN é frequentemente chamado de algoritmo de aprendizagem “preguiçoso” porque não precisa de treinamento, ao contrário de muitos outros algoritmos. Em vez disso, o KNN armazena dados e os utiliza para tomar decisões somente quando novos pontos de dados precisam de regressão ou classificação. No entanto, isso significa que as previsões geralmente apresentam altos requisitos computacionais, uma vez que todo o conjunto de dados é avaliado para cada previsão. ∫

Diferença entre k-vizinhos mais próximos e outros algoritmos

KNN faz parte de uma família maior de técnicas de ML supervisionadas voltadas para classificação e regressão, que inclui árvores de decisão/florestas aleatórias, regressão logística e máquinas de vetores de suporte (SVMs). Porém, KNN difere dessas técnicas devido à sua simplicidade e abordagem direta no tratamento de dados, entre outros fatores.

Árvores de decisão e florestas aleatórias

Assim como o KNN, árvores de decisão e florestas aleatórias são usadas para classificação e regressão. No entanto, estes algoritmos utilizam regras explícitas aprendidas a partir dos dados durante o treino, ao contrário da abordagem baseada na distância do KNN. Árvores de decisão e florestas aleatórias tendem a ter velocidades de previsão mais rápidas porque possuem regras pré-treinadas. Isso significa que eles são mais adequados que o KNN para tarefas de previsão em tempo real e para lidar com grandes conjuntos de dados.

Regressão logística

A regressão logística assume que os dados são distribuídos linearmente e os classifica usando uma linha reta ou hiperplano (um limite que separa pontos de dados em espaços de dimensões superiores) para separar os dados em categorias. KNN, por outro lado, não assume uma distribuição de dados específica. Como tal, o KNN pode adaptar-se mais facilmente a dados complexos ou não lineares, enquanto a regressão logística é melhor utilizada com dados lineares.

Máquinas de vetores de suporte

Em vez de observar as distâncias entre pontos como KNN, as máquinas de vetores de suporte (SVM) concentram-se na criação de uma linha divisória clara entre grupos de pontos de dados, muitas vezes com o objetivo de tornar a distância entre eles o mais ampla possível. O SVM é excelente para lidar com conjuntos de dados complexos com muitos recursos ou quando é necessária uma separação clara entre grupos de pontos de dados. Em comparação, o KNN é mais simples de usar e entender, mas não funciona tão bem em grandes conjuntos de dados.

Como o KNN é usado no aprendizado de máquina?

Muitos algoritmos de ML podem lidar com apenas um tipo de tarefa. KNN se destaca por sua capacidade de lidar não com um, mas com dois casos de uso comuns: classificação e regressão.

Classificação

KNN classifica os pontos de dados usando uma métrica de distância para determinar os k vizinhos mais próximos e atribuindo um rótulo ao novo ponto de dados com base nos rótulos dos vizinhos. Os casos de uso comuns de classificação KNN incluem classificação de spam de e-mail, agrupamento de clientes em categorias com base no histórico de compras e reconhecimento de números manuscritos.

Regressão

KNN realiza regressão estimando o valor de um ponto de dados com base na média (ou média ponderada) de seus k vizinhos mais próximos. Por exemplo, a KNN pode prever preços de casas com base em propriedades semelhantes na vizinhança, preços de ações com base em dados históricos de ações semelhantes ou temperatura com base em dados meteorológicos históricos em locais semelhantes.

Aplicações do algoritmo KNN em ML

Devido à sua relativa simplicidade e capacidade de realizar classificação e regressão, o KNN possui uma ampla gama de aplicações. Isso inclui reconhecimento de imagens, sistemas de recomendação e classificação de texto.

Reconhecimento de imagem

O reconhecimento de imagens é uma das aplicações mais comuns do KNN devido às suas capacidades de classificação. KNN realiza o reconhecimento de imagem comparando características da imagem desconhecida, como cores e formas, com características de um conjunto de dados de imagem rotulado. Isso torna o KNN útil em áreas como visão computacional.

Sistemas de recomendação

A KNN pode recomendar produtos ou conteúdo aos usuários comparando seus dados de preferência com os dados de usuários semelhantes. Por exemplo, se um usuário ouviu várias músicas clássicas de jazz, o KNN pode encontrar usuários com preferências semelhantes e recomendar músicas que esses usuários gostaram. Dessa forma, a KNN pode ajudar a personalizar a experiência do usuário, recomendando produtos ou conteúdos com base em dados semelhantes.

Classificação de texto

A classificação de texto busca classificar o texto não categorizado com base em sua semelhança com o texto pré-categorizado. A capacidade do KNN de avaliar a proximidade dos padrões de palavras o torna uma ferramenta eficaz para este caso de uso. A classificação de texto é particularmente útil para tarefas como análise de sentimento, onde os textos são classificados como positivos, negativos ou neutros, ou para determinar a categoria de um artigo de notícias.

Vantagens do algoritmo KNN em ML

KNN tem vários benefícios notáveis, incluindo simplicidade, versatilidade e falta de fase de treinamento.

Simplicidade

Comparado a muitos outros algoritmos de ML, o KNN é fácil de entender e usar. A lógica por trás do KNN é intuitiva – ele classifica ou prevê (regressão) novos pontos de dados com base nos valores de pontos de dados próximos – tornando-o uma escolha popular para profissionais de ML, especialmente iniciantes. Além disso, além de escolher um valor para k, é necessário um ajuste mínimo de hiperparâmetros para usar KNN.

Versatilidade

O KNN pode ser usado tanto para tarefas de classificação quanto de regressão, o que significa que pode ser aplicado a uma ampla gama de problemas e tipos de dados, desde o reconhecimento de imagens até a previsão de valores numéricos. Ao contrário dos algoritmos especializados limitados a um tipo de tarefa, o KNN pode ser aplicado a qualquer conjunto de dados rotulado adequadamente estruturado.

Fase de treinamento explícita

Muitos modelos de ML requerem uma fase de treinamento que consome muito tempo e recursos antes de se tornarem úteis. O KNN, por outro lado, simplesmente armazena os dados de treinamento e os utiliza diretamente no momento da previsão. Como tal, o KNN pode ser atualizado com novos dados, que ficam imediatamente disponíveis para uso na previsão. Isto torna o KNN particularmente atraente para pequenos conjuntos de dados.

Desvantagens do algoritmo KNN em ML

Apesar de seus pontos fortes, a KNN também apresenta vários desafios. Isso inclui altos custos computacionais e de memória, sensibilidade a ruídos e recursos irrelevantes e a “maldição da dimensionalidade”.

Custo computacional de previsão

Como o KNN calcula a distância entre um novo ponto de dados e cada ponto de dados em seu conjunto de dados de treinamento geral sempre que faz uma previsão, o custo computacional da previsão aumenta rapidamente à medida que o conjunto de dados cresce. Isso pode resultar em previsões lentas quando o conjunto de dados é grande ou o KNN é executado em hardware insuficiente.

Maldição da dimensionalidade

KNN sofre com a chamada “maldição da dimensionalidade”, que limita sua capacidade de lidar com dados de alta dimensão. À medida que o número de características num conjunto de dados aumenta, a maioria dos pontos de dados tornam-se esparsos e quase equidistantes uns dos outros. Como tal, as métricas de distância tornam-se menos úteis, o que torna difícil para o KNN encontrar vizinhos em conjuntos de dados de alta dimensão que estejam realmente próximos.

Intenso de memória

Um recurso exclusivo do KNN é que ele armazena todo o conjunto de dados de treinamento na memória para uso no momento da previsão. Ao lidar com memória limitada ou grandes conjuntos de dados, isso pode ser problemático e impraticável. Outros algoritmos de ML evitam esse desafio condensando e destilando dados de treinamento em recursos aprendidos por meio de treinamento de modelo e otimização de parâmetros. O KNN, por outro lado, deve reter todos os pontos de dados, o que significa que a memória cresce linearmente com o tamanho do conjunto de dados de treinamento.

Sensibilidade ao ruído e recursos irrelevantes

O poder do KNN reside no seu cálculo de distância simples e intuitivo. No entanto, isso também significa que recursos ou ruídos sem importância podem causar cálculos de distância enganosos, afetando negativamente a precisão da previsão. Como tal, técnicas de seleção de recursos ou redução de dimensionalidade, como análise de componentes principais (PCA), são frequentemente usadas com KNN para garantir que os recursos importantes tenham maior influência na previsão.