En el aprendizaje automático y la inteligencia artificial, clasificar los datos es un proceso fundamental. Se trata de asignar etiquetas a los puntos de datos en función de sus características. Para ello, es necesario analizar datos conocidos (datos de entrenamiento), en los que cada ejemplo está etiquetado con una categoría o valor. Las etiquetas ayudan a establecer patrones y relaciones dentro de los datos, lo que permite que el modelo haga predicciones precisas sobre puntos de datos nuevos que no se habían visto. Lamentablemente, trabajar con datos etiquetados presenta sus propios problemas: los procesos manuales que implica el etiquetado de datos pueden llevar mucho tiempo y ser difíciles, y la inversión en recursos puede hacer que no sea una opción para algunas organizaciones.
El algoritmo k vecinos más cercanos (KNN) ofrece una solución sencilla y eficiente a este problema. En lugar de requerir cálculos complejos por adelantado, KNN funciona almacenando todos los datos y, a continuación, haciendo predicciones de nuevos datos en función de su similitud a los datos existentes. Esta estrategia permite a KNN hacer predicciones precisas sin necesidad de grandes ajustes, algo especialmente útil cuando se trabaja con conjuntos de datos más pequeños y con una potencia informática limitada.
Los vectores son fundamentales para la funcionalidad del algoritmo k vecinos más cercanos. Un vector es una secuencia de números que representa un punto en un espacio multidimensional. Los modelos de aprendizaje automático deben ser capaces de transformar datos sin procesar y no estructurados en representaciones numéricas de este tipo, conocidas como incrustaciones. Las incrustaciones capturan la esencia semántica o estructural de los datos de entrada, y las relaciones entre las incrustaciones se representan según su proximidad espacial (lo cerca o lejos que están entre sí) en el espacio vectorial.
KNN utiliza esta disposición espacial identificando los "vecinos" de un punto de consulta, otras incrustaciones colocadas cerca en el espacio multidimensional. Estos vecinos son puntos de datos con características compartidas o características similares.
Por ejemplo, dos documentos con temas similares tendrán incrustaciones más cercanas entre sí, lo que permitirá a KNN reconocer las similitudes y asociaciones para poder clasificar nuevos datos o predecir resultados basados en estas relaciones.
El algoritmo k vecinos más cercanos opera utilizando vectores para identificar los "k" (puntos de datos más cercanos o vecinos) a un nuevo punto de datos y haciendo predicciones basadas en esos vecinos. Por ejemplo, si el objetivo es clasificar los correos electrónicos como deseados o no deseados, el algoritmo KNN se fijaría en los "k" correos electrónicos más similares y clasificaría los nuevos según la calificación de la mayoría de esos correos vecinos.
Imagina una organización que tiene datos de distintos clientes, con características como la edad, los intereses y el historial de compras. El algoritmo KNN puede comparar sus características para dividirlos en categorías como compradores frecuentes, ocasionales y que solo miran. Si un nuevo cliente visita el sitio web, KNN puede predecir su comportamiento de compra evaluando a qué grupo se asemeja más.
La adaptabilidad del algoritmo es aún mayor cuando se utiliza con conjuntos de datos multimodales. En ese caso, se combina información de varias fuentes a la vez, como texto, imágenes o audio. KNN puede analizar esas incrustaciones en un espacio vectorial compartido e identificar similitudes entre distintas modalidades. Al aplicar KNN a datos multimodales, puede encontrar el vecino más similar independientemente del tipo de datos, lo que lo convierte en un algoritmo versátil para abordar datos cada vez más complejos y diversos.
- Reconocimiento de patrones
KNN se utiliza ampliamente en tareas de reconocimiento de patrones, por ejemplo, en imágenes y escritura a mano. Al comparar nuevas imágenes o muestras con un conjunto de datos etiquetado, KNN puede clasificar con precisión objetos, caracteres o caras en función de la similitud con patrones conocidos.
- Procesamiento de datos
KNN es eficaz en el procesamiento previo de datos, por ejemplo, a la hora de introducir valores que faltan o detectar valores atípicos. Mediante el análisis de los vecinos más cercanos, KNN puede estimar los valores que faltan basándose en los puntos de datos más similares, lo que mejora la calidad y la coherencia de los datos.
- Motores de recomendaciones
KNN ayuda a crear sistemas de recomendación analizando el comportamiento y las preferencias de los usuarios. Cuando encuentra usuarios con intereses similares, KNN puede sugerir productos, películas o contenido que les haya gustado a otros con perfiles parecidos, lo que mejora la experiencia y el interés de los usuarios.
- Transformación de imagen a texto
KNN se utiliza cada vez más en tareas de transformación de imagen a texto dentro de sistemas multimodales. Al comparar las incrustaciones de las imágenes con las de las descripciones textuales, KNN permite a los sistemas de IA hacer tareas complejas, como los títulos automáticos, una tarea para la cual las coincidencias más cercanas proporcionan texto que concuerda con el contexto de una determinada imagen.
En todos los casos anteriores, la precisión de las predicciones de KNN depende en gran medida de las métricas de distancia utilizadas para medir la similitud de los datos. En el algoritmo KNN, las métricas de distancia miden la similitud entre los puntos de datos, lo que es crucial para obtener predicciones precisas. Estas métricas determinan cómo calcula el algoritmo la "proximidad" entre los puntos de datos para clasificarlos o predecir nuevos puntos de datos de forma eficaz.
La distancia euclidiana es la métrica que más se usa en KNN. Calcula la distancia en línea recta entre dos puntos en el espacio euclidiano. Imagina usar un mapa y una regla para medir el camino más corto entre dos ubicaciones. Cuanto más corta sea la distancia, más similares serán los puntos. Por ejemplo, si quisiéramos comparar la altura y el peso de diferentes individuos, la distancia euclidiana ayudaría a determinar quiénes son más similares entre sí en base a estas dos características que los separan empleando la distancia más corta.
La distancia Manhattan mide la diferencia absoluta entre distintos puntos teniendo en cuenta todas las dimensiones, como si se estuviera recorriendo la cuadrícula del plano de una ciudad. Imagina un plano urbano en forma de cuadrícula en el que solo fuera posible desplazarse por las calles, no diagonalmente a través de los edificios. Esta métrica es útil cuando los puntos de datos están estructurados en un patrón tipo cuadrícula, por ejemplo, para comparar rutas de entrega o hacer proyectos de planificación urbana.
La distancia de Minkowski es una generalización de las distancias Manhattan y euclidiana. Al ajustar un parámetro "p", puede comportarse como cualquiera de las dos métricas. La distancia de Minkowski es como una herramienta flexible que puede adaptarse a diferentes situaciones según las necesidades específicas del análisis de datos. Por ejemplo, si alguien quisiera comparar propiedades con diferentes dimensiones (como precio, área y número de habitaciones), ajustar el valor "p" ayudaría a dar prioridad a unas dimensiones sobre otras, lo que hace que sea una métrica versátil para comparar diversos tipos de datos.
Si el valor de "k" no se define correctamente, el algoritmo KNN no funcionará como debe. En caso de escoger un valor demasiado pequeño, las predicciones serán demasiado sensibles al ruido de los datos, lo que llevará a una variación muy alta y a predicciones menos estables. Por otro lado, un valor demasiado grande puede estabilizar las predicciones, pero es posible que el modelo sea tan general que no se observen patrones específicos.
Para determinar el valor de "k" de manera óptima, los profesionales suelen utilizar la validación cruzada (una técnica en la que el conjunto de datos se divide en conjuntos de entrenamiento y validación varias veces para probar diferentes valores de "k"). Esto ayuda a identificar un valor que minimice los errores de predicción al tiempo que se mantiene la capacidad de generalización del algoritmo.
Este proceso puede conllevar cierto ensayo y error. Para encontrar el valor de "k" adecuado, es necesario probar varios valores para garantizar que el modelo funcione bien tanto con los datos vistos como con los no vistos, lo que permite lograr el equilibrio óptimo de estabilidad y especificidad.
El propósito general del algoritmo k vecinos más cercanos es establecer conexiones, similitudes y relaciones entre puntos de datos. Lo que ayuda a que este modelo sea una elección tan popular para las organizaciones es el conjunto adicional de ventajas que aporta. Estas son algunas de las ventajas del algoritmo KNN:
KNN es fácil de implementar y entender, incluso para principiantes en el aprendizaje automático. No requiere una fase de entrenamiento compleja, sino que memoriza el conjunto de datos de entrenamiento y lo usa directamente para hacer predicciones.
En tareas tanto de clasificación como de regresión, KNN puede abordar las distintas estructuras y relaciones de datos necesarias para agrupar los puntos de datos. Esta flexibilidad permite aplicarlo en distintos sectores, como las finanzas, la atención sanitaria, el comercio electrónico, etc.
KNN solo requiere unos pocos hiperparámetros, principalmente el valor de "k" y la métrica de distancia. Esto reduce la complejidad que implica el ajuste de modelos en comparación con otros algoritmos que pueden requerir una mayor optimización de los parámetros. Como resultado, simplifica el proceso general de desarrollo de modelos y ayuda a lograr un rendimiento superior con unos ajustes mínimos.
Aunque el algoritmo KNN ofrece varias ventajas, también presenta algunas debilidades notables. Entre estas limitaciones se incluyen las siguientes:
La dimensionalidad alta hace referencia al aumento exponencial de los datos necesarios para mantener el mismo nivel de rendimiento a medida que aumenta el número de características (o dimensiones). En los espacios de donde la dimensionalidad es alta, la distancia entre los puntos de datos se vuelve menos significativa, por lo que al algoritmo KNN le resulta más difícil identificar a los verdaderos vecinos más próximos. Este problema puede reducir significativamente la precisión y la eficacia del algoritmo en conjuntos de datos con muchas características.
El algoritmo KNN puede verse afectado negativamente por el ruido y los valores atípicos del conjunto de datos, especialmente cuando el valor de "k" es pequeño. Esta sensibilidad puede llevar al sobreajuste, lo que da lugar a que el algoritmo capture ruido y anomalías como si fueran patrones reales. El sobreajuste da lugar a una generalización deficiente de datos nuevos e invisibles, lo que reduce el rendimiento de las predicciones del modelo.
La complejidad computacional aumenta con el tamaño del conjunto de datos, lo que hace que KNN sea ineficaz si los conjuntos de datos son demasiado grandes. Cada predicción requiere calcular la distancia entre el nuevo punto de datos y todos los puntos existentes en el conjunto de entrenamiento, lo que conlleva un uso elevado de la memoria y tiempos de cálculo prolongados. Esta falta de escalabilidad limita la aplicabilidad de KNN en situaciones con grandes volúmenes de datos.
Como ya hemos mencionado, el algoritmo KNN clasifica los puntos de datos en función de su proximidad a otros puntos del conjunto de datos. Para ello, debe seguir una serie de pasos concreta:
1. Elegir el número de vecinos (k)
Define el valor de "k" que se debe tener en cuenta al hacer la clasificación o la regresión. Este valor influirá en cómo evaluará el algoritmo la similitud entre puntos de datos.
2. Calcular la distancia
Calcula la distancia entre cada punto de datos del conjunto de entrenamiento y los nuevos puntos de datos empleando una de las métricas de distancia estándar (euclidiana, Manhattan o de Minkowski). Medir esta distancia ayuda a identificar los elementos que deben considerarse los vecinos más cercanos al nuevo punto de datos.
3. Identificar los vecinos más cercanos
Ordena las distancias calculadas en el paso anterior y determina los "k" vecinos más cercanos. Esos vecinos son los puntos de datos más cercanos al nuevo punto de datos en función de la métrica de distancia seleccionada.
4. Hacer una predicción
Para las tareas de clasificación, asigna el nuevo punto de datos a la clase más común entre los "k" vecinos más cercanos. Para las tareas de regresión, calcula el valor promedio o mediano de los "k" vecinos más cercanos y utiliza ese valor como predicción para el nuevo punto de datos.
5. Evalúa el modelo
Evaluar la precisión y el rendimiento del modelo de KNN mediante técnicas de validación cruzada. Ajusta el valor de "k" y la métrica de distancia según sea necesario para optimizar las predicciones del modelo.
Hay varios métodos para emplear el algoritmo de los k vecinos más cercanos, cada uno con sus propias ventajas y aplicaciones adecuadas. Los siguientes métodos ayudan a optimizar el proceso de búsqueda de los vecinos más cercanos, lo que convierte a KNN en una opción eficiente para diferentes tipos de conjuntos de datos.
- Fuerza bruta
El método de la fuerza bruta calcula la distancia entre el punto de consulta y el resto de los puntos del conjunto de datos. Aunque es sencillo, resulta costoso desde el punto de vista informático, lo que lo hace más adecuado para conjuntos de datos pequeños
- Árbol kd
Un árbol k-dimensional (árbol kd) organiza los puntos en un espacio k-dimensional dividiendo recursivamente el espacio en hiperrectángulos. Reduce los cálculos de distancia y acelera las búsquedas de KNN para datos con una dimensionalidad moderadamente alta.
- Árbol de bolas
Un árbol de bolas divide el espacio en hiperesferas anidadas, lo que permite buscar los vecinos más cercanos de forma eficiente al eliminar partes irrelevantes del conjunto de datos. Es particularmente eficaz con los datos con muchas dimensiones y suele ofrecer mejores resultados con ellos que los árboles kd.
El algoritmo k vecinos más cercanos es muy útil por su capacidad de clasificar puntos de datos y cuantificar relaciones para sistemas de inteligencia artificial. ServiceNow, líder en soluciones de TI empresariales, integra la IA avanzada y el algoritmo KNN, lo que proporciona herramientas muy potentes para la transformación digital. La galardonada Now Platform de ServiceNow® aprovecha la IA y el aprendizaje automático para automatizar, optimizar y modernizar los flujos de trabajo de todas las funciones empresariales, lo que permite optimizar la empresa al completo de manera inteligente.
Gracias a la integración de KNN y otros algoritmos avanzados, ServiceNow permite a las organizaciones aprovechar la IA para mejorar la toma de decisiones, reducir los tiempos de respuesta y adoptar una estrategia empresarial más eficiente. Prueba hoy mismo la demostración de ServiceNow y experimenta la capacidad de transformación de la IA y Now Platform.