🧮 Computational Mathematics

Inicio · Parte 14 — Matemática de Machine Learning

288 — k-Nearest Neighbors y métricas

ml-avanzado clase 8 de 20 4 horas demostración knn

k-NN no entrena nada, y por eso la métrica y el escalado lo deciden todo.

Fórmulas

predicción = mayoría entre los k vecinos más cercanos
distancia euclídea: √Σ(aᵢ − bᵢ)²
sin escalar, la característica de mayor rango domina

Desarrollo

k-NN es el algoritmo más simple posible: guardar todos los datos y, ante una consulta, buscar los k puntos más parecidos y votar. No hay entrenamiento, no hay parámetros aprendidos, y toda la complejidad se traslada al momento de la predicción.

Como la única operación es medir distancias, la elección de la métrica es el modelo. Y la consecuencia más importante es que hay que estandarizar: si una característica va de 0 a 1 y otra de 0 a 10 000, la segunda domina completamente la distancia y la primera se vuelve irrelevante. No es un ajuste opcional; sin estandarizar se está usando una métrica arbitraria dictada por las unidades de medida.

El parámetro k controla el compromiso sesgo-varianza de forma muy visible. Con k = 1 la frontera es irregular y se ajusta a cada punto, incluido el ruido: varianza alta. Con k grande la frontera se suaviza y puede ignorar estructura real: sesgo alto. Se elige por validación, y conviene que sea impar en problemas binarios para evitar empates.

Su límite duro es la maldición de la dimensionalidad. En dimensión alta, las distancias entre puntos aleatorios convergen a un valor común, con lo que «el vecino más cercano» deja de ser distinguible del más lejano y el método pierde sentido. Es el ejemplo más claro de que la intuición geométrica de dos dimensiones no escala.

Ejemplo trabajado

Predicción para el punto (1, 1) con distintos valores de k.

consulta: (1,0 ; 1,0)

k = 1    →  clase 1
k = 5    →  clase 1
k = 21   →  clase 1

Los datos están bien separados: k no cambia la respuesta.

Efecto del escalado:
  con la segunda característica multiplicada por 100,
  la predicción sigue siendo clase 1 en este caso,
  pero la distancia pasa a estar dominada por x₂:
  la contribución de x₁ cae al 0,01 % del total.

Con clases menos separadas, ese desequilibrio
cambiaría la respuesta.

Qué calcula el laboratorio

k-NN: la métrica y el escalado deciden el resultado.

python classes/part-14-matematica-de-machine-learning/288-k-nearest-neighbors-y-metricas/lab.py
compmath run 288

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "consulta": [
    1.0,
    1.0
  ],
  "prediccion_k=1": 1,
  "prediccion_k=5": 1,
  "prediccion_k=21": 1,
  "prediccion_con_x2_escalada_x100": 1,
  "el_escalado_cambia_la_respuesta": false
}

Errores comunes

Dónde se usa

Sistemas de recomendación, búsqueda por similitud, imputación de valores faltantes y recuperación de vecinos en bases vectoriales.

Idea rectora de la parte

El kernel trick evita construir el espacio de características explícitamente.

Error a evitar

Elegir hiperparámetros con el conjunto de test.

Conexión con IA

Estos algoritmos siguen siendo la línea base honesta contra la que se debe comparar cualquier modelo profundo.

Bibliografía de la clase

Archivos de la clase