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 supervisado fundamental y no paramétrico que se utiliza tanto para tareas de clasificación como de regresión. A diferencia de las complejas redes neuronales que aprenden parámetros durante una fase de entrenamiento, KNN se caracteriza por ser un «aprendiz perezoso». No genera una función discriminativa a partir de los datos de entrenamiento de antemano; en su lugar, memoriza el conjunto de datos completo y realiza cálculos solo cuando se realiza una consulta. La intuición central detrás de KNN es la similitud: asume que los puntos de datos con características similares residen muy cerca unos de otros dentro del espacio de características.

Cómo funciona el algoritmo

El mecanismo de K vecinos más cercanos se basa en gran medida en el cálculo de la distancia entre puntos de datos para determinar la similitud. Cuando se introduce una nueva entrada, el algoritmo identifica el número «K» de muestras de entrenamiento que están más cerca de la nueva entrada.

  1. Cálculo de la distancia: El algoritmo calcula la distancia entre el punto de consulta y cada punto del conjunto de datos. Las métricas comunes incluyen la distancia euclidiana para variables continuas y la distancia de Manhattan (geometría de taxi) para rutas en forma de cuadrícula .
  2. Selección de vecinos: Ordena estas distancias y selecciona las 'K' entradas superiores con los valores más pequeños .
  3. Agregación de predicciones:
    • Clasificación: El algoritmo emplea un esquema de votación por mayoría. La etiqueta de clase que aparece con mayor frecuencia entre los K vecinos se asigna al punto de consulta. Esto es fundamental en tareas como la clasificación básica de imágenes.
    • Regresión: La predicción se obtiene calculando la media (promedio) de los valores objetivo de los K vecinos.

Seleccionar el valor óptimo para «K» es un paso crítico en el ajuste de hiperparámetros. Un valor K bajo (por ejemplo, K=1) hace que el modelo sea sensible al ruido y a los valores atípicos, lo que puede provocar un sobreajuste. Por el contrario, un valor K alto suaviza los límites de decisión, pero puede pasar por alto patrones locales, lo que da lugar a un subajuste.

Aplicaciones en el mundo real

A pesar de su simplicidad, K-Nearest Neighbors es lo suficientemente robusto para diversas aplicaciones prácticas, especialmente cuando se requiere interpretabilidad.

  • Motores de recomendación: KNN es un componente básico para el filtrado colaborativo en los modernos sistemas de recomendación. Al identificar a usuarios con historiales de visualización o compra similares (vecinos), las plataformas de streaming pueden sugerir contenidos que es probable que le gusten a un usuario basándose en lo que les ha gustado a sus «vecinos».
  • Detección de anomalías: Las instituciones financieras utilizan KNN para la detección de anomalías con el fin de prevenir el fraude con tarjetas de crédito. Las transacciones se trazan en un espacio de características; una nueva transacción que se aleja del grupo de comportamientos «normales» de un usuario se marca como sospechosa.
  • Diagnóstico médico: En el campo del análisis de imágenes médicas, KNN puede classify los casos de pacientes comparando sus métricas de salud o características extraídas con una base de datos de registros históricos, ayudando en el diagnóstico de afecciones basadas en la similitud de los síntomas.

Limitaciones técnicas y consideraciones

Aunque es intuitivo, KNN se enfrenta a retos con grandes conjuntos de datos y datos de alta dimensión. Dado que almacena todos los datos de entrenamiento , el uso de memoria puede ser significativo. Además, el coste computacional de calcular distancias para cada consulta afecta a la latencia de la inferencia. En espacios de alta dimensión , los puntos de datos se vuelven dispersos, un fenómeno conocido como la maldición de la dimensionalidad, que puede degradar la eficacia de las métricas de distancia.

Para mitigar esto, los profesionales suelen realizar una reducción de la dimensionalidad o utilizar técnicas de extracción de características, como la extracción de incrustaciones utilizando un modelo YOLO26, antes de aplicar KNN.

Distinguir KNN de K-Means

Es habitual confundir K-Nearest Neighbors con K-Means Clustering debido a la similitud en la nomenclatura . Sin embargo, tienen fines fundamentalmente diferentes:

  • KNN es un algoritmo supervisado que requiere entradas etiquetadas para predecir una clase o valor.
  • K-Means es un algoritmo de aprendizaje no supervisado que se utiliza para agrupar datos sin etiquetar en grupos basados en estructuras inherentes.

Ejemplo de aplicación

El siguiente ejemplo muestra un flujo de trabajo de clasificación simple utilizando la popular biblioteca Scikit-learn. Esto ilustra cómo el algoritmo ajusta los datos y predice una clase basándose en la proximidad de los vecinos.

import numpy as np
from sklearn.neighbors import KNeighborsClassifier

# Sample training data (Features: [Height, Weight], Labels: 0=Type A, 1=Type B)
X_train = np.array([[150, 45], [155, 48], [170, 70], [175, 75]])
y_train = np.array([0, 0, 1, 1])

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

# Predict class for a new point [160, 55]
# The model calculates distances and votes based on the 3 nearest points
prediction = knn.predict([[160, 55]])
print(f"Predicted Class: {prediction[0]}")

Para aplicaciones avanzadas que implican datos visuales, los enfoques modernos suelen combinar la lógica de KNN con el aprendizaje profundo. Por ejemplo, las bases de datos de búsqueda vectorial utilizan algoritmos de vecino más cercano aproximado (ANN) para encontrar rápidamente imágenes similares o incrustaciones de texto generadas por modelos de alto rendimiento como YOLO11 o YOLO26.

Únase a la comunidad Ultralytics

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

Únete ahora