Documentos de Académico
Documentos de Profesional
Documentos de Cultura
K-NEAREST-NEIGHBOR (KNN)
Brian Jean Carlo Regalado Quistial
ABSTRACT
An exercise will be carried out using Weka software that already has the KNN algorithm
implemented. For this, the database provided by Iris was taken, which has 150 records, of which 70%
will be for training and the remaining 30% will be used for validation, we will also determine the
most appropriate value of K to obtain a value optimal prediction.
INTRODUCCIÓN
Se realizará un ejercicio usando el software Weka que ya tiene implementado el algoritmo de KNN.
Para esto se tomo la base de datos aportada por Iris que cuenta con 150 registros, de los cuales el
70% serán para el entrenamiento y el 30% restante se utilizará para la validación, además
determinaremos el valor mas apropiado de K para obtener un valor óptimo de predicción.
MARCO CONCEPTUAL
WEKA INTRODUCCIÓN
Weka está escrito en Java y puede ejecutarse en casi todas las plataformas operativas, incluidos
Linux, Windows y otros sistemas operativos.
La plataforma Weka proporciona una interfaz unificada que reúne los algoritmos de aprendizaje
automático más clásicos y las herramientas de preprocesamiento de datos disponibles en la
actualidad. Como un sistema completo para la adquisición de conocimiento, incluye entrada de
datos, preprocesamiento, adquisición de conocimiento y evaluación de modo, así como operaciones
visuales sobre datos y resultados de aprendizaje. Y los resultados obtenidos por diferentes métodos
de aprendizaje se pueden comparar para encontrar el mejor algoritmo para resolver el problema
actual.
K-NEAREST-NEIGHBOR
es un algoritmo basado en instancia de tipo supervisado de Machine Learning. Puede usarse para
clasificar nuevas muestras (valores discretos) o para predecir (regresión, valores continuos). Al ser
un método sencillo, es ideal para introducirse en el mundo del Aprendizaje Automático. Sirve
esencialmente para clasificar valores buscando los puntos de datos “más similares” (por cercanía)
aprendidos en la etapa de entrenamiento (ver 7 pasos para crear tu ML) y haciendo conjeturas de
nuevos puntos basado en esa clasificación.
Es un método que simplemente busca en las observaciones más cercanas a la que se está tratando
de predecir y clasifica el punto de interés basado en la mayoría de los datos que le rodean. Como
dijimos antes, es un algoritmo:
• Supervisado: esto -brevemente- quiere decir que tenemos etiquetado nuestro conjunto de
datos de entrenamiento, con la clase o resultado esperado dada “una fila” de datos.
• Basado en Instancia: Esto quiere decir que nuestro algoritmo no aprende explícitamente un
modelo (como por ejemplo en Regresión Logística o árboles de decisión). En cambio,
memoriza las instancias de entrenamiento que son usadas como “base de conocimiento”
para la fase de predicción.
PROS Y CONTRAS
Como pros tiene sobre todo que es sencillo de aprender e implementar. Tiene como contras que
utiliza todo el dataset para entrenar “cada punto” y por eso requiere de uso de mucha memoria y
recursos de procesamiento (CPU). Por estas razones kNN tiende a funcionar mejor en datasets
pequeños y sin una cantidad enorme de features (las columnas).
Teniendo en cuenta el punto 3, veremos que para decidir la clase de un punto es muy importante
el valor de k, pues este terminará casi por definir a qué grupo pertenecerán los puntos, sobre todo
en las “fronteras” entre grupos. Por ejemplo -y a priori- yo elegiría valores impares de k para
desempatar (si las features que utilizamos son pares). No será lo mismo tomar para decidir 3 valores
que 13. Esto no quiere decir que necesariamente tomar más puntos implique mejorar la precisión.
Lo que es seguro es que cuantos más “puntos k”, más tardará nuestro algoritmo en procesar y
darnos respuesta.
Las formas más populares de “medir la cercanía” entre puntos son la distancia Euclidiana (la “de
siempre”) o la Cosine Similarity (mide el ángulo de los vectores, cuanto menores, serán similares).
Recordemos que este algoritmo -y prácticamente todos en ML- funcionan mejor con varias
características de las que tomemos datos (las columnas de nuestro dataset). Lo que entendemos
como “distancia” en la vida real, quedará abstracto a muchas dimensiones que no podemos
“visualizar” fácilmente (como por ejemplo en un mapa).
METODOLOGÍA
Para empezar, abrimos la base de datos de iris en el software Weka, obteniendo el siguiente
resultado.
Seleccionamos el apartado de “Classify” para configurar el software para que trabaje los datos con
KNN. Primero trabajaremos el K=1, que es el valor por defecto que le asigna el software.
Se configuro el software con diferentes valor de K= (1,3,5,7,9,11,13,15,17,19), obteniendo un
porcentaje de 97.77 con K=5, siendo este el valor de predicción más optimo.
CONCLUSIÓN
En este ejercicio realizamos un modelo con Weka para procesar y clasificar puntos de un conjunto
de entrada con el algoritmo k-Nearest Neighbor. Cómo su nombre en inglés lo dice, se evalúan los
“k vecinos más cercanos” para poder clasificar nuevos puntos. Al ser un algoritmo supervisado
debemos contar con suficientes muestras etiquetadas para poder entrenar el modelo con buenos
resultados.
BIBLIOGRAFÍA
Clasificar con K-Nearest-Neighbor ejemplo en Python, 2018. Recuperado de: Algoritmo k-Nearest
Neighbor | Aprende Machine Learning
Uso de Weka para el algoritmo vecino K más cercano y el algoritmo K-means. Recuperado de: Uso
de Weka para el algoritmo vecino K más cercano y el algoritmo K-means - programador clic
(programmerclick.com).