ElemedexEnciclopedia de bolsillo de arquitecturas de IA
k vecinos más cercanos
N.º 007

k vecinos más cercanos

kNN · nearest-neighbor rule

Memorioso

No aprende nada: se acuerda de todo, como Funes. Cuando le mostrás algo nuevo, busca a sus k vecinos más parecidos y vota con la mayoría. Es tan perezoso que hace todo el trabajo el día del examen.

Altura
0 (los datos son el modelo)
Peso
= el conjunto de entrenamiento
Parámetros
0 ajustados (k es un hiperparámetro)
Contexto
1 vector de atributos
Datos de entrenamiento
crece con cada ejemplo
Año
1967
Generación
1 · Cibernética y símbolos
Creadores
Evelyn Fix & Joseph Hodges (1951); Thomas Cover & Peter Hart (1967)
Clase
Algoritmo

Estadísticas base

Total
126

Escalas ordinales y aproximadas, pensadas para comparar especies entre sí; los números duros están en la ficha.

Debilidades

  • Lento al predecir: sin índices, compara cada caso nuevo con todos los ejemplos guardados.
  • Muy sensible a atributos irrelevantes y a las escalas; en alta dimensión, «cercano» pierde fuerza.
  • Ocupa tanta memoria como sus datos, y la memoria crece con cada ejemplo.
  • No ofrece una descripción explícita de lo aprendido: solo puede señalar a sus vecinos.

Hábitat

Nació en la estadística de comienzos de los años cincuenta y pasó medio siglo en el reconocimiento de patrones. Hoy trabaja escondido en cada base de datos vectorial: cuando un sistema RAG busca los pasajes más parecidos a una pregunta, está haciendo kNN sobre embeddings.

Movimientos

Habilidades

Aprendizaje perezoso
No construye ninguna generalización al entrenar: guarda los ejemplos tal cual y hace todo el trabajo recién cuando tiene que clasificar.
Métrica de distancia
Toda su «teoría» es una noción de cercanía (euclídea, Manhattan, coseno): cambiar la métrica cambia qué cuenta como parecido.
Fronteras implícitas
Nunca escribe una regla, pero los ejemplos y la métrica parten el espacio en celdas; la frontera existe aunque no esté guardada en ningún lado.

Anatomía

kNN no tiene fase de entrenamiento: el «modelo» son los ejemplos guardados. Todo el cómputo ocurre al consultar, cuando se mide la distancia del punto nuevo a cada ejemplo y votan los k más cercanos (o se promedia su valor, si se predice un número).

Cadena evolutiva

No se le conocen evoluciones.

007 k vecinos más cercanos

El método de los k vecinos más cercanos (kNN) es la forma más literal de aprender de la experiencia: guardar todos los ejemplos y, ante un caso nuevo, buscar los más parecidos. Witten et al. (2017) lo presentan como un pariente de la memorización pura, en el que «the only problem is how to interpret "resembles"» (2017, p. 84) [trad.: «el único problema es cómo interpretar "se parece"»].

Cómo funciona

Cada ejemplo es un vector de atributos con su etiqueta. Para clasificar un punto nuevo x se calcula su distancia a cada ejemplo guardado, se toman los k más cercanos y se asigna la clase mayoritaria entre ellos; si lo que se predice es un número, se usa el promedio ponderado por distancia (Witten et al., 2017, p. 85). Con k = 1 es la regla del vecino más cercano; con k algo mayor (cinco, digamos) el voto amortigua los ejemplos ruidosos (Witten et al., 2017, p. 141).

La distancia habitual es la euclídea; la de Manhattan suma diferencias absolutas. Como los atributos se miden en escalas distintas, se normalizan entre 0 y 1: de lo contrario, uno medido en miles aplastaría a los demás (Witten et al., 2017, pp. 135–136). Para atributos nominales («rojo», «verde») la diferencia es 0 si coinciden y 1 si no.

No hay entrenamiento propiamente dicho. kNN es un aprendiz perezoso (lazy), que difiere todo el trabajo hasta el momento de clasificar, frente a los métodos ávidos (eager) que producen una generalización apenas ven los datos (Witten et al., 2017, p. 85). Por eso no tiene parámetros ajustados: k y la métrica son hiperparámetros, y el «modelo» es el conjunto de entrenamiento entero.

Fronteras sin reglas

Aunque no escribe ninguna regla, kNN traza fronteras. Con un solo ejemplo por clase, el espacio queda dividido por la mediatriz del segmento que los une; con varios, por un polígono de mediatrices que está «implícito» en la regla (Witten et al., 2017, p. 86). Son fronteras de decisión no lineales, a diferencia de la recta de Perceptrón, y se amoldan a cualquier forma si hay datos suficientes.

La idea es vieja: la analizaron estadísticos a comienzos de los cincuenta (Fix y Hodges, 1951, en un informe para la Fuerza Aérea estadounidense) y se adoptó como clasificador en los sesenta (Witten et al., 2017, p. 141). El resultado clásico es de Cover y Hart (1967): con infinitos datos, el error de la regla del vecino más cercano es a lo sumo el doble del error mínimo alcanzable (el llamado error de Bayes). Y si k y la cantidad de ejemplos crecen juntos, con k mucho menor que el total, el error se acerca a ese mínimo (Witten et al., 2017, p. 141).

Límites

El primero es el costo: predecir lleva un tiempo proporcional al tamaño del conjunto. Árboles como los kD-trees o los ball trees aceleran la búsqueda, pero pierden eficacia cuando crece la dimensión (Witten et al., 2017, pp. 136–141). El segundo es la alta dimensión: como decide en vecindarios locales, kNN es muy sensible a los atributos irrelevantes, y la cantidad de ejemplos necesaria para un mismo desempeño crece exponencialmente con su número (Witten et al., 2017, p. 289). Es la versión práctica de la «maldición de la dimensionalidad». El tercero es que todo depende de la métrica: decidir qué atributos pesan y cuánto es, según Witten et al., uno de los problemas centrales del método (2017, p. 85).

Dónde vive hoy

kNN renació con los embeddings. La recuperación densa convierte la búsqueda en encontrar los vecinos más cercanos del vector de la consulta (Alammar y Grootendorst, 2024, p. 226); con millones de documentos se usan bibliotecas de vecinos aproximados (Annoy, FAISS) o bases de datos vectoriales (Alammar y Grootendorst, 2024, pp. 238–239). En alta dimensión suele preferirse la similitud coseno a la distancia euclídea (Alammar y Grootendorst, 2024, p. 142). Así funcionan el recuperador de Generación aumentada por recuperación (RAG) y la búsqueda semántica con Sentence-BERT. Lo que cambió no es el algoritmo sino el espacio: los atributos ya no los elige un humano, se aprenden (ver embeddings).

Fuentes

  • Alammar, J., & Grootendorst, M. (2024). Hands-on large language models: Language understanding and generation. O’Reilly Media. §
  • Buckner, C. J. (2024). From deep learning to rational machines: What the history of philosophy can teach us about the future of artificial intelligence. Oxford University Press. https://doi.org/10.1093/oso/9780197653302.001.0001 §
  • Cover, T., & Hart, P. (1967). Nearest neighbor pattern classification. IEEE Transactions on Information Theory, 13(1), 21–27. https://doi.org/10.1109/TIT.1967.1053964 §
  • Fix, E., & Hodges, J. L., Jr. (1951). Discriminatory analysis. Nonparametric discrimination: Consistency properties (Report No. 4). USAF School of Aviation Medicine. https://doi.org/10.1037/e471672008-001 §
  • Goodman, N. (1972). Seven strictures on similarity. In Problems and projects (pp. 437–446). Bobbs-Merrill. §
  • Medin, D. L., & Schaffer, M. M. (1978). Context theory of classification learning. Psychological Review, 85(3), 207–238. https://doi.org/10.1037/0033-295X.85.3.207 §
  • Nosofsky, R. M. (1986). Attention, similarity, and the identification–categorization relationship. Journal of Experimental Psychology: General, 115(1), 39–57. https://doi.org/10.1037/0096-3445.115.1.39 §
  • Witten, I. H., Frank, E., Hall, M. A., & Pal, C. J. (2017). Data mining: Practical machine learning tools and techniques (4th ed.). Morgan Kaufmann. https://doi.org/10.1016/C2015-0-02071-8 §