Vecinos más próximos (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 fundacional de aprendizaje supervisado que se utiliza tanto para tareas de clasificación como de regresión. Se considera un algoritmo basado en instancias o de "aprendizaje perezoso" porque no construye un modelo durante la fase de datos de entrenamiento. En su lugar, almacena todo el conjunto de datos y realiza predicciones encontrando las "K" instancias más similares (vecinos) en los datos almacenados. La idea central es que existen puntos de datos similares muy próximos. Para un nuevo punto de datos sin clasificar, KNN identifica a sus vecinos más cercanos y utiliza sus etiquetas para determinar su propia clasificación o valor.
¿Cómo funciona KNN?
El algoritmo KNN funciona según un principio simple de similitud, que suele medirse con una métrica de distancia. La más común es la distancia euclídea, aunque pueden utilizarse otras métricas en función del conjunto de datos.
El proceso para hacer una predicción es sencillo:
- Elegir el valor de K: El número de vecinos (K) a considerar es un hiperparámetro crítico. La elección de K puede afectar significativamente al rendimiento del modelo.
- Calcular distancias: Para un nuevo punto de datos, el algoritmo calcula la distancia entre él y cualquier otro punto del conjunto de datos de entrenamiento.
- Identificar vecinos: Identifica los K puntos de datos del conjunto de entrenamiento más cercanos al nuevo punto. Son los "vecinos más cercanos".
- Hacer una predicción:
- Para las tareas de clasificación, el algoritmo realiza una votación por mayoría. Al nuevo punto de datos se le asigna la clase más común entre sus K vecinos más cercanos. Por ejemplo, si K=5 y tres vecinos son de clase A y dos de clase B, el nuevo punto se clasifica como clase A.
- Para las tareas de regresión, el algoritmo calcula la media de los valores de sus K vecinos más próximos. Esta media se convierte en el valor predicho para el nuevo punto de datos.
Aplicaciones reales
La simplicidad y la naturaleza intuitiva de KNN lo hacen útil en diversas aplicaciones, especialmente como modelo de referencia.
- Sistemas de recomendación: KNN es una opción popular para construir motores de recomendación. Por ejemplo, un servicio de streaming puede recomendar películas a un usuario identificando a otros usuarios (vecinos) con historiales de visionado similares. A continuación, se recomiendan las películas que han disfrutado estos vecinos y que el usuario no ha visto. Esta técnica es una forma de filtrado colaborativo.
- Servicios financieros: En finanzas, KNN puede utilizarse para la calificación crediticia. Al comparar un nuevo solicitante de préstamo con una base de datos de solicitantes anteriores con resultados crediticios conocidos, el algoritmo puede predecir si es probable que el nuevo solicitante incurra en impago. Los vecinos son solicitantes anteriores con perfiles financieros similares (por ejemplo, edad, ingresos, nivel de deuda), y su historial de impagos sirve de base para la predicción. Esto ayuda a automatizar las evaluaciones iniciales del riesgo.
KNN frente a conceptos relacionados
Es importante distinguir KNN de otros algoritmos comunes de aprendizaje automático:
- Agrupación K-Means: Aunque los nombres son similares, sus funciones son muy diferentes. K-Means es un algoritmo de aprendizaje no supervisado que se utiliza para dividir los datos en K subgrupos (clusters) distintos que no se solapan. KNN, por el contrario, es un algoritmo supervisado utilizado para la predicción basada en datos etiquetados.
- Máquina de vectores soporte (SVM): SVM es un algoritmo supervisado que trata de encontrar el mejor hiperplano posible que separe las distintas clases en el espacio de características. Mientras que KNN toma decisiones basadas en la similitud local de los vecinos, SVM tiene como objetivo encontrar un límite óptimo global, por lo que es fundamentalmente diferente en su enfoque. Puede encontrar más detalles en la página de Scikit-learn SVM.
- Árboles de decisión: Un árbol de decisión clasifica los datos creando un modelo de decisiones jerárquico basado en reglas. El resultado es una estructura en forma de árbol, mientras que KNN se basa en la similitud por distancia sin aprender reglas explícitas. Puede obtener más información en la documentación de Árboles de decisión de Scikit-learn.
Aunque KNN es una herramienta valiosa para comprender los conceptos fundamentales del aprendizaje automático y para su uso en conjuntos de datos pequeños y bien seleccionados, puede ser muy intensivo desde el punto de vista computacional para la inferencia en tiempo real con grandes volúmenes de datos. Para tareas complejas de visión por ordenador, como la detección de objetos en tiempo real, se prefieren modelos más avanzados, como Ultralytics YOLO, por su velocidad y precisión superiores. Estos modelos pueden entrenarse y desplegarse fácilmente utilizando plataformas como Ultralytics HUB.