Fundamentos de la IA

¿Qué es KNN (K-Nearest Neighbors)?

mm
Añade Unite.AI a tus fuentes preferidas en Google

¿Qué es K-Nearest Neighbors (KNN)?

K-Nearest Neighbors es una técnica de aprendizaje automático y algoritmo que se puede utilizar para tareas de regresión y clasificación. K-Nearest Neighbors examina las etiquetas de un número determinado de puntos de datos que rodean un punto de datos objetivo, con el fin de hacer una predicción sobre la clase a la que pertenece el punto de datos. K-Nearest Neighbors (KNN) es un algoritmo conceptualmente simple, pero muy poderoso, y por esas razones, es uno de los algoritmos de aprendizaje automático más populares. Hagamos un análisis profundo del algoritmo KNN y veamos exactamente cómo funciona. Tener una buena comprensión de cómo opera KNN nos permitirá apreciar los mejores y peores casos de uso para KNN.

Visión general de K-Nearest Neighbors (KNN)

Foto: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

Visualicemos un conjunto de datos en un plano 2D. Imaginemos un montón de puntos de datos en un gráfico, dispersos a lo largo del gráfico en pequeños grupos. KNN examina la distribución de los puntos de datos y, dependiendo de los argumentos dados al modelo, separa los puntos de datos en grupos. Estos grupos se asignan luego una etiqueta. La principal suposición que hace un modelo KNN es que los puntos de datos/instancias que existen en proximidad cercana entre sí son muy similares, mientras que si un punto de datos está lejos de otro grupo, es disimilar a esos puntos de datos.

Un modelo KNN calcula la similitud utilizando la distancia entre dos puntos en un gráfico. La mayor distancia entre los puntos, menos similares son. Hay varias formas de calcular la distancia entre puntos, pero la métrica de distancia más común es solo la distancia euclidiana (la distancia entre dos puntos en una línea recta).

KNN es un algoritmo de aprendizaje supervisado, lo que significa que los ejemplos en el conjunto de datos deben tener etiquetas asignadas. Hay dos cosas importantes que debes saber sobre KNN. Primero, KNN es un algoritmo no paramétrico. Esto significa que no se hacen suposiciones sobre el conjunto de datos cuando se utiliza el modelo. En su lugar, el modelo se construye enteramente a partir de los datos proporcionados. En segundo lugar, no hay división del conjunto de datos en conjuntos de entrenamiento y prueba al utilizar KNN. KNN no hace generalizaciones entre un conjunto de entrenamiento y un conjunto de prueba, por lo que todo el conjunto de entrenamiento también se utiliza cuando el modelo se le pide que haga predicciones.

Cómo opera un algoritmo KNN

Un algoritmo KNN pasa por tres fases principales a medida que se lleva a cabo:

  1. Establecer K en el número de vecinos elegido.
  2. Calcular la distancia entre un ejemplo/proveedor de prueba y los ejemplos del conjunto de datos.
  3. Ordenar las distancias calculadas.
  4. Obtener las etiquetas de las primeras K entradas.
  5. Devolver una predicción sobre el ejemplo de prueba.

En el primer paso, K se elige por el usuario y le indica al algoritmo cuántos vecinos (cuántos puntos de datos circundantes) debe considerar al renderizar un juicio sobre el grupo al que pertenece el ejemplo objetivo. En el segundo paso, tenga en cuenta que el modelo verifica la distancia entre el ejemplo objetivo y cada ejemplo en el conjunto de datos. Las distancias se agregan a una lista y se ordenan. Luego, la lista ordenada se verifica y se devuelven las etiquetas de los primeros K elementos. En otras palabras, si K se establece en 5, el modelo verifica las etiquetas de los 5 puntos de datos más cercanos al punto de datos objetivo. Al renderizar una predicción sobre el punto de datos objetivo, importa si la tarea es una regresión o clasificación. Para una tarea de regresión, se utiliza el promedio de las primeras K etiquetas, mientras que para una tarea de clasificación, se utiliza el modo de las primeras K etiquetas.

Las operaciones matemáticas exactas utilizadas para llevar a cabo KNN difieren según la métrica de distancia elegida. Si deseas aprender más sobre cómo se calculan las métricas, puedes leer sobre algunas de las métricas de distancia más comunes, como Euclidiana, Manhattan y Minkowski.

Por qué el valor de K es importante

La principal limitación al utilizar KNN es que se puede elegir un valor incorrecto de K (el número incorrecto de vecinos a considerar). Si esto sucede, las predicciones que se devuelven pueden ser sustancialmente incorrectas. Es muy importante que, al utilizar un algoritmo KNN, se elija el valor correcto para K. Quieres elegir un valor para K que maximice la capacidad del modelo para hacer predicciones sobre datos no vistos mientras reduce el número de errores que comete.

Foto: Agor153 via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)

Los valores más bajos de K significan que las predicciones renderizadas por KNN son menos estables y confiables. Para obtener una intuición de por qué es así, considera un caso en el que tenemos 7 vecinos alrededor de un punto de datos objetivo. Supongamos que el modelo KNN está trabajando con un valor de K de 2 (le pedimos que mire a los dos vecinos más cercanos para hacer una predicción). Si la gran mayoría de los vecinos (cinco de siete) pertenecen a la clase Azul, pero los dos vecinos más cercanos resultan ser Rojos, el modelo predecirá que el ejemplo de consulta es Rojo. A pesar de la suposición del modelo, en tal escenario Azul sería una mejor suposición.

Si este es el caso, ¿por qué no elegir simplemente el valor más alto de K que podamos? Esto se debe a que decirle al modelo que considere demasiados vecinos también reducirá la precisión. A medida que el radio que el modelo KNN considera aumenta, eventualmente comenzará a considerar puntos de datos que están más cerca de otros grupos que del punto de datos objetivo y comenzará a ocurrir una mala clasificación. Por ejemplo, incluso si el punto que se eligió inicialmente estaba en una de las regiones rojas de arriba, si K se establece demasiado alto, el modelo alcanzará otros puntos para considerarlos. Al utilizar un modelo KNN, se prueban diferentes valores de K para ver qué valor da al modelo el mejor rendimiento.

Ventajas y desventajas de KNN

Examinemos algunas de las ventajas y desventajas del modelo KNN.

Ventajas:

KNN se puede utilizar para tareas de regresión y clasificación, a diferencia de otros algoritmos de aprendizaje supervisado.

KNN es muy preciso y simple de usar. Es fácil de interpretar, entender e implementar.

KNN no hace suposiciones sobre los datos, lo que significa que se puede utilizar para una amplia variedad de problemas.

Desventajas:

KNN almacena la mayoría o todos los datos, lo que significa que el modelo requiere mucha memoria y es computacionalmente costoso. Los grandes conjuntos de datos también pueden hacer que las predicciones tardan mucho en realizarse.

KNN resulta ser muy sensible a la escala del conjunto de datos y puede ser fácilmente desviado por características irrelevantes en comparación con otros modelos.

Resumen de K-Nearest Neighbors (KNN)

K-Nearest Neighbors es uno de los algoritmos de aprendizaje automático más simples. A pesar de lo simple que es KNN en concepto, también es un algoritmo poderoso que da una precisión bastante alta en la mayoría de los problemas. Cuando uses KNN, asegúrate de experimentar con varios valores de K para encontrar el número que proporciona la mayor precisión.

Bloguero y programador con especialidades en Machine Learning y Deep Learning temas. Daniel espera ayudar a otros a utilizar el poder de la IA para el bien social.