Algoritmo de aprendizaje lento, K-Vecino más cercano

(Extraido de: [1] "Python Machine Learning - Capitulo 3")

Algoritmos de machine learning - K Vecinos 

Los algoritmos de machine learning se agrupan en dos modelos: los paramétricos y los no paramétricos.

Modelos paramétricos 

Con los modelos paramétricos se estima los parámetros desde el conjunto de datos de entrenamiento para aprender una función que pueda clasificar nuevos puntos de datos sin requerir el dataset de entrenamiento original. Por ejemplo: perceptrón, regresión logística, y el SVM lineal.

Modelos no paramétricos

Los modelos no paramétricos no se pueden caracterizarse por un conjunto fijo de parámetros y el número de éstos crece con los datos de entrenamiento. Por ejemplos: clasificador de árbol de decisión o bosque aleatorio y kernel SVM (Máquina de soporte vectorial).

K Vecino más cercano 

KNN pertenece a una subcategoría de modelos no paramétricos que se describe como aprendizaje basado en instancias. Los modelos basados en el aprendizaje por instancias se caracterizan por memorizar el conjunto de datos de entrenamiento, y el aprendizaje lento es un caso especial del aprendizaje por instancias que se asocia con ningún coste (cero) durante el proceso de aprendizaje.

Es decir que KNN es un aprendizaje lento porque no aprende una función discriminativa a partir de los datos de entrenamiento, sino que memoriza el conjunto de datos de entrenamiento.

Al ser bastante sencillo, presenta 3 pasos de manera muy resumida.

  1. Escoger el numero de k y la distancia de la métrica.
  2. Encontrar el k vecino más cercano del ejemplo que se requiere clasificar.
  3. Asignar la etiqueta de la clase por votos mayoritarios.
Como se puede visualizar en la imagen se escoge un punto, y en base a la distancia se cuenta cuantos vecinos hay y a que clase pertenecen, se realiza un conteo y la clase que tenga mas votos será la etiqueta.

Ejemplo del algoritmo K vecinos más cercanos
Tomado de Python Machine Learning - Sebastian Raschka

Basándose en la métrica de distancia elegida, el algoritmo KNN encuentra las k muestras del conjunto de datos de entrenamiento más cercanas (más similares) al punto que queremos clasificar. La etiqueta de clase del nuevo punto de datos se determina entonces por mayoría de votos entre sus k vecinos más cercanos.

Ventaja y desventaja del algoritmo

La principal ventaja de este enfoque basado en la memoria es que el clasificador se adapta inmediatamente a medida que recogemos nuevos datos de entrenamiento.

Sin embargo, la desventaja es que la complejidad computacional para clasificar nuevas muestras crece linealmente con el número de muestras en el conjunto de datos de entrenamiento.

Nota: En el caso de un empate en la elección de los vecinos cercanos, por lo general el algoritmo KNN escogerá la etiqueta de la primera clase que se encuentre en el conjunto de datos de entrenamiento.

La correcta elección para k es ideal para encontrar un buen balance entre el sobreajuste y el infraajuste. La elección de la distancia métrica debe ser apropiada para las características en el conjunto de datos.

Por lo general,  Una medida de distancia euclidiana es usada para ejemplos de valores reales, sin embargo, es importante estandarizar los datos para que cada característica corresponda por igual a la distancia.

Maldición de la dimensionalidad

KNN es muy susceptible de sobreajuste debido a la maldición de la dimensionalidad.

La maldición de la dimensionalidad describe el fenómeno en el que el espacio de características se vuelve cada vez más escaso para un número creciente de dimensiones de un conjunto de datos de entrenamiento de tamaño fijo.

Intuitivamente, se piensa que incluso los vecinos más cercanos están demasiado lejos en un espacio de alta dimensión para dar una buena estimación.

Para evitarlo se puede utilizar técnicas de selección de características y de reducción de la dimensionalidad para evitar la maldición de la dimensionalidad

Bibliografía:

[1]    Raschka, S. (2015). Python Machine Learning. Pensilvania : Packt Publishing

Comentarios