Introducción al algoritmo KNN

El algoritmo de K Nearest Neighbour, conocido prominentemente como KNN, es el algoritmo básico para el aprendizaje automático. Comprender este algoritmo es un muy buen lugar para comenzar a aprender el aprendizaje automático, ya que la lógica detrás de este algoritmo se incorpora en muchos otros modelos de aprendizaje automático. El algoritmo de K Nearest Neighbour viene bajo la parte de clasificación en aprendizaje supervisado.

¿Qué es el aprendizaje supervisado?

El algoritmo de aprendizaje supervisado es un tipo de algoritmo en el que se basa en la entrada etiquetada para aprender y predice en función de la función cuando se proporcionan datos no etiquetados. Como hemos entendido qué es el aprendizaje supervisado, veamos qué es la clasificación, el algoritmo de clasificación proporciona un valor discreto como salida, no valores continuos.

¿Cómo funciona el algoritmo KNN?

K Nearest Neighbours es un algoritmo básico que almacena todos los datos disponibles y predice la clasificación de datos no etiquetados en función de una medida de similitud. En geometría lineal cuando se trazan dos parámetros en el sistema cartesiano 2D, identificamos la medida de similitud calculando la distancia entre los puntos. Lo mismo se aplica aquí, el algoritmo KNN funciona bajo el supuesto de que existen cosas similares en las proximidades, simplemente podemos poner las mismas cosas cerca una de la otra.

Ejemplo: si tenemos un conjunto de datos cuando se traza se ve así, para clasificar estos puntos de datos El algoritmo de Vecinos más cercanos identificará primero la distancia entre puntos y verá si son similares o no.

En Geometría de acuerdo con Euclidiana, la función de distancia se puede calcular mediante la siguiente ecuación:

Si K = 1, entonces el caso simplemente se asigna a una clase de su vecino más cercano (Usamos "1" en casi cualquiera de las situaciones en matemáticas, podemos alterar el valor de K mientras entrenamos los modelos en aprendizaje automático y lo haremos Discuta esto más adelante en el artículo) X e Y son los valores en los ejes de coordenadas.

Si nos damos cuenta aquí, todas las medidas de distancia que estamos obteniendo serán variables continuas, pero necesitamos valores discretos mientras hacemos la clasificación, así que tenemos que usar la distancia de Hamming para lograr esto.

Esta ecuación también nos trae la estandarización de valores numéricos entre 0 y 1 cuando hay una mezcla de valores numéricos y categóricos en el conjunto de datos.

X Y Distancia
Con cáncer Con cáncer X = Y → D = 0
Sin cáncer Sin cáncer X! = Y → D = 1

De esta manera, el algoritmo funciona y ahora, profundicemos en cómo elegimos el valor de K en KNN.

Elección del valor K en el algoritmo KNN

Antes de ver cuáles son los factores a considerar al elegir el valor K, debemos entender cómo influye el valor de K en el algoritmo.

Estas son las gráficas del mismo conjunto de datos con valores K variables, el valor K es 1 para la gráfica en la esquina superior izquierda y la más alta para la gráfica en la esquina inferior derecha. Si examinamos cuidadosamente, podemos entender que el límite del algoritmo de clasificación se suaviza a medida que aumenta el valor de K. Ese es el valor de K es directamente proporcional a la suavidad del límite. Entonces, a partir de esto, podemos entender que si el valor de K se establece en 1, entonces el modelo de entrenamiento sobreajustará los datos y si el valor de K se establece en un gran número, entonces los datos serán insuficientes. Para elegir un valor óptimo de K necesitamos verificar el error de validación con múltiples valores de K y elegir uno con el error mínimo.

Pasos para implementar el algoritmo KNN en Python

Hasta ahora, hemos aprendido que la parte teórica del algoritmo del vecino más cercano de K ahora nos permite ver prácticamente aprendiendo cómo implementar en Python.

Paso 1: Importar bibliotecas

A continuación, veremos Importar las bibliotecas que necesitamos para ejecutar KNN.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Paso 2: Importar conjunto de datos

Aquí, veremos el conjunto de datos que se importa.

file = "/path/to/the/dataset"
#Push dataset into Pandas dataframe
dataset = pd.read_csv(file)

Paso 3: dividir el conjunto de datos

El siguiente paso es dividir nuestro conjunto de datos en prueba y división de trenes.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)

Nota: El conjunto de datos que estoy usando para demostrar se ha procesado previamente con la definición de los valores X e Y. Si esto no se hace primero, debe hacerse, porque mientras se entrena el modelo de clasificación, tenemos que pasar los datos etiquetados para calcular las distancias.

Paso 4: modelo de entrenamiento

Ahora en este paso, veremos un modelo de entrenamiento.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=3)
classifier.fit(X_train, y_train)

Nota: Aquí estamos usando el clasificador de vecinos K importado de la biblioteca del módulo sklearn.neighbours.

Paso 5: ejecutar predicciones

Ejecución de predicciones en los datos divididos de prueba.

y_pred = classifier.predict(X_test)

Paso 6: Verificación de Validación

El siguiente paso es evaluar el algoritmo y verificar el error de validación, ejecutar nuevamente con un valor K diferente y considerar el valor k donde obtenemos el error mínimo de validación. Así es como podemos implementar prácticamente el clasificador de Vecinos más cercanos K, hay varias formas de implementar este algoritmo, esta es solo una de ellas y en este artículo, describí muy brevemente los pasos, ya que nuestra agenda principal es entender cómo funciona el algoritmo.

Conclusión

Como se dijo anteriormente, el algoritmo K Vecinos más cercanos es uno de los algoritmos más simples y fáciles de usar utilizados para la clasificación. Según su funcionamiento, también se incluye en el "Algoritmo de aprendizaje diferido". En general, el valor K que todos pasan mientras entrena el modelo es un número impar, pero eso no es una obligación. Sin embargo, hay pocas desventajas también mientras se usa KNN, pocas de ellas son

  • No va bien con los datos categóricos, porque no podemos encontrar la distancia entre dos características categóricas.
  • Tampoco funciona bien con datos de alta dimensión, ya que será difícil para el algoritmo calcular la distancia en cada dimensión.

Si vemos actualmente que la mayoría de los casos de uso en Machine Learning están rodeados por el algoritmo de clasificación en el nivel básico, así es como KNN está jugando un papel importante en el mundo del aprendizaje automático.

Artículos recomendados

Esta es una guía del algoritmo KNN. Aquí discutimos la introducción y el funcionamiento del algoritmo K Nearest Neighbours con pasos para implementar el algoritmo kNN en python. También puede consultar los siguientes artículos para obtener más información.

  1. ¿Cómo funciona el algoritmo SVM?
  2. Algoritmo MD5 (ventajas y desventajas)
  3. K- Algoritmo de agrupamiento de medios
  4. Tipos de aprendizaje por refuerzo
  5. Guía completa de algoritmo C ++

Categoría: