Glossário

K-Nearest Neighbors (KNN)

Descubra como o K-Nearest Neighbors (KNN) simplifica a aprendizagem automática com a sua abordagem intuitiva e não paramétrica para tarefas de classificação e regressão.

O K-Nearest Neighbors (KNN) é um algoritmo de aprendizagem supervisionada fundamental utilizado para tarefas de classificação e regressão. É considerado um algoritmo baseado em instâncias ou de "aprendizagem preguiçosa" porque não constrói um modelo durante a fase de dados de treino. Em vez disso, armazena todo o conjunto de dados e faz previsões encontrando as "K" instâncias mais semelhantes (vizinhos) nos dados armazenados. A ideia central é que existem pontos de dados semelhantes muito próximos. Para um ponto de dados novo e não classificado, o KNN identifica os seus vizinhos mais próximos e utiliza as suas etiquetas para determinar a sua própria classificação ou valor.

Como é que o KNN funciona?

O algoritmo KNN funciona com base num princípio simples de semelhança, normalmente medido por uma métrica de distância. A mais comum é a distância euclidiana, embora possam ser utilizadas outras métricas consoante o conjunto de dados.

O processo para fazer uma previsão é simples:

  1. Escolher o valor de K: O número de vizinhos (K) a considerar é um hiperparâmetro crítico. A escolha de K pode afetar significativamente o desempenho do modelo.
  2. Calcular distâncias: Para um novo ponto de dados, o algoritmo calcula a distância entre ele e todos os outros pontos no conjunto de dados de treino.
  3. Identificar os vizinhos: Identifica os K pontos de dados do conjunto de treino que estão mais próximos do novo ponto. Estes são os "vizinhos mais próximos".
  4. Fazer uma previsão:
    • Para tarefas de classificação, o algoritmo efectua uma votação por maioria. Ao novo ponto de dados é atribuída a classe mais comum entre os seus K vizinhos mais próximos. Por exemplo, se K=5 e três vizinhos forem da classe A e dois da classe B, o novo ponto é classificado como classe A.
    • Para tarefas de regressão, o algoritmo calcula a média dos valores dos seus K vizinhos mais próximos. Esta média torna-se o valor previsto para o novo ponto de dados.

Aplicações no mundo real

A simplicidade e a natureza intuitiva do KNN tornam-no útil em várias aplicações, especialmente como modelo de base.

  • Sistemas de recomendação: O KNN é uma escolha popular para a construção de motores de recomendação. Por exemplo, um serviço de streaming pode recomendar filmes a um utilizador identificando outros utilizadores (vizinhos) com históricos de visualização semelhantes. Os filmes apreciados por estes vizinhos, que o utilizador alvo ainda não viu, são então recomendados. Esta técnica é uma forma de filtragem colaborativa.
  • Serviços financeiros: No sector financeiro, o KNN pode ser utilizado para a pontuação de crédito. Ao comparar um novo candidato a um empréstimo com uma base de dados de candidatos anteriores com resultados de crédito conhecidos, o algoritmo pode prever se o novo candidato é suscetível de entrar em incumprimento. Os vizinhos são candidatos anteriores com perfis financeiros semelhantes (por exemplo, idade, rendimento, nível de endividamento), e o seu historial de incumprimento informa a previsão. Isto ajuda a automatizar as avaliações de risco iniciais.

KNN vs. Conceitos relacionados

É importante distinguir o KNN de outros algoritmos comuns de aprendizagem automática:

  • Agrupamento K-Means: Embora os nomes sejam semelhantes, as suas funções são muito diferentes. O K-Means é um algoritmo de aprendizagem não supervisionado utilizado para dividir os dados em K subgrupos distintos e não sobrepostos (clusters). O KNN, por outro lado, é um algoritmo supervisionado utilizado para a previsão com base em dados rotulados.
  • Máquina de vetor de suporte (SVM): O SVM é um algoritmo supervisionado que procura encontrar o melhor hiperplano possível que separa diferentes classes no espaço de caraterísticas. Enquanto o KNN toma decisões com base na semelhança entre vizinhos locais, o SVM procura encontrar um limite global ótimo, o que o torna fundamentalmente diferente na sua abordagem. Mais detalhes podem ser encontrados na página SVM do Scikit-learn.
  • Árvores de decisão: Uma árvore de decisão classifica os dados criando um modelo de decisões hierárquicas e baseadas em regras. Isso resulta em uma estrutura semelhante a uma árvore, enquanto o KNN se baseia na similaridade baseada em distância sem aprender regras explícitas. Para saber mais, consulte a documentação sobre Árvores de decisão do Scikit-learn.

Embora o KNN seja uma ferramenta valiosa para a compreensão dos conceitos fundamentais da aprendizagem automática e para utilização em conjuntos de dados mais pequenos e bem selecionados, pode ser computacionalmente intensivo para a inferência em tempo real com grandes volumes de dados. Para tarefas complexas de visão por computador, como a deteção de objectos em tempo real, são preferidos modelos mais avançados, como o Ultralytics YOLO, devido à sua velocidade e precisão superiores. Esses modelos podem ser facilmente treinados e implantados usando plataformas como o Ultralytics HUB.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Ligue-se, colabore e cresça com inovadores globais

Aderir agora
Ligação copiada para a área de transferência