Glosario

Vecinos más próximos K (KNN)

Descubre 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.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

K-Nearest Neighbors (KNN) es un algoritmo de aprendizaje automático sencillo pero potente que se utiliza tanto para tareas de clasificación como de regresión. Se considera un algoritmo de aprendizaje no paramétrico y perezoso, lo que significa que no hace grandes suposiciones sobre la distribución de datos subyacente y aplaza el cálculo hasta el momento de la predicción. KNN es especialmente intuitivo y fácil de implementar, lo que lo convierte en una valiosa herramienta para comprender los conceptos básicos del aprendizaje automático.

Cómo funciona KNN

En esencia, el algoritmo K-Nearest Neighbors funciona según el principio de similitud. Cuando se le presenta un nuevo punto de datos sin clasificar, KNN identifica a sus "K" vecinos más próximos del conjunto de datos de entrenamiento. El valor de "K" es una constante definida por el usuario, y determina cuántos vecinos influyen en la clasificación. El proceso se desarrolla como sigue:

  1. Cálculo de la distancia: KNN calcula la distancia entre el nuevo punto de datos y cualquier otro punto del conjunto de datos de entrenamiento. Las métricas de distancia habituales son la distancia euclidiana, la distancia de Manhattan y la distancia de Minkowski.
  2. Selección de vecinos: Selecciona los "K" puntos de datos del conjunto de entrenamiento más cercanos al nuevo punto de datos, basándose en la distancia calculada en el paso anterior. Estos "K" puntos son los "vecinos más próximos".
  3. Clasificación o Regresión:
    • Clasificación: Para las tareas de clasificación, KNN asigna el nuevo punto de datos a la clase más frecuente entre sus "K" vecinos más próximos. Se trata esencialmente de una votación mayoritaria entre los vecinos.
    • Regresión: En las tareas de regresión, KNN predice el valor del nuevo punto de datos calculando la media (o mediana) de los valores de sus "K" vecinos más próximos.

Aplicaciones de KNN

La versatilidad de KNN hace que sea aplicable en diversos ámbitos. He aquí un par de ejemplos del mundo real:

  • Sistemas de recomendación: En plataformas como Netflix o Amazon, KNN puede utilizarse para crear sistemas de recomendación de filtrado colaborativo. Por ejemplo, si quieres que te recomienden películas, KNN puede encontrar usuarios que sean "vecinos más cercanos" a ti, basándose en historiales de visionado similares, y luego recomendarte películas que hayan disfrutado esos vecinos. Esto aprovecha la idea de que los usuarios con preferencias similares en el pasado probablemente tendrán preferencias similares en el futuro. Más información sobre los sistemas de recomendación y otras aplicaciones de la IA en el análisis de datos.
  • Diagnóstico médico: KNN puede ayudar en el análisis de imágenes médicas para diagnosticar enfermedades. Analizando los datos de los pacientes (síntomas, resultados de pruebas, etc.), KNN puede encontrar "K" pacientes similares en una base de datos y, basándose en sus diagnósticos, predecir el diagnóstico para un nuevo paciente. Por ejemplo, en la detección del cáncer, pueden utilizarse características extraídas de imágenes médicas, y el KNN puede clasificar nuevas imágenes basándose en la similitud con casos benignos o malignos conocidos.

Ventajas y desventajas de KNN

Como todos los algoritmos, el KNN tiene sus puntos fuertes y débiles:

Ventajas:

  • Simplicidad: KNN es fácil de entender y aplicar.
  • Versatilidad: Puede utilizarse tanto para la clasificación como para la regresión.
  • No paramétrico: No hace suposiciones sobre la distribución de los datos, lo que puede ser beneficioso en muchos escenarios del mundo real.
  • Sin fase de entrenamiento: Como KNN es un aprendiz perezoso, no hay fase de entrenamiento explícito, lo que hace que se adapte rápidamente a los nuevos datos.

Desventajas:

  • Costoso desde el punto de vista informático: En el momento de la predicción, KNN necesita calcular las distancias a todos los puntos de datos de entrenamiento, lo que puede ser lento para conjuntos de datos grandes.
  • Sensible a las características irrelevantes: KNN funciona mal si hay características irrelevantes, ya que pueden sesgar los cálculos de distancia. Pueden ser necesarias técnicas de selección de características o de reducción de la dimensionalidad.
  • Valor óptimo de "K": Elegir el valor adecuado de "K" es crucial y a menudo requiere experimentación. Una "K" demasiado pequeña puede provocar sensibilidad al ruido, mientras que una "K" demasiado grande puede desdibujar los límites de las clases. Técnicas como el ajuste de hiperparámetros pueden ayudar a encontrar el valor "K" óptimo.
  • Datos desequilibrados: KNN puede estar sesgado hacia la clase mayoritaria en conjuntos de datos desequilibrados, porque las muestras de la clase mayoritaria dominarán el vecindario.

Conceptos relacionados

Comprender el KNN en relación con otros conceptos de aprendizaje automático ayuda a apreciar su nicho y cuándo es más apropiado utilizarlo:

  • Comparación con otros algoritmos de clasificación: A diferencia de la regresión logística o las máquinas de vectores de soporte, que son paramétricas y aprenden un límite de decisión, KNN no es paramétrico y se basa en instancias. Por ejemplo, mientras que la regresión logística modela la probabilidad de pertenencia a una clase, KNN utiliza directamente los propios puntos de datos para la clasificación.
  • Relación con los algoritmos de agrupación: Aunque KNN es un algoritmo de aprendizaje supervisado, comparte el concepto de similitud basada en la distancia con algoritmos de aprendizaje no supervisado como la agrupación K-Means. Sin embargo, K-means se utiliza para agrupar datos no etiquetados en clusters, mientras que KNN se utiliza para clasificar o predecir valores para puntos de datos nuevos, etiquetados o no, basándose en datos de entrenamiento etiquetados.

En resumen, K-Nearest Neighbors es un algoritmo fundacional en el aprendizaje automático, valorado por su sencillez y eficacia en diversas aplicaciones, especialmente cuando el conjunto de datos es de tamaño moderado y los patrones de datos son discernibles por proximidad. Para conjuntos de datos más complejos o aplicaciones en tiempo real que requieran una inferencia más rápida, pueden preferirse modelos más sofisticados como Ultralytics YOLO para la detección de objetos.

Leer todo