El algoritmo k-Nearest Neighbors (k-NN o k-vecinos más próximos) es un algoritmo de Machine Learning extremadamente simple: en clasificación, asigna una etiqueta de clase a un punto de datos basándose en las etiquetas de clase de los k vecinos más cercanos en el conjunto de entrenamiento. Los vecinos se seleccionan según la distancia euclidiana u otra medida de distancia, y el número k se especifica previamente.
Este algoritmo se basa en la suposición de que los datos con etiquetas semejantes se encuentran cerca unos de otros.
El enfoque usado en k-NN es de tipo "aprendizaje basado en instancias" o "aprendizaje no generalizable" pues el objetivo del mismo no es desarrollar un modelo que represente los datos de entrenamiento y permita generalizarlo aplicándolo a nuevas muestras.