Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Presentado para:
Cesar Rodríguez
Presentado por:
James Ronaldo Benavides Garzón
Universidad de La Salle
Bogotá, Colombia
2021
Planteamiento
Otra de las cuestiones para tener en cuenta es como realizar la agregación final del
algoritmo. Esta agregación puede llevarse a cabo a través del voto simple, en el que cada
clase de los k ejemplos seleccionados tiene el mismo valor, por lo que se clasifica al nuevo
ejemplo en la clase más frecuente. También la agregación final puede llevarse a cabo a
través de la agregación de las distancias de los k ejemplos seleccionados agrupados por
las clases, por lo que se clasifica al nuevo ejemplo en la clase cuyo valor agregado sea el
menor. En el caso de este proyecto aplicaremos el voto simple. Por último, se debe definir
la clasificación del nuevo ejemplo cuando existe un empate en el número de clases
mayoritarias de los k vecinos más cercanos. En esta situación, se puede clasificar al
nuevo ejemplo escogiendo al azar una de las clases mayoritarias, una por defecto o la
clase cuyo ejemplo esté más cerca del ejemplo a clasificar. En el caso de este proyecto
aplicaremos la segunda opción, escogeremos la clase mías pequeña.
Características KNN
• KNN es local: asume que la clase de un dato depende sólo de los k vecinos más
cercanos (no se construye un modelo global)
• No necesita adaptación para más de dos clases (a diferencia de clasificadores lineales)
• Si se quiere hace regresión, calcular la media de los k vecinos
• Es sencillo
Problemas / limitaciones KNN
Atributos irrelevantes
Metodología
Teniendo una base de datos de números entre 0 y 9 con 10.000 muestras poder generar
un algoritmo para hacer reconocimiento utilizando el método de knn.
Se implementan las diferentes librerías para poder hacer diferentes operaciones
aritméticas, poder extraer información de la base de datos y un algoritmo para entrenar.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from io import open
import scipy.io as sio
train_label='/content/drive/MyDrive/Semestre 10/Machine
Learning/Laboratorio/Trainnumbers_label.csv'
train_img='/content/drive/MyDrive/Semestre 10/Machine
Learning/Laboratorio/Trainnumbers_image.csv'
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
Se extrae la base de datos por medio de la librería pandas y algunos argumentos como
añadir una enumeración tanto en filas como columnas.
inp = np.array(i)
lnp = np.array(l)
Resultados
Aplicando el algoritmo de para observar el comportamiento que tuvieron desde 3 a 13
dimensiones se obtuvieron los siguientes resultados
print(pp.shape)
plt.bar(pp[0,:],pp[1,:])
plt.xscale('log')
plt.xlabel('PCA')
plt.ylabel('Rendimiento %')
plt.show()
Conclusiones
Bibliografía
• Zapata-Tapasco, A., Mora-Flórez, J., & Pérez-Londoño, S. (2014). Metodología híbrida basada
en el regresor knn y el clasificador boosting para localizar fallas en sistemas de
distribución. Ingeniería y Competitividad, 16(2), 165-177.
• Salcedo-Campos, F. J., Dıaz-Verdejo, J. E., & Garcıa-Teodoro, P. Evaluacion de la
configuracion de clasificadores KNN para la deteccion de flujos P2P.
• Mur, R. A. Clasificadores Knn-I.