El aprendizaje automático ha revolucionado la manera en que las máquinas pueden analizar, comprender y predecir patrones a partir de datos. Entre los múltiples algoritmos que existen, el K-Nearest Neighbors (KNN), conocido en español como K vecinos más cercanos, destaca por su simplicidad, efectividad y versatilidad en aplicaciones de clasificación y regresión. Este algoritmo es especialmente apreciado tanto por su facilidad de implementación como por la intuición clara que ofrece sobre cómo se toman las decisiones de predicción.
1. Introducción al algoritmo KNN
KNN pertenece a la familia de los algoritmos de aprendizaje supervisado. Esto significa que para entrenar el modelo, es necesario contar con un conjunto de datos etiquetado, donde cada registro incluye tanto las características (inputs) como la categoría o valor a predecir (output). A diferencia de otros algoritmos más complejos que crean modelos internos con ecuaciones o funciones matemáticas elaboradas, KNN se basa en la comparación directa entre ejemplos.
El principio fundamental de KNN es simple: para clasificar un nuevo dato o estimar su valor, el algoritmo busca los K registros más cercanos en el espacio de características y decide su clasificación o valor basándose en la mayoría de sus vecinos.
Por ejemplo, si se desea clasificar una flor según su especie usando medidas de pétalos y sépalos, KNN identificará las K flores más similares y asignará la especie que predomine entre esos vecinos.
2. Historia y origen
KNN fue propuesto en la década de 1950 por Evelyn Fix y Joseph Hodges, y desde entonces ha sido uno de los algoritmos más estudiados y aplicados en estadística y aprendizaje automático. Su popularidad reside en varios factores:
Termodinámica: 25 preguntas y respuestas para entenderla
- Simplicidad: No requiere suposiciones complejas sobre la distribución de los datos.
- Flexibilidad: Funciona tanto para clasificación como para regresión.
- Interpretabilidad: Los resultados se pueden explicar fácilmente mediante ejemplos concretos.
Aunque su concepción es antigua, KNN sigue siendo relevante hoy en día, especialmente en problemas donde los datos no siguen patrones lineales o distribuciones conocidas.
3. Fundamentos matemáticos
3.1. Definición de K
El parámetro central del algoritmo es K, que representa el número de vecinos más cercanos que se consideran al hacer la predicción. La elección de K es crítica:
- Un K pequeño (por ejemplo, K=1 o K=3) puede generar modelos muy sensibles al ruido, pues la decisión depende de pocos puntos, lo que podría llevar a sobreajuste.
- Un K grande suaviza la predicción al considerar más vecinos, reduciendo el riesgo de sobreajuste pero aumentando la posibilidad de subajuste si se incluyen vecinos irrelevantes.
3.2. Medidas de distancia
Para determinar qué vecinos son los “más cercanos”, KNN utiliza medidas de distancia entre los puntos en el espacio de características. Algunas de las más comunes son:
- Distancia Euclidiana: La más utilizada, calcula la raíz cuadrada de la suma de los cuadrados de las diferencias entre cada característica.
Fórmula: {eq}d(p,q) = \sqrt{\sum_{i=1}^n (p_i – q_i)^2}{/eq} - Distancia Manhattan: Suma de las diferencias absolutas de cada característica.
Fórmula: {eq}d(p,q) = \sum_{i=1}^n |p_i – q_i|{/eq} - Distancia de Minkowski: Generalización de las anteriores, con un parámetro pp.
Fórmula: {eq}d(p,q) = \left( \sum_{i=1}^n |p_i – q_i|^p \right)^{1/p}{/eq} - Distancia de Hamming: Utilizada para variables categóricas, mide el número de posiciones donde los valores difieren.
La elección de la medida de distancia depende del tipo de datos y de la naturaleza del problema. Por ejemplo, para datos continuos es común usar Euclidiana, mientras que para variables categóricas se prefiere Hamming.
4. Clasificación con KNN
En problemas de clasificación, el objetivo es asignar un dato desconocido a una de varias categorías posibles. El procedimiento de KNN se puede resumir en los siguientes pasos:
Mercado de Capitales: definición, características y ejemplos
- Calcular distancias entre el nuevo punto y todos los puntos del conjunto de entrenamiento.
- Seleccionar los K vecinos más cercanos según la distancia.
- Votar por la clase mayoritaria entre los vecinos seleccionados.
- Asignar la clase más frecuente al nuevo punto.
Por ejemplo, si K=5 y los cinco vecinos más cercanos a un dato desconocido pertenecen a las clases A, A, B, A y B, entonces la clase asignada será A, ya que predomina.
4.1. Ventajas de KNN en clasificación
- Muy intuitivo y fácil de entender.
- No requiere suposiciones sobre la distribución de los datos.
- Puede capturar relaciones complejas y no lineales.
4.2. Limitaciones
- Sensible a datos ruidosos y a valores atípicos.
- Puede ser lento con grandes volúmenes de datos, porque necesita calcular distancias con todos los puntos del conjunto de entrenamiento.
- Requiere normalización de las características, especialmente si tienen escalas diferentes, para evitar que una característica domine la distancia.
5. Regresión con KNN
Aunque KNN es más conocido por su uso en clasificación, también se puede aplicar a problemas de regresión, donde el objetivo es predecir un valor numérico continuo en lugar de una categoría.
5.1. Cómo funciona KNN en regresión
El proceso es similar al de clasificación, con la diferencia en el paso final:
- Se calcula la distancia entre el nuevo punto y todos los puntos del conjunto de entrenamiento.
- Se seleccionan los K vecinos más cercanos.
- En lugar de realizar una votación por clase, se promedia el valor de salida de los K vecinos.
- El resultado promedio se asigna como la predicción para el nuevo punto.
Por ejemplo, si queremos predecir el precio de una casa y los 5 vecinos más cercanos tienen precios de 120.000, 125.000, 130.000, 118.000 y 122.000 dólares, la predicción de KNN sería: {eq}\text{Precio predicho} = \frac{120.000 + 125.000 + 130.000 + 118.000 + 122.000}{5} = 123.000 \text{ dólares}{/eq}
5.2. Ventajas y limitaciones en regresión
- Ventajas:
- Captura relaciones no lineales sin necesidad de definir un modelo explícito.
- Fácil de implementar y entender.
- Limitaciones:
- Sensible a valores atípicos, que pueden distorsionar el promedio.
- La elección de K afecta significativamente el resultado: K muy pequeño genera predicciones ruidosas; K muy grande puede suavizar demasiado la tendencia real.
6. Normalización y escalado de datos
Una característica crítica del KNN es su sensibilidad a la escala de los datos, ya que la distancia entre puntos depende directamente de las magnitudes de las características.
Tabla periódica de los Elementos Completa
Por ejemplo, si tenemos dos variables: altura en metros (valores entre 1.5 y 2) y peso en kilogramos (valores entre 50 y 120), el peso dominará la distancia Euclidiana, haciendo que la altura tenga poco efecto.
Para evitarlo, es común aplicar técnicas de normalización o estandarización:
- Normalización Min-Max: Escala los datos a un rango específico, normalmente [0,1]: {eq}x’ = \frac{x – x_{\min}}{x_{\max} – x_{\min}}{/eq}
- Estandarización Z-score: Convierte los datos a una distribución con media 0 y desviación estándar 1: {eq}x’ = \frac{x – \mu}{\sigma}{/eq}
Estas transformaciones aseguran que todas las características contribuyan de manera equilibrada al cálculo de distancias.
7. Selección del parámetro K óptimo
Elegir el valor adecuado de K es crucial para obtener buenos resultados. Existen varias estrategias para determinarlo:
- Método empírico: Probar varios valores de K y evaluar el rendimiento con un conjunto de validación.
- Validación cruzada (cross-validation): Dividir los datos en varios subconjuntos, entrenar y evaluar el modelo múltiples veces para cada K y elegir el que minimice el error.
- Regla general: Algunos expertos sugieren usar un K impar para problemas de clasificación con dos clases, evitando empates, y comenzar con la raíz cuadrada del tamaño del conjunto de entrenamiento.
Un K demasiado pequeño hace que el modelo sea sensible al ruido; un K demasiado grande puede suavizar excesivamente la predicción, perdiendo detalles importantes.
8. Ventajas comparativas de KNN
KNN tiene varias ventajas frente a otros algoritmos de aprendizaje supervisado:
- Simplicidad: La implementación requiere pocas líneas de código y no necesita entrenamiento complejo.
- Flexibilidad: Funciona tanto con datos continuos como categóricos, para clasificación y regresión.
- Adaptabilidad: Puede capturar patrones no lineales sin necesidad de transformaciones complicadas.
- Interpretabilidad: Los resultados son fáciles de explicar: “Este dato es similar a estos vecinos”.
Sin embargo, también tiene limitaciones importantes:
- Costoso en cómputo: Para grandes volúmenes de datos, calcular distancias con todos los puntos puede ser lento.
- Sensibilidad al ruido y outliers: Puntos atípicos pueden influir desproporcionadamente en la predicción.
- Necesidad de escalado: Las características deben estar en la misma escala para evitar sesgos.
- No genera modelo explícito: Todos los cálculos se hacen “sobre la marcha”, lo que puede dificultar la comprensión de patrones globales.
9. Aplicaciones prácticas
El algoritmo KNN se aplica en numerosos campos, debido a su simplicidad y efectividad. Algunos ejemplos destacados incluyen:
- Reconocimiento de patrones y visión por computadora: Clasificación de imágenes, detección de objetos o reconocimiento facial.
- Medicina: Diagnóstico basado en similitud de síntomas o historial clínico.
- Sistemas de recomendación: Recomendación de productos o contenidos basados en preferencias de usuarios similares.
- Finanzas: Predicción de riesgo crediticio o fraudes mediante análisis de perfiles similares.
- Ciencias naturales: Clasificación de especies o agrupamiento de muestras biológicas según características observables.
En cada uno de estos casos, KNN ofrece una solución intuitiva basada en la cercanía entre datos, haciendo que las decisiones sean comprensibles y justificables.
