k vecinos más próximos

El método de los k vecinos más cercanos (en inglés: k-nearest neighbors, abreviado

-nn es un tipo de aprendizaje vago (lazy learning), donde la función se aproxima solo localmente y todo el cómputo es diferido a la clasificación.

La normalización de datos puede mejorar considerablemente la exactitud del algoritmo

[2]​[3]​ Los ejemplos de formación son vectores en un espacio característico multidimensional, cada ejemplo está descrito en términos de

Un punto en el espacio es asignado a la clase

{\displaystyle d(x_{i},x_{j})={\sqrt {\sum _{r=1}^{p}(x_{ri}-x_{rj})^{2}}}}

En la fase de clasificación, la evaluación del ejemplo (del que no se conoce su clase) es representada por un vector en el espacio característico.

Se calcula la distancia entre los vectores almacenados y el nuevo vector, y se seleccionan los

El nuevo ejemplo es clasificado con la clase que más se repite en los vectores seleccionados.

Este método supone que los vecinos más cercanos nos dan la mejor clasificación y esto se hace utilizando todos los atributos; el problema de dicha suposición es que es posible que se tengan muchos atributos irrelevantes que dominen sobre la clasificación: dos atributos relevantes perderían peso entre otros veinte irrelevantes.

Para corregir el posible sesgo se puede asignar un peso a las distancias de cada atributo, dándole así mayor importancia a los atributos más relevantes.

Otra posibilidad consiste en tratar de determinar o ajustar los pesos con ejemplos conocidos de formación.

Finalmente, antes de asignar pesos es recomendable identificar y eliminar los atributos que se consideran irrelevantes.

devuelto por el algoritmo como un estimador de

es solo el valor más común de

; entonces el vecino más cercano a

reducen el efecto de ruido en la clasificación, pero crean límites entre clases parecidas.

puede ser seleccionado mediante una optimización de uso.

El caso especial en que la clase es predicha para ser la clase más cercana al ejemplo de formación (cuando

) es llamada Nearest Neighbor Algorithm, Algoritmo del vecino más cercano.

La exactitud de este algoritmo puede ser severamente degradada por la presencia de ruido o características irrelevantes, o si las escalas de características no son consistentes con lo que uno considera importante.

Se puede ponderar la contribución de cada vecino de acuerdo a la distancia entre él y el ejemplar a ser clasificado

, dando mayor peso a los vecinos más cercanos.

, ya que al ser muy distantes no tendrían peso asociado.

La desventaja de considerar todos los ejemplos sería su lenta respuesta (método global).

Se quiere siempre tener un método local en el que solo los vecinos más cercanos son considerados.

Esta mejora es muy efectiva en muchos problemas prácticos.

Se puede ver que al tomar promedios ponderados de los

Como otras regresiones se trata de un algoritmo para estimar una variable continua

elementos de la muestra más próximos a

Ejemplo del algoritmo Knn. El ejemplo que se desea clasificar es el círculo verde. Para k = 3 este es clasificado con la clase triángulo , ya que hay solo un cuadrado y 2 triángulos, dentro del círculo que los contiene. Si k = 5 este es clasificado con la clase cuadrado , ya que hay 2 triángulos y 3 cuadrados, dentro del círculo externo.