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:
-
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.
-
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.
-
Identificar vecinos: El algoritmo ordena las distancias y selecciona las K entradas superiores con los
valores más bajos.
-
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.