Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

K-Nearest Neighbors (KNN)

Descubra cómo K-Nearest Neighbors (KNN) simplifica el aprendizaje automático con su enfoque intuitivo y no paramétrico para tareas de clasificación y regresión.

K-Nearest Neighbors (KNN) es un algoritmo de aprendizaje no paramétrico, algoritmo de aprendizaje supervisado tareas de clasificación y regresión. A menudo se denomina método de aprendizaje basado en instancias, KNN no genera una función discriminatoria a partir de los datos de entrenamiento. los datos de entrenamiento durante la fase de entrenamiento. En su lugar En su lugar, memoriza todo el conjunto de datos y realiza cálculos sólo cuando realiza predicciones sobre nuevos casos. Este enfoque supone que los puntos de datos similares están muy próximos en el espacio de características, lo que permite al algoritmo classify nuevas entradas basándose en la clase mayoritaria o en el valor medio de sus vecinos más cercanos.

Funcionamiento de KNN

El mecanismo operativo de K-Nearest Neighbors se basa en métricas de distancia para cuantificar la similitud entre puntos de datos. datos. La métrica más común es la distancia euclídea, aunque pueden utilizarse otras como la distancia distancia Manhattan o la distancia Minkowski. dependiendo del ámbito del problema. El proceso de predicción implica varios pasos distintos:

  1. Seleccionar K: El usuario define el número de vecinos, denominado "K". Se trata de un paso crucial en ajuste de hiperparámetros, ya que el valor de K influye directamente en el equilibrio del modelo. Un K pequeño puede a la sensibilidad al ruido, mientras que un K grande podría suavizar los límites distintivos.
  2. Cálculo de distancias: Cuando se introduce un nuevo punto de consulta, el algoritmo calcula la distancia entre este punto y cada ejemplo del conjunto de datos almacenado.
  3. Identificar vecinos: El algoritmo ordena las distancias y selecciona las K entradas superiores con los valores más bajos.
  4. Producción agregada:
    • Clasificación: El algoritmo asigna la etiqueta de clase que aparece con más frecuencia entre los K vecinos (votación por mayoría).
    • Regresión: La predicción se calcula como la media de los valores objetivo de los K vecinos.

La simplicidad de KNN lo convierte en una línea de base eficaz para muchos problemas de aprendizaje automático. A continuación se muestra un utilizando la popular biblioteca Scikit-learn para para demostrar un flujo de trabajo de clasificación 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])

Aplicaciones en el mundo real

A pesar de su simplicidad, K-Nearest Neighbors se emplea en varios dominios sofisticados en los que la interpretabilidad y el razonamiento basado en instancias son valiosos. y el razonamiento basado en instancias.

  • Motores de recomendación: KNN facilita filtrado colaborativo en los sistemas de recomendación. Las plataformas de streaming lo utilizan para sugerir contenidos encontrando usuarios con historiales de visionado similares (vecinos) y recomendando recomendándoles lo que les gusta. Este método es eficaz para personalizar la experiencia del usuario.
  • Diagnóstico médico: En análisis de imágenes médicas, KNN puede diagnóstico de enfermedades comparando las métricas del paciente o las características de la imagen con una base de datos de casos históricos. En ejemplo, puede ayudar a classify tumores de cáncer de mama como malignos o benignos basándose en la similitud de las características celulares con casos confirmados.
  • Detección de anomalías: Las instituciones financieras utilizan KNN para detección de anomalías para identificar fraudes. Mediante analizando patrones de transacciones, el sistema puede señalar actividades que se desvían significativamente del comportamiento estándar de un usuario, es decir, puntos que se alejan de sus "vecinos más cercanos". de un usuario, es decir, puntos que se alejan de sus "vecinos más cercanos".

Distinción entre KNN y algoritmos afines

Comprender las diferencias entre KNN y otros algoritmos es vital para seleccionar la herramienta adecuada para un proyecto de visión por ordenador o de análisis de datos. un proyecto de visión por ordenador o de análisis de datos.

  • Agrupación de K-Means: Es fácil confundir KNN con K-Means Clustering debido a la similitud de sus nombres. Sin embargo, K-Means es una técnica de aprendizaje sin supervisión que agrupa datos no etiquetados en clusters, mientras que KNN es una técnica supervisada que requiere datos etiquetados para la predicción.
  • Máquina de vectores soporte (SVM): Aunque ambas se utilizan para la clasificación, una máquina de vectores de soporte (SVM) se centra en encontrar un límite de decisión global (hiperplano) que maximice el margen entre clases. KNN, por el contrario, toma decisiones basadas en la densidad de datos locales sin construir un modelo global. Más información sobre estas diferencias en Documentación de SVM.
  • Árboles de decisión: A Árbol de decisión clasifica los datos aprendiendo reglas explícitas jerárquicas explícitas que dividen el espacio de características. KNN se basa exclusivamente en métricas de distancia en el espacio de características, lo que lo hace más flexible a límites de decisión irregulares, pero más pesado computacionalmente durante la inferencia. en el espacio de características, lo que lo hace más flexible a los límites de decisión irregulares, pero computacionalmente más pesado durante la inferencia.

Aunque KNN es potente para conjuntos de datos pequeños, se enfrenta a problemas de escalabilidad con datos de gran tamaño debido al coste computacional de calcular calcular distancias para cada consulta. Para obtener un alto rendimiento de alto rendimiento y en tiempo real detección de objetos, las arquitecturas modernas como YOLO11 por su velocidad y precisión velocidad y precisión superiores.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora