Glossário

K-Nearest Neighbors (KNN)

Explora o KNN, um algoritmo de aprendizagem automática versátil para classificação, regressão, reconhecimento de imagens e muito mais. Aprende como faz previsões utilizando a proximidade de dados.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

O K-Nearest Neighbors (KNN) é um algoritmo de aprendizagem automática simples, mas poderoso, utilizado para tarefas de classificação e regressão. A sua função principal é prever a classe ou o valor de um ponto de dados com base nos "k" pontos de dados mais próximos no espaço de caraterísticas. O KNN é conhecido pela sua simplicidade e eficácia no tratamento de problemas de classificação, particularmente com conjuntos de dados em que o limite de decisão não é linear.

Como funciona o K-Nearest Neighbors

O KNN funciona armazenando todos os pontos de dados disponíveis e, quando é necessária uma previsão, identifica os "k" vizinhos mais próximos do ponto de consulta. O algoritmo determina então a classe mais comum (para classificação) ou o valor médio (para regressão) entre esses vizinhos como previsão.

  • Métrica de distância: A escolha da métrica de distância é crucial no KNN. As métricas comuns incluem as distâncias Euclidiana, de Manhattan e de Minkowski. Esta métrica determina como é medida a "proximidade" dos pontos de dados.

  • Seleção de 'k': A seleção do valor adequado de 'k' é fundamental para o desempenho do modelo. Um valor pequeno de 'k' torna o modelo mais sensível ao ruído, ao passo que um valor grande de 'k' pode simplificar demasiado a fronteira de decisão, potencialmente deixando escapar padrões subtis.

  • Complexidade computacional: O KNN requer o cálculo de distâncias entre o ponto de consulta e todos os outros pontos no conjunto de dados, tornando-o computacionalmente intensivo à medida que o tamanho do conjunto de dados aumenta. Esta caraterística pode tornar o KNN difícil de utilizar com grandes conjuntos de dados sem otimização.

Aplicações do KNN

  1. Reconhecimento de imagens: O KNN pode categorizar imagens com base nos valores de intensidade dos pixels. Na visão computacional, é utilizado para detetar padrões em conjuntos de dados de imagens, comparando novas imagens com imagens previamente categorizadas.

  2. Sistemas de recomendação: Aproveitando os dados de interação entre o utilizador e o item, o KNN identifica utilizadores ou itens semelhantes para fornecer recomendações. Esta técnica é normalmente utilizada em plataformas de comércio eletrónico para sugerir produtos com base no comportamento e nas preferências históricas de um utilizador.

  3. Diagnóstico de cuidados de saúde: O KNN ajuda a prever as condições do paciente, comparando os dados do novo paciente com os dados existentes dos registos históricos do paciente, ajudando no diagnóstico e no planeamento do tratamento.

Exemplos do mundo real

  • Deteção de fraudes: As instituições financeiras utilizam o KNN para detetar transacções fraudulentas, identificando padrões típicos de fraude com base no histórico de transacções anteriores.

  • Previsão de preços de acções: Em finanças, o KNN é aplicado para prever os preços das acções, analisando as tendências passadas e identificando padrões históricos semelhantes para prever movimentos futuros.

Vantagens e desvantagens

  • Prós:

    • Implementação simples sem necessidade de uma fase de treino do modelo.
    • Não é necessário afinar os parâmetros do modelo, para além de decidir 'k' e a métrica da distância.
    • Tem um bom desempenho com conjuntos de dados mais pequenos e problemas de classificação multi-classe.
  • Contras:

    • Custo computacional elevado durante a fase de previsão.
    • É sensível a caraterísticas irrelevantes ou redundantes, uma vez que todas as caraterísticas contribuem igualmente.
    • Degradação rápida do desempenho com o aumento da dimensionalidade, conhecida como a "maldição da dimensionalidade".

Conceitos relacionados e alternativas

  • Agrupamento K-Means: Enquanto o KNN é utilizado para classificação, o K-Means Clustering é um algoritmo de aprendizagem não supervisionado que agrupa os dados em clusters com base na semelhança de caraterísticas.

  • Máquina de vetor de suporte (SVM): Ao contrário do KNN, o SVM é um modelo de aprendizagem supervisionado que encontra o hiperplano no espaço de caraterísticas que melhor separa as diferentes classes. Sabe mais sobre as Máquinas de Vectores de Suporte.

  • Árvores de decisão: Estes modelos criam um gráfico de decisões em forma de árvore para ajudar na classificação. Saiba mais sobre as árvores de decisão.

Para aplicações práticas e implementação, explora as capacidades do Ultralytics HUB, uma plataforma que permite o treino e a implementação fáceis de modelos de aprendizagem automática como o KNN e outros. Visita o Ultralytics HUB para tirar partido de soluções sem código para os teus projectos de IA.

Para compreender como o KNN se enquadra em tarefas de aprendizagem automática mais amplas, explora a Aprendizagem Supervisionada e outros conceitos de aprendizagem automática relacionados.

Lê tudo