GeeksforGeeks (Español)
Vecinos más cercanos K es uno de los algoritmos de clasificación más básicos pero esenciales en Machine Learning. Pertenece al dominio de aprendizaje supervisado y encuentra una aplicación intensa en el reconocimiento de patrones, la minería de datos y la detección de intrusiones.
Es ampliamente desechable en escenarios de la vida real ya que no es paramétrico, es decir, no hace cualquier suposición subyacente sobre la distribución de datos (a diferencia de otros algoritmos como GMM, que asumen una distribución gaussiana de los datos dados).
Recibimos algunos datos previos (también llamados datos de entrenamiento), que clasifica las coordenadas en grupos identificados por un atributo.
Como ejemplo, considere la siguiente tabla de puntos de datos que contiene dos características:
Ahora, dado otro conjunto de puntos de datos ( también llamados datos de prueba), asigne estos puntos a un grupo analizando el conjunto de entrenamiento. Tenga en cuenta que los puntos no clasificados están marcados como «blancos».
Intuición
Si trazamos estos puntos en un gráfico, es posible que podamos ubicar algunos clústeres o grupos. Ahora, dado un punto sin clasificar, podemos asignarlo a un grupo observando a qué grupo pertenecen sus vecinos más cercanos. Esto significa que un punto cercano a un grupo de puntos clasificados como Rojo tiene una mayor probabilidad de ser clasificado como Rojo.
Intuitivamente, podemos ver que el primer punto (2.5, 7) debería ser clasificado como Verde y el segundo punto (5.5, 4.5) debe clasificarse como Rojo.
Algoritmo
Sea m el número de muestras de datos de entrenamiento. Sea p un punto desconocido.
- Almacene las muestras de entrenamiento en una matriz de puntos de datos arr. Esto significa que cada elemento de esta matriz representa una tupla (x, y).
-
for i=0 to m: Calculate Euclidean distance d(arr, p).
- Hacer el conjunto S de K distancias más pequeñas obtenidas . Cada una de estas distancias corresponde a un punto de datos ya clasificado.
- Devuelve la etiqueta mayoritaria entre S.
K se puede mantener como un número impar para que podamos calcular una clara mayoría en el caso de que sólo sean posibles dos grupos (por ejemplo, rojo / azul). Al aumentar K, obtenemos límites más suaves y definidos en diferentes clasificaciones. Además, la precisión del clasificador anterior aumenta a medida que aumentamos el número de puntos de datos en el conjunto de entrenamiento.
Programa de ejemplo
Suponga que 0 y 1 son los dos clasificadores (grupos).
Salida:
The value classified to unknown point is 0.
Este artículo es una contribución de Anannya Uberoi. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando contrib.geeksforgeeks.org o enviar tu artículo por correo a [email protected]. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.