Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

K-Nearest Neighbors (KNN)

Descubra como o K-Nearest Neighbors (KNN) simplifica o machine learning com 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 supervisionado não paramétrico e supervisionado, amplamente utilizado para tarefas de para tarefas de classificação e regressão. Muitas vezes referido como frequentemente designado por "aprendiz preguiçoso" ou método de aprendizagem baseado em instâncias, o KNN não gera uma função discriminativa a partir dos dos dados de treino durante uma fase de treino. Em vez disso, Em vez disso, memoriza todo o conjunto de dados e efectua cálculos apenas quando faz previsões sobre novas instâncias. Esta abordagem Esta abordagem pressupõe que pontos de dados semelhantes estão muito próximos no espaço de caraterísticas, permitindo ao algoritmo classify novas entradas com base na classe maioritária ou no valor médio dos seus vizinhos mais próximos.

Como funciona o KNN

O mecanismo operacional do K-Nearest Neighbors baseia-se em métricas de distância para quantificar a semelhança entre pontos de dados. pontos de dados. A métrica mais comum é a distância euclidiana, embora outras como distância de Manhattan ou a distância de Minkowski podem ser utilizadas dependendo do domínio do problema. O processo de previsão envolve várias etapas distintas:

  1. Selecionar K: O utilizador define o número de vizinhos, designado por "K". Este é um passo crucial na afinação de hiperparâmetros, uma vez que o valor de K influencia diretamente o compromisso do modelo. Um K pequeno pode levar sensibilidade ao ruído, enquanto um K grande pode suavizar os limites distintos.
  2. Calcular distâncias: Quando é introduzido um novo ponto de consulta, o algoritmo calcula a distância entre este ponto e cada exemplo no conjunto de dados armazenado.
  3. Identificar os vizinhos: O algoritmo ordena as distâncias e seleciona as K entradas de topo com os valores mais pequenos.
  4. Produção agregada:
    • Classificação: O algoritmo atribui a etiqueta da classe que aparece mais frequentemente entre os K vizinhos (votação por maioria).
    • Regressão: A previsão é calculada como a média dos valores-alvo dos K vizinhos.

A simplicidade do KNN torna-o numa linha de base eficaz para muitos problemas de aprendizagem automática. Abaixo está um exemplo conciso exemplo conciso usando a popular biblioteca Scikit-learn para demonstrar um fluxo de trabalho de classificação básico.

import numpy as np
from sklearn.neighbors import KNeighborsClassifier

# distinct classes: 0 and 1
X_train = np.array([[1, 1], [1, 2], [2, 2], [5, 5], [5, 6], [6, 5]])
y_train = np.array([0, 0, 0, 1, 1, 1])

# Initialize KNN with 3 neighbors
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Predict class for a new point [4, 4]
prediction = knn.predict([[4, 4]])
print(f"Predicted Class: {prediction[0]}")
# Output: 1 (Closer to the cluster at [5,5])

Aplicações no Mundo Real

Apesar da sua simplicidade, o K-Nearest Neighbors é utilizado em vários domínios sofisticados em que a interpretabilidade e o e o raciocínio baseado em instâncias são valiosos.

  • Motores de recomendação: O KNN facilita a filtragem colaborativa em sistemas de recomendação. As plataformas de streaming de streaming utilizam-no para sugerir conteúdos, encontrando utilizadores com históricos de visualização semelhantes (vizinhos) e recomendando e recomendando itens que eles gostaram. Este método é eficaz para experiências de utilizador personalizadas.
  • Diagnóstico médico: Na análise de imagens médicas, o KNN pode ajudar no diagnóstico de doenças, comparando as métricas do paciente ou as caraterísticas da imagem com uma base de dados de casos históricos. Por exemplo, pode ajudar a classify tumores de cancro da mama como malignos ou benignos com base na semelhança das caraterísticas das células com casos confirmados.
  • Deteção de anomalias: As instituições financeiras utilizam o KNN para deteção de anomalias para identificar fraudes. Ao analisando padrões de transação, o sistema pode assinalar actividades que se desviam significativamente do comportamento padrão de um utilizador comportamento padrão de um utilizador - essencialmente pontos que estão distantes dos seus "vizinhos mais próximos".

Distinção entre o KNN e os algoritmos relacionados

Compreender as diferenças entre o KNN e outros algoritmos é vital para selecionar a ferramenta certa para um projeto de projeto de visão computacional ou de análise de dados.

  • Agrupamento K-Means: É fácil confundir KNN com K-Means Clustering devido aos nomes semelhantes. No entanto, o K-Means é uma técnica de aprendizagem não supervisionada que agrupa dados não rotulados em clusters, enquanto o KNN é uma técnica supervisionada que requer dados rotulados para previsão.
  • Máquina de vectores de suporte (SVM): Embora ambas sejam utilizadas para classificação, uma Máquina de Vectores de Suporte (SVM) centra-se em encontrar um limite de decisão global (hiperplano) que maximize a margem entre classes. O KNN, por outro lado, toma decisões com base na densidade de dados local sem construir um modelo global. Saiba mais sobre essas diferenças na Documentação sobre SVM.
  • Árvores de decisão: A Árvore de Decisão classifica dados através da aprendizagem de regras hierárquicas explícitas, regras hierárquicas explícitas que dividem o espaço de caraterísticas. O KNN baseia-se puramente em métricas de distância no espaço de caraterísticas, tornando-o mais flexível para limites de decisão irregulares, mas computacionalmente mais pesado durante a inferência.

Embora o KNN seja poderoso para conjuntos de dados mais pequenos, enfrenta desafios de escalabilidade com grandes volumes de dados devido ao custo computacional de calcular calcular as distâncias para cada consulta. Para um elevado desempenho, inferência em tempo real em tarefas como a deteção de objectos, as arquitecturas modernas de aprendizagem profunda como o YOLO11 são geralmente preferidas pela sua velocidade e precisão superiores.

Junte-se à comunidade Ultralytics

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

Junte-se agora