Algoritmo de vecinos más cercanos K en R [Guía definitiva con ejemplos]

Publicado: 2020-03-20

El algoritmo KNN en R es bastante popular debido a su versatilidad y funcionalidad. Entonces, debe haber oído hablar de su nombre de vez en cuando si está estudiando aprendizaje automático. Y debe haberse preguntado, "¿Qué es KNN en R?" ¿O cómo funciona?".

En este artículo, encontraremos respuestas a estas mismas preguntas y lo ayudaremos a comprender este tema a fondo. Entonces, sin más preámbulos, profundicemos.

Tabla de contenido

¿Qué es el algoritmo KNN?

KNN significa K vecino más cercano. Es un algoritmo de aprendizaje automático supervisado que clasifica los puntos de datos en clases objetivo según las características de los puntos de datos adyacentes a los puntos.

Suponga que desea que su máquina identifique las imágenes de manzanas y naranjas y las distinga. Para hacer eso, deberá ingresar un conjunto de datos de imágenes de manzana y naranja. Luego, tendrá que entrenar su modelo de datos permitiéndole detectar cada fruta a través de sus características únicas. Por ejemplo, podría reconocer manzanas por su color rojo y naranjas por su color.

Una vez que haya entrenado su modelo de datos, puede probarlo dándole un nuevo conjunto de datos con otras imágenes de manzanas y naranjas. Ahora, el algoritmo KNN separará manzanas y naranjas clasificándolas de acuerdo con las características que detectó en el modelo de entrenamiento.

Compararía las características de un punto de datos con sus vecinos para ver qué tan similares son. Y los clasificará de acuerdo con esos hallazgos.

En muchos casos, trazarás los puntos en un gráfico. Y para calcular la distancia entre dos puntos, necesitarás usar fórmulas diferentes. El método más común para calcular la distancia entre dos puntos de datos es la distancia euclidiana. Calcula la distancia independientemente de las propiedades o atributos presentes en los puntos.

Características del algoritmo KNN

Las siguientes son las características del algoritmo KNN en R:

  • Es un algoritmo de aprendizaje supervisado. Esto significa que utiliza datos de entrada etiquetados para hacer predicciones sobre la salida de los datos.
  • Es un algoritmo de aprendizaje automático sencillo.
  • Puede usar el algoritmo KNN para múltiples tipos de problemas
  • Es un modelo no paramétrico. Esto significa que no hace suposiciones sobre los datos, lo que lo hace bastante útil para resolver problemas relacionados con datos reales.
  • Clasifica los datos comparando puntos de datos con sus vecinos. En palabras simples, el funcionamiento del algoritmo KNN se basa en la similitud de los atributos.
  • Cae en la categoría de algoritmos perezosos. Un algoritmo perezoso memoriza los datos de entrenamiento en lugar de aprender la función discriminatoria de los mismos. Obtenga más información sobre los tipos de algoritmos de aprendizaje automático.
  • Puede usar KNN para resolver problemas de regresión y clasificación.

El algoritmo KNN es imparcial y, debido a las características que discutimos anteriormente, es la opción preferida para muchos problemas. Sin embargo, todo tiene sus problemas y KNN no es una excepción.

Este algoritmo no es útil para resolver problemas demasiado complejos. Su modelo tampoco tiene un proceso de abstracción. Para un modelo adecuado, necesitará datos de alta calidad, ya que a veces puede perder información valiosa porque es un algoritmo perezoso. Es rápido, pero deberá dedicar una cantidad considerable de tiempo a la limpieza de datos.

¿Como funciona?

Para entender cómo funciona KNN en R, veremos otro ejemplo.

Suponga que su conjunto de datos tiene dos clases. La Clase 1 tiene rectángulos, mientras que la Clase 2 tiene círculos. Debe asignar el nuevo punto de datos que ingresa a una de estas dos clases usando este algoritmo. Para hacer esto, primero deberá definir el valor de 'K' para su algoritmo. K denota el número de puntos vecinos más cercanos que considerará el algoritmo.

Considere que ingresa K como 4 en este ejemplo. Y para K = 4, los vecinos son tres círculos y un rectángulo. En este caso, clasificará el punto de datos en la Clase 2 porque la cantidad de círculos que rodean el punto es mayor que la de los rectángulos.

Si los vecinos fueran tres rectángulos y un círculo, lo habría clasificado en la Clase 1. Ya hemos discutido cómo el algoritmo KNN calcula la distancia entre dos puntos para determinar quién es el vecino más cercano. Utiliza la fórmula de la distancia euclidiana para este propósito.

La fórmula para la distancia euclidiana es la siguiente:

d(p,q) = d(q,p) = ( q 1 p 1 ) 2 +( q 2 p 2 ) 2 … ( q n p n ) 2

Aquí, p = (p1, p2, p3, …. pn) y q = (q1, q2, q3, … qn). En esta ecuación, 'd' denota la distancia euclidiana entre los puntos p y q.

Como puedes ver, es bastante simple. Y su sencillez lo hace muy versátil, por lo que es uno de los algoritmos más populares. Puedes usarlo para una variedad de problemas.

Ejemplo de KNN en R

Quizás se pregunte dónde vemos las aplicaciones de los algoritmos KNN en la vida real. Para eso, tienes que mirar a Amazon.

El gran éxito de Amazon depende de muchos factores, pero uno de los más destacados es el uso de tecnologías avanzadas. Una de esas tecnologías es el aprendizaje automático. Su sistema de recomendación les ha ayudado a generar cientos de millones de ingresos. Y este sistema de recomendación utiliza el algoritmo KNN para este propósito.

Lea también: Ideas de proyectos de aprendizaje automático

Supongamos que compras unos jeans negros de Wrangler con una chaqueta de cuero en Amazon. Unas semanas más tarde, otra persona compra los mismos jeans en Amazon pero no compra esa chaqueta de cuero. Amazon recomendará a esta persona que compre la chaqueta ya que mostró un patrón de compra similar al tuyo.

Entonces, el sistema de recomendación de Amazon funciona en función de los patrones de compra de las personas. Y para comprender esta similitud, puede usar el algoritmo KNN ya que se basa en este principio. Ahora conoce los conceptos básicos de este algoritmo, así como su aplicación en el mundo real. Hay muchos otros ejemplos de su uso, pero por ahora, limitémonos a este.

Aprenda cursos de ciencia de datos de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Pensamientos concluyentes

El algoritmo KNN en R tiene muchos usos. Y después de leer este artículo, estamos seguros de que está familiarizado con este algoritmo. Si desea obtener más información sobre dichos algoritmos de aprendizaje automático, debería echar un vistazo a nuestro Curso de aprendizaje automático detallado .

Aprenderá mucho sobre el aprendizaje automático y los diversos algoritmos utilizados en él, además de sus otros aspectos.

¿Para qué se utiliza el lenguaje de programación R?

El lenguaje de programación R fue creado para cálculos que involucran estadísticas y visualización de datos. Hoy en día, R es ampliamente utilizado por estadísticos, científicos de datos, analistas de datos y de negocios. El núcleo de R viene con muchas funcionalidades estadísticas integradas, por lo que no se requieren bibliotecas de terceros para gran parte del análisis de datos básicos que R puede lograr. A diferencia de muchos otros lenguajes de programación de computadoras, R no es un lenguaje de propósito general. Por lo tanto, se emplea esencialmente para lograr funcionalidades específicas que hace excepcionalmente bien. Sin embargo, las empresas de todas las industrias utilizan ampliamente R para obtener información útil de volúmenes masivos de datos diarios generados por los usuarios.

¿Cuáles son las ventajas de programar con R?

El lenguaje de programación R ofrece varias ventajas tanto para los programadores novatos como para los expertos. Sus principales beneficios incluyen las características y la facilidad que proporciona para construir modelos computacionales estadísticos. A continuación, R es un lenguaje de programación de código abierto que admite computación distribuida en paralelo. Cualquiera puede usarlo sin tener que adquirir licencias o tarifas de uso. Además, viene con una biblioteca masiva para admitir varias funcionalidades, y su marco independiente de plataforma también se suma a la conveniencia. R también se puede usar para funciones efectivas de limpieza de datos, raspado web y disputa de datos y se usa popularmente para desarrollar modelos de aprendizaje automático.

¿Por qué el KNN se llama Algoritmo de aprendizaje perezoso?

El algoritmo K-Nearest Neighbors es uno de los algoritmos más simples utilizados en el aprendizaje automático. Sin embargo, a menudo se le llama el aprendiz perezoso. La razón de esto es que cuando proporciona todos los datos relacionados con el entrenamiento a este algoritmo, no funciona para entrenarse a sí mismo. En lugar de aprender funciones discriminatorias, memorizó todo el conjunto de datos de entrenamiento. Con cada adición de un nuevo punto de datos, este algoritmo busca sus vecinos más cercanos en todo el conjunto de entrenamiento, lo que invariablemente aumenta el tiempo que lleva hacer predicciones. Esto a menudo hace que sea computacionalmente costoso y consuma mucho tiempo.