0% encontró este documento útil (0 votos)
48 vistas12 páginas

Introducción al algoritmo K-NN

Este documento describe el algoritmo K-NN (K vecinos más cercanos) para clasificación. Explica que K-NN es un algoritmo de aprendizaje supervisado y no paramétrico que clasifica nuevos ejemplos basándose en la clase de los K vecinos más cercanos en el espacio de características. También cubre conceptos como tipos de distancia, ventajas, desventajas y un ejemplo de implementación en Python usando datos de estatura y peso.

Cargado por

Asuka Kawaii
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
48 vistas12 páginas

Introducción al algoritmo K-NN

Este documento describe el algoritmo K-NN (K vecinos más cercanos) para clasificación. Explica que K-NN es un algoritmo de aprendizaje supervisado y no paramétrico que clasifica nuevos ejemplos basándose en la clase de los K vecinos más cercanos en el espacio de características. También cubre conceptos como tipos de distancia, ventajas, desventajas y un ejemplo de implementación en Python usando datos de estatura y peso.

Cargado por

Asuka Kawaii
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

FIA – 4BM1

ESCOM – IPN

PRÁCTICA 7: K-NN

Introducción

El algoritmo de las K vecinas más


cercanas o K-nearest neighbors (kNN)
es un algoritmo de Machine Learning
que pertenece a los algoritmos de
aprendizaje supervisado simples y
fáciles de aplicar que pueden ser utilizados para resolver problemas de
clasificación y de regresión.

Es un algoritmo no paramétrico. No paramétrico significa que el algoritmo no


hace suposiciones sobre la distribución de probabilidad de los datos de la
muestra.

El algoritmo k-nn toma su nombre del hecho de que usa información sobre los
k vecinos más cercanos de un ejemplo para clasificar ejemplos no etiquetados.
La letra k es un término variable que implica que se podría usar cualquier
número de vecinos más cercanos.

Si bien se puede usar para problemas de regresión o clasificación,


generalmente se usa como un algoritmo de clasificación, partiendo de la
suposición de que se pueden encontrar puntos similares cerca uno del otro.

Al igual que cualquier algoritmo de machine learning, k-NN tiene sus puntos
fuertes y débiles. Dependiendo del proyecto y la aplicación, puede o no ser la
elección correcta.

1
FIA – 4BM1
ESCOM – IPN

La lógica detrás del algoritmo de las K vecinas más cercanas es una de las más
sencillas de todos los algoritmos de Machine Learning supervisados:

Etapa 1: Seleccionar el número de K vecinas


Etapa 2: Calcular la distancia Desde un punto no clasificado a otros
puntos:
Etapa 3: tomar las K vecinas más cercanas según la distancia calculada
Etapa 4: entre las K vecinas, contar el número de puntos en cada
categoría.
Etapa 5: atribuir un nuevo punto a la categoría más presente entre las K
vecinas
Etapa 6: El modelo está listo.

2
FIA – 4BM1
ESCOM – IPN

Tipos de distancia

Distancia Euclidiana

Distancia Manhattan

Distancia Minkowski

Ventajas:

El algoritmo es simple y fácil de aplicar.


No es necesario crear un modelo, configurar varios parámetros o
formular hipótesis suplementarias.
El algoritmo es polivalente. Puede ser utilizado para la clasificación o la
regresión.
No hace ninguna suposición sobre la distribución de los datos.
La fase de entrenamiento es rápida.

3
FIA – 4BM1
ESCOM – IPN

Desventajas:

El algoritmo se vuelve más lento a medida que el número de


observaciones aumenta y las variables independientes aumentan.
Requiere la selección de un k apropiado
Variables cualitativas y missing data requieren un procesamiento
adicional.
Propenso al sobreajuste

Desarrollo

Primero vamos a importar las librerías numpy (cálculos númericos),


[Link] (crear la gráfica), pandas (para abrir el archivo csv y
manipular los datos) y [Link] (algoritmo KNN).

Luego, se abre el archivo .csv (comma separated values) y especificamos cuáles


son los datos junto con sus etiquetas

4
FIA – 4BM1
ESCOM – IPN

Las siguientes líneas de código son para crear y visualizar la gráfica de


dispersión. También se especifican las características (Estatura y Peso) y las
etiquetas (Clase, que incluye a “Hombre” y a “Mujer”).

Ahora, se calcula el valor de k. En este caso, se calcula como la raíz cuadrada


del número de muestras en los datos. Se procura que k sea impar para evitar
empates.

Crea una instancia del clasificador KNeighborsClassifier con el valor de k y lo


ajusta a los datos de entrenamiento (X e y) utilizando el método fit

Aquí vamos a definir distintos colores para las 10 pruebas que vamos a realizar.

5
FIA – 4BM1
ESCOM – IPN

Se crea un ciclo for para poder realizar las 10 pruebas. Se recopilan 10 datos
de estatura y peso, después se crea un DataFrame. Después se realiza la
predicción utilizando el clasificador KNN entrenado. Finalmente se muestran la
predicción en consola

Finalmente, mostramos la gráfica de dispersión.

6
FIA – 4BM1
ESCOM – IPN

Demostración de Resultados

Ilustración 1. Los 40 datos para entrenar al algoritmo

7
FIA – 4BM1
ESCOM – IPN

Ilustración 2. Los 10 datos de prueba

8
FIA – 4BM1
ESCOM – IPN

9
FIA – 4BM1
ESCOM – IPN

Ilustración 3-7. Ingresando los 10 datos de prueba. Para cada una se realiza la predicción.

Ilustración 8. Gráfica de dispersión, cada muestra está numerada y tienen distintos colores para
distinguirlas.

10
FIA – 4BM1
ESCOM – IPN

Discusión de Resultados

La falta de datos suficientes afecta la precisión del algoritmo de clasificación. Al tener


pocos datos, el algoritmo no puede aprender correctamente y, como resultado,
clasifica erróneamente algunas clases. En este caso, el algoritmo clasificó
correctamente 7 clases y falló en otras 3 (prueba 1, prueba 5 y prueba 8), lo que
significa que tiene una eficiencia del 70%. Con más datos y un entrenamiento adecuado,
el algoritmo podría mejorar su precisión.

Conclusiones

Al tratarse de uno de los algoritmos más simples de Machine Learning, es muy


implementado por los desarrolladores de sistemas basados en el aprendizaje,
intuitivos e inteligentes que pueden efectuar y tomar pequeñas decisiones solos.

El algoritmo K-NN tiene múltiples aplicaciones, principalmente dentro de la


clasificación, como el preprocesamiento de datos, los motores de recomendación,
finanzas, cuidado de la salud y reconocimiento de patrones.

Para efectos de esta práctica, fue necesario recabar 50 datos de varias personas
(estatura, peso y género). De esos 50, íbamos a usar 40 datos para entrenar al
algoritmo K-NN y los 10 datos restantes servirían para hacer las pruebas.

Respecto al código que se nos proporcionó, solamente fue necesario agregarle un ciclo
for para poder recabar 10 muestras (en lugar de 1, como era originalmente) y le
agregamos unas cuantas líneas de código para distinguir cada una de las muestras de
prueba (con colores).

Esto hace que sea aún más práctico para el aprendizaje y el desarrollo y puede servir
para toda industria que utilice sistemas, soluciones o servicios inteligentes.

11
FIA – 4BM1
ESCOM – IPN

Referencias

DataScientest. (2022, 28 diciembre). ¿Qué es el algoritmo KNN? Recuperado 1


de junio de 2023, de [Link]
Díaz, R. (s. f.). Algoritmo KNN – cómo funciona y ejemplos en Python. The
Machine Learners. Recuperado 1 de junio de 2023, de
[Link]
El algoritmo K-NN y su importancia en el modelado de datos. (2020, 1
septiembre). Merkle. Recuperado 1 de junio de 2023, de
[Link]
Gómez Servan, W. J. (2022, 5 febrero). K-Vecinos mas cercanos(KNN). RPubs.
Recuperado 1 de junio de 2023, de
[Link]
IBM. (s. f.). ¿Qué es KNN? Recuperado 1 de junio de 2023, de
[Link]
Na8. (2018, 10 julio). Clasificar con K-Nearest-Neighbor ejemplo en Python.
Aprende Machine Learning. Recuperado 1 de junio de 2023, de
[Link]
neighbor-ejemplo-en-python/

12

También podría gustarte