En el aprendizaje automático y la inteligencia artificial, la clasificación de datos es un proceso fundamental. El objetivo es asignar etiquetas a puntos de datos en función de sus características. Esto implica analizar datos conocidos (datos de formación) en los que cada ejemplo se etiqueta con una categoría o valor. Las etiquetas ayudan a establecer patrones y relaciones dentro de los datos, lo que hace posible que el modelo haga predicciones precisas sobre puntos de datos nuevos no vistos. Desafortunadamente, trabajar con datos etiquetados presenta sus propios problemas: los procesos manuales involucrados en el etiquetado de datos pueden llevar mucho tiempo y ser difíciles, y la inversión en recursos puede hacer que esto no sea una opción para algunas organizaciones.
El algoritmo del vecino más cercano (KNN) ofrece una solución directa y eficiente a este problema. En lugar de requerir cálculos complejos por adelantado, KNN funciona almacenando todos los datos y luego haciendo predicciones para nuevos datos, en función con su similitud con los datos existentes. Este enfoque permite a KNN hacer predicciones precisas sin necesidad de ajustes exhaustivos, un enfoque particularmente útil cuando se trabaja con conjuntos de datos más pequeños y una potencia informática limitada.
Los vectores son parte integral de la funcionalidad del algoritmo del vecino más cercano. 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 estas representaciones numéricas, conocidas como incrustaciones. Las incrustaciones capturan la esencia semántica o estructural de los datos de entrada, con las relaciones entre las incrustaciones representadas como su proximidad espacial (cuán cerca o lejos están unas de otras) en el espacio vectorial.
KNN utiliza esta disposición espacial al identificar a los “vecinos” de un punto de consulta: otras incrustaciones colocadas cerca dentro del espacio multidimensional. Estos vecinos reflejan puntos de datos con características compartidas o similares.
Por ejemplo, dos documentos con temas similares tendrán incrustaciones más cercanas, lo que permitirá a KNN reconocer las similitudes y asociaciones para que pueda clasificar nuevos datos o predecir resultados en función de estas relaciones.
El algoritmo del vecino más cercano funciona mediante el uso de vectores para identificar los “k” (puntos de datos o vecinos más cercanos) a un nuevo punto de datos y hacer predicciones basadas en estos vecinos. Por ejemplo, si el objetivo es clasificar los correos electrónicos como spam o no spam, KNN analizaría los correos electrónicos “k” más similares y clasificaría el nuevo correo electrónico en función de la clasificación mayoritaria de estos vecinos.
Alternativamente, imagina que una organización tiene datos de varios clientes, con características como la edad, los intereses y el historial de compras. KNN puede agrupar a estos clientes en categorías como compradores frecuentes, compradores ocasionales y visitantes de tiendas comparando sus características. Si un nuevo cliente visita el sitio web, KNN puede predecir su comportamiento de compra evaluando a qué grupo se parece más.
La adaptabilidad del algoritmo se extiende aún más cuando se utiliza con conjuntos de datos multimodales. Aquí, la información se combina de varias fuentes a la vez, como texto, imágenes o audio. KNN puede analizar estas incrustaciones en un espacio vectorial compartido, identificando similitudes entre distintas modalidades. La aplicación de KNN a los datos multimodales le permite encontrar al vecino más similar, independientemente de los tipos de datos. Esto convierte a KNN en un algoritmo versátil para manejar escenarios de datos cada vez más complejos y diversos.
- Reconocimiento de patrones
KNN se utiliza ampliamente en tareas de reconocimiento de patrones, como el reconocimiento de 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 rostros en función de la similitud con patrones conocidos.
- Procesamiento de datos
KNN es eficaz en el preprocesamiento de datos, como la imputación de valores faltantes o la detección de valores atípicos. Mediante el análisis de los vecinos más cercanos, KNN puede estimar los valores faltantes en función de los puntos de datos más similares, lo que mejora la calidad y la coherencia de los datos.
- Motores de recomendaciones
KNN ayuda a desarrollar sistemas de recomendaciones mediante el análisis del comportamiento y las preferencias de los usuarios. Al encontrar usuarios con intereses similares, KNN puede sugerir productos, películas o contenido que a otros con perfiles similares les hayan gustado, lo que mejora la experiencia y el compromiso del usuario.
- 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 imágenes con las de las descripciones textuales, KNN permite que los sistemas de IA realicen tareas complejas, como el subtitulado automatizado, donde las coincidencias más cercanas proporcionan texto contextualmente apropiado para una imagen determinada.
En cada enfoque enumerado anteriormente, 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. Las métricas de distancia en KNN miden la similitud entre los puntos de datos, lo que es crucial para las predicciones precisas. Estas métricas determinan cómo el algoritmo calcula la “cercanía” de los puntos de datos para clasificar o predecir los nuevos puntos de datos de manera eficaz.
La distancia euclidiana es la métrica más común utilizada en KNN, la cual 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 se considerará que son los puntos. Por ejemplo, al comparar la altura y el peso de diferentes individuos, la distancia euclidiana ayudaría a determinar qué individuos son más similares en función de estas dos características, que están separadas por la distancia euclidiana más corta.
La distancia de Manhattan mide las diferencias absolutas entre los puntos a lo largo de cada dimensión, como navegar por una cuadrícula de calles de la ciudad. Imagina una cuadrícula de la ciudad donde el movimiento solo puede progresar a lo largo de las calles (en lugar de diagonalmente a través de los edificios). Esta métrica es útil cuando los puntos de datos se estructuran en un patrón similar a una cuadrícula, como la comparación de rutas de entrega o escenarios de planificación urbana.
La distancia de Minkowski es una generalización de las distancias euclidiana y de Manhattan. Al ajustar un parámetro “p”, puede comportarse como cualquier métrica. Piensa en la distancia de Minkowski como una herramienta flexible que puede adaptarse a diferentes escenarios en función de las necesidades específicas del análisis de datos. Por ejemplo, si alguien comparara propiedades con diferentes dimensiones (como el precio, el área y el número de habitaciones), ajustar el valor “p” ayudaría a enfatizar ciertas dimensiones sobre otras, lo que la convertiría en una métrica versátil para diversos tipos de comparaciones de datos.
Si no se define el valor correcto para “k”, el algoritmo KNN no funcionará como se esperaba. Elegir un valor demasiado pequeño de “k” puede hacer que las predicciones sean demasiado sensibles al ruido en los datos, lo que lleva a una alta varianza y predicciones menos estables. Por otro lado, un valor demasiado grande puede suavizar las predicciones, pero puede hacer que el modelo sea demasiado generalizado, de modo que no tenga patrones específicos.
Para encontrar el valor óptimo para “k”, los profesionales suelen utilizar la validación cruzada (una técnica en la que el conjunto de datos se divide en conjuntos de formación y validación varias veces para probar diferentes valores “k”). Esto ayuda a identificar un “k” que minimiza los errores de predicción, al mismo tiempo que mantiene la competencia de generalización del algoritmo.
Este proceso puede implicar algo de ensayo y error. Encontrar el “k” correcto implica probar varios valores para garantizar que el modelo funcione bien tanto en los datos vistos como en los no vistos, lo que permite lograr el equilibrio óptimo de estabilidad y especificidad.
Establecer conexiones, similitudes y relaciones entre puntos de datos es el propósito general del algoritmo del vecino más cercano. Lo que ayuda a que este modelo sea una opción tan popular para las organizaciones es el conjunto adicional de ventajas que aporta a la mesa. Estos son algunos beneficios de KNN:
KNN es fácil de implementar y comprender, incluso para principiantes en el aprendizaje automático. No requiere una fase de formación compleja; en su lugar, memoriza el conjunto de datos de formación y lo utiliza directamente para hacer predicciones.
Ya sea que se utilice para tareas de clasificación o regresión, KNN puede manejar las diversas estructuras y relaciones de datos necesarias para agrupar los puntos de datos. Esta flexibilidad permite que se aplique en varios dominios: finanzas, atención médica, comercio electrónico y más.
KNN requiere solo unos pocos hiperparámetros, principalmente el valor de “k” y la métrica de distancia. Esto reduce la complejidad involucrada en el ajuste de modelos en comparación con otros algoritmos que pueden requerir una amplia optimización de parámetros. Como resultado, simplifica el proceso general de desarrollo del modelo y facilita el logro de un rendimiento superior con ajustes mínimos.
Si bien el algoritmo KNN ofrece varias ventajas, también presenta ciertas debilidades notables. A continuación, se brindan algunos ejemplos:
La alta dimensionalidad se refiere al aumento exponencial de los datos necesarios para mantener el mismo nivel de rendimiento a medida que crece el número de características (o dimensiones). En espacios de alta dimensión, la distancia entre los puntos de datos se vuelve menos significativa, lo que dificulta que KNN identifique a los vecinos verdaderamente “más cercanos”. Este problema puede reducir significativamente la precisión y eficacia del algoritmo en conjuntos de datos con muchas características.
KNN puede verse afectado negativamente por el ruido y los valores atípicos en el conjunto de datos, especialmente cuando el valor de “k” es pequeño. Esta sensibilidad puede llevar a un sobreajuste, en el que el algoritmo captura el ruido y las anomalías como si fueran patrones verdaderos. El sobreajuste da como resultado una generalización deficiente de datos nuevos y nunca vistos, lo que reduce el rendimiento predictivo del modelo.
La complejidad computacional crece con el tamaño del conjunto de datos, lo que hace que KNN sea ineficiente para conjuntos de datos demasiado grandes. Cada predicción requiere calcular la distancia entre el nuevo punto de datos y todos los puntos existentes en el conjunto de formación, lo que lleva a un gran uso de memoria y tiempos de cálculo prolongados. Esta falta de escalabilidad limita la aplicabilidad de KNN en escenarios con grandes volúmenes de datos.
Como se indicó anteriormente, el algoritmo KNN clasifica los puntos de datos en función de su proximidad a otros puntos de datos en el conjunto de datos. Para ello, el algoritmo debe seguir un conjunto específico de pasos:
1. Elige el número de vecinos (k)
Define el valor de “k” a considerar al hacer la clasificación o regresión. Este valor influirá en la forma en que el algoritmo evalúa la similitud entre los puntos de datos.
2. Calcula la distancia
Para cada punto de datos del conjunto de formación, calcula la distancia entre este y el nuevo punto de datos utilizando una de las métricas de distancia estándar (distancia euclidea, de Manhattan o de Minkowski). Esta medición de distancia ayuda a identificar lo que se debe considerar como los vecinos más cercanos al nuevo punto de datos.
3. Identifica a los vecinos más cercanos
Ordena las distancias calculadas en el paso 2 y determina los vecinos “k” más cercanos. Estos vecinos son los puntos de datos más cercanos al nuevo punto de datos en función de la métrica de distancia elegida.
4. Haz una predicción
Para las tareas de clasificación, asigna el nuevo punto de datos a la clase que es más común entre sus vecinos “k” más cercanos. Para las tareas de regresión, calcula el valor promedio o medio de los vecinos “k” más cercanos y usa este valor como predicción para el nuevo punto de datos.
5. Evalúa el modelo
Evalúa la precisión y el rendimiento del modelo 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.
Existen varios métodos para realizar el algoritmo del vecino más cercano (KNN), 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 fuerza bruta calcula la distancia entre el punto de consulta y todos los demás puntos del conjunto de datos. Es simple pero computacionalmente costoso, lo que lo hace más adecuado para conjuntos de datos pequeños.
- Árbol k-dimensional (árbol k-d)
Un árbol k-d organiza puntos en un espacio k-dimensional dividiendo recursivamente el espacio en hiperrectángulos. Reduce los cálculos de distancia y acelera las búsquedas KNN para datos de dimensiones moderadamente altas.
- Árbol de bolas
Un árbol de bolas divide el espacio en hiperesferas anidadas, lo que permite búsquedas eficientes de vecinos más cercanos al eliminar porciones irrelevantes del conjunto de datos. Es particularmente efectivo para datos de alta dimensión y, a menudo, supera a los árboles k-d en estos escenarios.
El algoritmo del vecino más cercano es invaluable por su capacidad para clasificar puntos de datos y cuantificar relaciones para sistemas de IA. ServiceNow, líder en soluciones de TI empresariales, integra la IA avanzada y KNN, lo que proporciona herramientas potentes para la transformación digital. La galardonada plataforma Now Platform® de ServiceNow aprovecha la IA y el aprendizaje automático para automatizar, optimizar y modernizar los flujos de trabajo en toda la gama de funciones empresariales, lo que permite una optimización inteligente en toda la empresa.
Al integrar 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 optimizar la eficiencia del enfoque empresarial. Experimenta el poder transformador de la IA y Now Platform; demuestra ServiceNow hoy mismo.