Este algoritmo de aprendizaje automático es fácil y directo de entender. Puede resolver problemas de regresión y clasificación con los métodos de aprendizaje automático. Para entender el concepto de vecino más cercano, primero debes saber cómo funciona una técnica de aprendizaje automático supervisado. En el aprendizaje supervisado, usted proporciona al modelo datos etiquetados. La máquina entonces analiza los datos etiquetados y conduce una salida adecuada.
Por ejemplo, cuando los niños son pequeños, necesitan supervisión para entender la diferencia entre los diferentes colores, animales, alfabetos, etc. Se etiquetan todos los artículos para que puedan identificarlos rápidamente. Así es como funciona el aprendizaje automático supervisado. Este aprendizaje ayuda a resolver los problemas de clasificación. En este tipo de problemas, se predice el valor de los datos de entrada, y luego el algoritmo ordena los valores en diferentes clases en función del peso de las funciones y sus características de entrada.

Vecinos de K-Nearest


Para resolver la regresión y la clasificación, puede utilizar este algoritmo para el método de aprendizaje supervisado de la máquina. KNN no incluye ninguna fase de aprendizaje. No calculan el método predictivo como la regresión lineal o logística. Este algoritmo encuentra las similitudes entre las variables. Miden cuán cerca o lejos están las variables en base a los datos dados. En palabras simples, este algoritmo piensa que cuanto más cerca están las cosas entre sí, más similares son.

Cómo funciona el algoritmo KNN


Es necesario seguir el siguiente método para implementar el Algoritmo del Vecino Más Cercano (para Python) correctamente:

Cargar la entrada o los datos en la máquina a partir del conjunto de datos

Modificar el valor de K de las variables

Calcular la distancia de las variables con respecto a cada ejemplo de los datos.

Ahora agregue la distancia en forma ordenada

Ahora ordena la colección ordenada en orden ascendente basado en su distancia.

Escoge la K de la colección

Ahora encuentra las etiquetas de ese valor K

Si se trata de una regresión, tienes que devolver la media de la etiqueta “K”.

Si es la clasificación, entonces necesitas devolver el modo de la etiqueta “K”.


La implementación de la codificación en


de las colecciones importCounter
matemáticas de importación defknn(datos, consulta, k, distancia_fn, elección_fn):
distancias_vecinas_y_indices = []
3. Para cada ejemplo en los datos para el índice, por ejemplo inenumerar(datos):
3.1 Calcular la distancia entre el ejemplo de la consulta y la corriente ejemplo de los datos. distancia =distance_fn(ejemplo[:-1], consulta)
3.2 Sume la distancia y el índice del ejemplo a una colección ordenada neighbor_distances_and_indices.append((distancia, índice))
4. Ordena la colección ordenada de distancias e índices de de menor a mayor (en orden ascendente) por las distancias sorted_neighbor_distances_and_indices =sorted(neighbor_distances_and_indices)
5. Elija las primeras entradas K de la colección clasificada k_nearest_distances_and_indices = sorted_neighbor_distances_and_indices[:k]
6. Obtener las etiquetas de las entradas K seleccionadas k_nearest_labels = [data[i][1] for distance, i in k_nearest_distances_and_indices]
7. Si la regresión (choice_fn = media), devuelve la media de las etiquetas K
8. Si la clasificación (choice_fn = modo), devuelve el modo de las etiquetas K return k_nearest_distances_and_indices , choice_fn(k_nearest_labels) defmean(etiquetas):
returnsum(etiquetas) /len(etiquetas) defmode(etiquetas):
returnCounter(labels).most_common(1)[0][0] defeuclidean_distance(punto1, punto2):
distancia_cuadrada_suma =0
para i inrange(len(punto1)):
distancia_suma_cuadrada += matemáticas.pow(punto1[i] – punto2[i], 2)
devuelve math.sqrt(suma_distancia_cuadrada) defmain():
”’
# Datos de regresión
#
# Columna 0: altura (pulgadas)
# Columna 1: peso (libras)
”’
reg_data = [
[65.75, 112.99],
[71.52, 136.49],
[69.40, 153.03],
[68.22, 142.34],
[67.79, 144.30],
[68.70, 123.30],
[69.80, 141.49],
[70.01, 136.46],
[67.90, 112.37],
[66.49, 127.45],
] Pregunta: Dados los datos que tenemos, ¿cuál es la mejor estimación del peso de alguien si mide 60 pulgadas? reg_query = [60] reg_k_nearest_neighbors, reg_prediction =knn( reg_data, reg_query, k=3, distance_fn=euclidean_distance, choice_fn=mean ) ”’
# Datos de clasificación
#
# Columna 0: edad
# Columna 1: le gusta la piña
”’
clf_data = [
[22, 1],
[23, 1],
[21, 1],
[18, 1],
[19, 1],
[25, 0],
[27, 0],
[29, 0],
[31, 0],
[45, 0],
] Pregunta: Dados los datos que tenemos, ¿caben los M&M no especificados en el conjunto de M&M rojos o verdes? clf_query = [33] clf_k_nearest_neighbors, clf_prediction =knn( clf_data, clf_query, k=3, distance_fn=euclidean_distance, choice_fn=mode ) si nombre ==’main‘:
principal()

Entendiendo con el ejemplo


Ahora entendamos los pasos anteriores con palabras fáciles. Imagina que hay M&Ms verdes y rojos en un plato. Aquí, encontrarás otro M&M del que no conoces la clase. Para encontrar la clase, necesitas establecer un valor de K. Digamos que en esta condición K = 4. Ahora dibujarás un círculo alrededor de los M&M no identificados de manera que el centro del círculo sea el propio M&M, y sólo los otros cuatro M&M estén en el círculo. Ahora comprobaremos qué clase de M&Ms tiene el círculo más. Digamos que si hubiera cuatro M&M rojos, entonces consideraremos a los M&M no identificados como una clase roja.


Cuándo puedes usar el algoritmo KNN?


Puedes usar el Algoritmo K-Nearest Neighbor para resolver el problema de regresión o clasificación. Muchas industrias usan este sistema de aprendizaje supervisado de máquinas para problemas de clasificación. Aquí hay tres factores importantes para evaluar cualquier técnica:

¿Qué tan fácil puedes interpretar la salida?

¿Cómo puedes calcular la salida?

¿Cuál es el poder de predicción?
KNN es perfecto para todos los parámetros anteriores para medir una técnica. Sin embargo, la técnica KNN tiene aplicaciones frecuentes porque es fácil de interpretar y calcular el tiempo de salida.


Cómo se puede elegir el valor K?


Para encontrar el mejor valor de K, necesitamos ejecutar el algoritmo muchas veces y comprobar qué número reduce los errores y aún así mantener la capacidad del algoritmo y hacer predicciones. Estas son algunas de las cosas que debes tener en cuenta:

Lo primero que no debes hacer es seleccionar uno como valor K. Cuando seleccionas uno como valor K, obtenemos predicciones inestables. Por ejemplo, si necesitamos encontrar la clase de un M&M que está completamente rodeado de M&M rojos pero sólo un M&M verde está cerca del M&M no identificado. En esta condición, pensaremos que el punto de consulta es verde, por lo que nuestra predicción será errónea.

Cuando aumentemos el valor de K, veremos que la predicción se estabilizará debido a la mayoría de los votantes. Sin embargo, cuando encontremos más errores, nos alejaremos demasiado del valor K.

Cuando hay un empate entre las predicciones, tenemos que elegir el número impar.
La elección del valor K depende del conjunto de datos que se intente utilizar. Sin embargo, debes saber que cuantos más vecinos sumemos, más precisos serán los resultados que obtengamos.


Conclusión


En este artículo, intentamos proporcionar un concepto básico y fácil de entender del Algoritmo del Vecino Más Cercano. Aprendimos que KNN ayuda a predecir la clasificación con el conjunto de datos dado. Este es un método fácil y rápido para el cálculo.