Está en la página 1de 5

MODELADO DE DATOS USANDO EL ALGORITMO DE

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 es un sistema de análisis inteligente (Waikato Environment for Knowledge Analysis)


desarrollado por la Universidad de Waikato, Nueva Zelanda. Fuera de la Universidad de Waikato,
Weka suele pronunciar La Meca como un homónimo. Es un pájaro marrón robusto que solo vive en
la isla de Nueva Zelanda. Es muy tímido y curioso, pero no vuela.

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.

Weka proporciona muchas herramientas (también llamadas filtros) para la visualización y


preprocesamiento de datos, incluida una amplia variedad de herramientas para la transformación
de conjuntos de datos. Todos los algoritmos de aprendizaje automático requieren el formato ARFF
para los datos de entrada. Weka, como plataforma de trabajo pasado de conocimiento abierto,
reúne una gran cantidad de algoritmos de aprendizaje automático que pueden realizar tareas de
minería de datos (conocimiento), incluyendo clasificación, regresión, agrupación, reglas de
asociación, etc.

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.

A diferencia de K-means, que es un algoritmo no supervisado y donde la “K” significa la cantidad de


“grupos” (clústers) que deseamos clasificar, en K-Nearest Neighbor la “K” significa la cantidad de
“puntos vecinos” que tenemos en cuenta en las cercanías para clasificar los “n” grupos -que ya se
conocen de antemano, pues es un algoritmo supervisado-.

¿QUÉ ES EL ALGORITMO K-NEAREST NEIGHBOR?

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.

¿DÓNDE SE APLICA K-NEAREST NEIGHBOR?

Aunque sencillo, se utiliza en la resolución de multitud de problemas, como en sistemas de


recomendación, búsqueda semántica y detección de anomalías.

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).

¿CÓMO FUNCIONA KNN?


• Calcular la distancia entre el ítem a clasificar y el resto de los ítems del dataset de
entrenamiento.
• Seleccionar los “k” elementos más cercanos (con menor distancia, según la función que se
use)
• Realizar una “votación de mayoría” entre los k puntos: los de una clase/etiqueta que
<<dominen>> decidirán su clasificación final.

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).

También podría gustarte