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:
- 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.
- 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.
- 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".
- 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.