K-Vecinos más cercanos (KNN): qué es y cómo se utiliza en el aprendizaje automático

Publicado: 2024-12-18

K-vecinos más cercanos (KNN) es una técnica fundamental en el aprendizaje automático (ML). Esta guía le ayudará a comprender KNN, cómo funciona y sus aplicaciones, beneficios y desafíos.

Tabla de contenido

¿Cuál es el algoritmo de k vecinos más cercanos?

¿Cómo funciona KNN?

Diferencia entre k vecinos más cercanos y otros algoritmos

¿Cómo se utiliza KNN en el aprendizaje automático?

Aplicaciones de la KNN

Ventajas de KNN

Desventajas del KNN

¿Cuál es el algoritmo de k vecinos más cercanos?

El algoritmo k-vecinos más cercanos (KNN) es una técnica de aprendizaje supervisado que se utiliza tanto para clasificación como para regresión. KNN determina la etiqueta (clasificación) o el valor predicho (regresión) de un punto de datos determinado mediante la evaluación de puntos de datos cercanos en el conjunto de datos.

Trabaja de forma más inteligente con Grammarly
El compañero de redacción de IA para cualquiera que tenga trabajo que hacer

¿Cómo funciona KNN?

KNN se basa en la premisa de que los puntos de datos que están espacialmente cerca entre sí en un conjunto de datos tienden a tener valores similares o pertenecen a categorías similares. KNN utiliza esta idea simple pero poderosa para clasificar un nuevo punto de datos al encontrar un número preestablecido (el hiperparámetro k) de puntos de datos vecinos dentro del conjunto de datos de entrenamiento etiquetado. Este valor, k, es uno de los hiperparámetros KNN, que son variables de configuración preestablecidas que los profesionales de ML utilizan para controlar cómo aprende el algoritmo.

Luego, el algoritmo determina cuál de los valores vecinos está más cerca del nuevo punto de datos y le asigna la misma etiqueta o categoría que sus vecinos. El valor elegido de k afecta el rendimiento del modelo. Los valores más pequeños aumentan la sensibilidad al ruido, mientras que los valores más grandes aumentan la robustez, pero pueden hacer que el KNN pase por alto los patrones locales.

La cercanía o distancia entre puntos de datos se calcula utilizando métricas desarrolladas originalmente para medir la similitud de puntos en un espacio matemático. Las métricas comunes incluyen la distancia euclidiana, la distancia de Manhattan y la distancia de Minkowski. El rendimiento de KNN se ve afectado por la métrica elegida y diferentes métricas funcionan mejor con diferentes tipos y tamaños de datos.

Por ejemplo, la cantidad de dimensiones de los datos, que son atributos individuales que describen cada punto de datos, puede afectar el rendimiento de las métricas. Independientemente de la métrica de distancia elegida, el objetivo es categorizar o predecir un nuevo punto de datos en función de su distancia a otros puntos de datos.

  • La distancia euclidianaes la distancia a lo largo de una línea recta entre dos puntos en el espacio y es la métrica más utilizada. Se utiliza mejor para datos con un menor número de dimensiones y sin valores atípicos significativos.
  • La distancia de Manhattanes la suma de las diferencias absolutas entre las coordenadas de los puntos de datos que se miden. Esta métrica es útil cuando los datos son de alta dimensión o cuando los puntos de datos forman una estructura similar a una cuadrícula.
  • La distancia de Minkowskies una métrica ajustable que puede actuar como la distancia euclidiana o de Manhattan dependiendo del valor de un parámetro ajustable. Ajustar este parámetro controla cómo se calcula la distancia, lo cual es útil para adaptar KNN a diferentes tipos de datos.

Otras métricas menos comunes incluyen las distancias de Chebyshev, Hamming y Mahalanobis. Estas métricas son más especializadas y adecuadas para distribuciones y tipos de datos particulares. Por ejemplo, la distancia de Mahalanobis mide la distancia de un punto a una distribución de puntos, teniendo en cuenta las relaciones entre variables. Como tal, la distancia de Mahalanobis es muy adecuada para trabajar con datos donde las características utilizan diferentes escalas.

KNN a menudo se denomina algoritmo de aprendizaje "perezoso" porque no necesita entrenamiento, a diferencia de muchos otros algoritmos. En cambio, KNN almacena datos y los utiliza para tomar decisiones sólo cuando nuevos puntos de datos necesitan regresión o clasificación. Sin embargo, esto significa que las predicciones a menudo tienen altos requisitos computacionales ya que se evalúa todo el conjunto de datos para cada predicción. ∫

Diferencia entre k vecinos más cercanos y otros algoritmos

KNN es parte de una familia más amplia de técnicas de ML supervisadas orientadas a la clasificación y la regresión, que incluye árboles de decisión/bosques aleatorios, regresión logística y máquinas de vectores de soporte (SVM). Sin embargo, KNN se diferencia de estas técnicas por su simplicidad y enfoque directo en el manejo de datos, entre otros factores.

Árboles de decisión y bosques aleatorios.

Al igual que KNN, los árboles de decisión y los bosques aleatorios se utilizan para clasificación y regresión. Sin embargo, estos algoritmos utilizan reglas explícitas aprendidas de los datos durante el entrenamiento, a diferencia del enfoque basado en distancia de KNN. Los árboles de decisión y los bosques aleatorios tienden a tener velocidades de predicción más rápidas porque tienen reglas previamente entrenadas. Esto significa que son más adecuados que KNN para tareas de predicción en tiempo real y para el manejo de grandes conjuntos de datos.

Regresión logística

La regresión logística supone que los datos están distribuidos linealmente y los clasifica utilizando una línea recta o hiperplano (un límite que separa los puntos de datos en espacios de dimensiones superiores) para separar los datos en categorías. KNN, por otro lado, no asume una distribución de datos particular. Como tal, KNN puede adaptarse más fácilmente a datos complejos o no lineales, mientras que la regresión logística se utiliza mejor con datos lineales.

Máquinas de vectores de soporte

En lugar de observar distancias entre puntos como KNN, las máquinas de vectores de soporte (SVM) se centran en crear una línea divisoria clara entre grupos de puntos de datos, a menudo con el objetivo de hacer que la brecha entre ellos sea lo más amplia posible. SVM es excelente para manejar conjuntos de datos complejos con muchas características o cuando es necesaria una separación clara entre grupos de puntos de datos. En comparación, KNN es más sencillo de usar y comprender, pero no funciona tan bien en grandes conjuntos de datos.

¿Cómo se utiliza KNN en el aprendizaje automático?

Muchos algoritmos de ML solo pueden manejar un tipo de tarea. KNN destaca por su capacidad para manejar no uno sino dos casos de uso comunes: clasificación y regresión.

Clasificación

KNN clasifica los puntos de datos utilizando una métrica de distancia para determinar los k vecinos más cercanos y asignando una etiqueta al nuevo punto de datos en función de las etiquetas de los vecinos. Los casos de uso comunes de la clasificación KNN incluyen la clasificación de correo no deseado, la agrupación de clientes en categorías según el historial de compras y el reconocimiento de números escritos a mano.

Regresión

KNN realiza una regresión estimando el valor de un punto de datos en función del promedio (o promedio ponderado) de sus k vecinos más cercanos. Por ejemplo, KNN puede predecir los precios de las viviendas basándose en propiedades similares en el vecindario, los precios de las acciones basándose en datos históricos de acciones similares o la temperatura basándose en datos meteorológicos históricos en ubicaciones similares.

Aplicaciones del algoritmo KNN en ML

Debido a su relativa simplicidad y su capacidad para realizar tanto clasificación como regresión, KNN tiene una amplia gama de aplicaciones. Estos incluyen reconocimiento de imágenes, sistemas de recomendación y clasificación de texto.

Reconocimiento de imagen

El reconocimiento de imágenes es una de las aplicaciones más comunes de KNN debido a sus capacidades de clasificación. KNN realiza el reconocimiento de imágenes comparando características de la imagen desconocida, como colores y formas, con características de un conjunto de datos de imágenes etiquetadas. Esto hace que KNN sea útil en campos como la visión por computadora.

Sistemas de recomendación

KNN puede recomendar productos o contenidos a los usuarios comparando sus datos de preferencias con los datos de usuarios similares. Por ejemplo, si un usuario ha escuchado varias canciones de jazz clásico, KNN puede encontrar usuarios con preferencias similares y recomendar canciones que les hayan gustado. Como tal, KNN puede ayudar a personalizar la experiencia del usuario recomendando productos o contenidos basados ​​en datos similares.

Clasificación de texto

La clasificación de texto busca clasificar el texto no categorizado en función de su similitud con el texto precategorizado. La capacidad de KNN para evaluar la cercanía de patrones de palabras la convierte en una herramienta eficaz para este caso de uso. La clasificación de texto es particularmente útil para tareas como el análisis de sentimientos, donde los textos se clasifican como positivos, negativos o neutrales, o para determinar la categoría de un artículo de noticias.

Ventajas del algoritmo KNN en ML

KNN tiene varios beneficios notables, incluida su simplicidad, versatilidad y falta de una fase de capacitación.

Sencillez

En comparación con muchos otros algoritmos de ML, KNN es fácil de entender y utilizar. La lógica detrás de KNN es intuitiva: clasifica o predice (regresión) nuevos puntos de datos en función de los valores de puntos de datos cercanos, lo que la convierte en una opción popular para los profesionales del aprendizaje automático, especialmente los principiantes. Además, además de elegir un valor para k, se requiere un ajuste mínimo de hiperparámetros para utilizar KNN.

Versatilidad

KNN se puede utilizar tanto para tareas de clasificación como de regresión, lo que significa que se puede aplicar a una amplia gama de problemas y tipos de datos, desde el reconocimiento de imágenes hasta la predicción de valores numéricos. A diferencia de los algoritmos especializados limitados a un tipo de tarea, KNN se puede aplicar a cualquier conjunto de datos etiquetados adecuadamente estructurado.

Fase de entrenamiento explícito

Muchos modelos de ML requieren una fase de formación que requiere mucho tiempo y recursos antes de resultar útiles. KNN, por otro lado, simplemente almacena los datos de entrenamiento y los usa directamente en el momento de la predicción. Como tal, KNN se puede actualizar con nuevos datos, que están inmediatamente disponibles para su uso en la predicción. Esto hace que KNN sea particularmente atractivo para conjuntos de datos pequeños.

Desventajas del algoritmo KNN en ML

A pesar de sus fortalezas, KNN también enfrenta varios desafíos. Estos incluyen altos costos computacionales y de memoria, sensibilidad al ruido y características irrelevantes, y la "maldición de la dimensionalidad".

Costo computacional de la predicción.

Dado que KNN calcula la distancia entre un nuevo punto de datos y cada punto de datos en su conjunto de datos de entrenamiento general cada vez que hace una predicción, el costo computacional de la predicción aumenta rápidamente a medida que crece el conjunto de datos. Esto puede dar lugar a predicciones lentas cuando el conjunto de datos es grande o cuando KNN se ejecuta con hardware insuficiente.

Maldición de la dimensionalidad

KNN sufre la llamada "maldición de la dimensionalidad", que limita su capacidad para manejar datos de alta dimensión. A medida que aumenta la cantidad de características en un conjunto de datos, la mayoría de los puntos de datos se vuelven escasos y casi equidistantes entre sí. Como tal, las métricas de distancia se vuelven menos útiles, lo que dificulta que KNN encuentre vecinos en conjuntos de datos de alta dimensión que estén realmente cerca.

Memoria intensiva

Una característica única de KNN es que almacena todo el conjunto de datos de entrenamiento en la memoria para usarlo en el momento de la predicción. Cuando se trata de memoria limitada o grandes conjuntos de datos, esto puede resultar problemático y poco práctico. Otros algoritmos de ML evitan este desafío condensando y destilando datos de entrenamiento en características aprendidas a través del entrenamiento de modelos y la optimización de parámetros. KNN, por otro lado, debe retener cada punto de datos, lo que significa que la memoria crece linealmente con el tamaño del conjunto de datos de entrenamiento.

Sensibilidad al ruido y características irrelevantes.

El poder de KNN radica en su cálculo de distancia simple e intuitivo. Sin embargo, esto también significa que características o ruido sin importancia pueden provocar cálculos de distancia engañosos, lo que afecta negativamente a la precisión de la predicción. Como tal, las técnicas de selección de características o reducción de dimensionalidad, como el análisis de componentes principales (PCA), a menudo se utilizan con KNN para garantizar que las características importantes tengan la mayor influencia en la predicción.