Sei sulla pagina 1di 19

DIVISIÓN DE ESTUDIOS PROFESIONALES PARA EJECUTIVOS

FACULTAD DE INGENIERÍA

INTELIGENCIA ARTIFICIAL
K Nearest Neighbor
(Algoritmo del vecino más cercano)

Integrantes
Delgado Ortiz, Héctor Harry (u201216133)
Ríos Díaz, Álvaro (u201401312)
Rodríguez López, Kimberley (u201401312)

PROFESOR:

Ing. Alberto Borda

SECCIÓN:
E81A

Febrero - 2018
INDICE

Contenido
1. INTRODUCCIÒN ...................................................................................................................... 3
2. ¿QUÉ ES KNN?........................................................................................................................ 3
3. FUNCIONAMIENTO: ............................................................................................................... 3
4. CARACTERÍSTICAS GENERALES ...................................................................................... 3
5. ALGORITMO K-NN .................................................................................................................. 5
6. CASO 1 DE PREDICCION (Compra y venta de autos)....... ¡Error! Marcador no definido.
7. CASO 2 DE PREDICCION (Proveedor de servicios de internet).................................... 11
8. CONCLUSIONES ................................................................................................................... 11
9. GLOSARIO: ............................................................................................................................. 18
10. BIBLIOGRAFIA ....................................................................................................................... 19
1. INTRODUCCIÒN
Dentro de la ciencia de la computación uno de los mayores desafíos radica en
brindar la capacidad de aprender a máquinas o programas de computadoras.
Facilitar la capacidad de aprendizaje permitiría una amplia gama de nuevas
aplicaciones, así mismo nos puede ayudar a entender las capacidades y limitaciones
humanas de aprendizaje durante todo este proceso de desarrollo y en general, se
busca construir programas que mejoren automáticamente con la experiencia y la
manera en que se va representando su aprendizaje.
Existen diversas tareas que se pueden hacer con sistemas de aprendizaje
establecidas mediante modelos que requieren de procesos de clasificación y
definición de tipos de aprendizaje como el aprendizaje inductivo que puede ser
supervisado y no supervisado.
Dentro del presente trabajo se desarrollara el algoritmo KNN como uno de los
aprendizajes inductivos supervisados.

2. ¿QUÉ ES KNN?
KNN es un método de aprendizaje para la clasificación de información obteniendo un
pronóstico en base al cálculo de distancia que se tiene de los elementos vecinos
alojados en una base de datos. Se considera a KNN un conjunto de datos de
preparación que cuando se requiere un pronóstico para una instancia de datos no
vista, el algoritmo kNN buscará en el conjunto de datos preparados las k instancias
más similares. El atributo de predicción de las instancias más similares se resume y
se devuelve como la predicción para la instancia no vista.
Por lo mencionado kNN toma la información que deseamos clasificar de la base de
datos y calcular las distancias de todos los miembros, tomando un número particular
de vecinos (K) con distancias menores, luego se visualiza la clase de los mismos, de
allí se determina que tipo es el dato que estamos buscando.

3. FUNCIONAMIENTO:
El algoritmo kNN pertenece a la familia de algoritmos de aprendizaje competitivo y
perezoso basados en instancias, que modelan el problema usando instancias de
datos (o filas) para tomar decisiones predictivas; internamente utiliza la competencia
entre los elementos del modelo (instancias de datos) para tomar una decisión
predictiva. La medida de similitud objetivo entre las instancias de datos hace que
cada instancia de datos compita para "ganar" o sea más similar a una instancia de
datos no vista dada y contribuya a una predicción.
El aprendizaje lento se refiere al hecho de que el algoritmo no crea un modelo hasta
el momento en que se requiere una predicción, funciona en el último segundo. Esto
tiene el beneficio de incluir solo datos relevantes para los datos no vistos, llamados
modelos localizados. Una desventaja es que puede ser computacionalmente costoso
repetir búsquedas iguales o similares en conjuntos de datos de entrenamiento más
grandes.

4. CARACTERÍSTICAS GENERALES
Las reglas de clasificación por vecindad están basadas en la búsqueda en un
conjunto de prototipos de los k prototipos más cercanos al patrón a clasificar.
No hay un modelo global asociado a los conceptos a aprender. Las predicciones se
realizan basándose en los ejemplos más parecidos al que hay que predecir.
Debemos especificar una métrica para poder medir la proximidad donde se suele
utilizar por razones computacionales la distancia Euclídea. En la figura 1 se tiene un
ejemplo del algoritmo donde con diversos elementos como cuadrados hexágonos se
intenta clasificar a un pentágono (marrón).
Figura 1: Ejemplo1 de clasificación kNN
Fuente: PITOL 2014

Se calcula las distancias de todos sus vecinos, observándose más cercanía con el
hexágono, por lo que kNN definiría que la nueva figura es un hexágono, o es
probable que lo sea.

Figura 2: Ejemplo2 de clasificación kNN


Fuente: PITOL 2014

Ahora teniendo la figura 2, si se busca los tres vecinos más cercanos (K = 3),
clasificaríamos a nuestra figura como un cuadrado, lo mismo ocurriría si K = 4 o K =
5, pero cuando K = 6 entonces tendríamos un empate (cuando esto ocurre he visto
que lo que se suele realizar es sumar las distancias y tomar la suma menor) y si K =
8, entonces KNN nos diría que es un hexágono.

Por lo tanto en este tipo de algoritmos es importante conocer bien la información,


decidir el tipo de cálculo para las distancias y el número de vecinos a considerar.
Otro punto a considerar es el factor de búsqueda, ya que, sería muy costoso el
calcular la distancia de toda nuestra base de datos, por ello se emplean ciertas
heurísticas para definir los elementos claves de comparación, como los elementos
más representativos de su clase (muestra) y calcular sus distancias en base a ello.

Otra heurística común es establecer un rango de búsqueda, proponiendo una


distancia máxima, por ejemplo el cálculo de la distancia euclideana, entonces,
queremos que nuestros vecinos no pasen de cierta distancia como se indica en la
figura nº3 que se delimita el rango.
Figura 3: Rango de búsqueda en kNN
Fuente: PITOL 2014

5. ALGORITMO K-NN
A continuación se presenta un ejemplo básico aplicado del algoritmo según la figura
4:

Figura 4: Notación para el algoritmo K-NN


Fuente: MOUJAHID 2000

 D indica un fichero de N casos, cada uno de los cuales está caracterizado por n
variables predictoras, X1; : : : ;Xn y una variable a predecir, la clase C.
 Los N casos se denotan por:
(x1; c1); : : : ; (xN; cN) donde
xi = (xi;1 : : : xi;n) para todo i = 1; : : : ;N
ci 2 fc1; : : : ; cmg para todo i = 1; : : : ;N
c1; : : : ; cm denotan los m posibles valores de la variable clase C.

 El nuevo caso que se pretende clasificar se denota por x = (x1; : : : ; xn).

En la Figura 5 se presenta un Pseudocódigo para el clasificador K-NN básico. Donde


se calculan las distancias de todos los casos ya clasificados al nuevo caso, x, que se
pretende clasificar. Una vez seleccionados los K casos ya clasificados, Dkx más
cercanos al nuevo caso, x, a éste se le asignará la clase (valor de la variable C) más
frecuente de entre los K objetos, Dkx
Figura 5: Pseudocódigo para el clasificador K-NN
Fuente: MOUJAHID 2000

La Figura 6 muestra de manera gráfica un ejemplo de lo anterior. Tal y como puede


verse en

Figura 6: Ejemplo de aplicación del algoritmo K-NN básico


Fuente: MOUJAHID 2000

La Figura 6 tenemos 24 casos ya clasificados en dos posibles valores (m = 2). Las


variables predictoras son X1 y X2, y se ha seleccionado K = 3. De los 3 casos ya
clasificados que se encuentran más cercanos al nuevo caso a clasificar, x
(representado por ²), dos de ellos pertenecen a la clase ±, por tanto el clasificador 3-
NN predice la clase ± para el nuevo caso. Nótese que el caso más cercano a x
pertenece a la clase +. Es decir, que si hubiésemos utilizado un clasificador 1-NN, x
se hubiese asignado a +.

Conviene aclarar que el paradigma K-NN es un tanto atípico si lo comparamos con el


resto de paradigmas clasificatorios, ya que mientras que en el resto de paradigmas la
clasificación de un nuevo caso se lleva a cabo a partir de dos tareas, como son la
inducción del modelo clasificatorio y la posterior deducción (o aplicación) sobre el
nuevo caso, en el paradigma K-NN al no existir modelo explícito, las dos tareas
anteriores se encuentran colapsadas en lo que se acostumbra a denominar
transinducción.

En caso de que se produzca un empate entre dos o más clases, conviene tener una
regla heurística para su ruptura. Ejemplos de reglas heurísticas para la ruptura de
empates pueden ser: seleccionar la clase que contenta al vecino más próximo,
seleccionar la clase con distancia media menor, etc.

6. CASO 1: COMPRA Y VENTA DE AUTOS


El caso es una predicción de variable continua de acuerdo a la información de una
base de datos almacenada.

a. Situación actual
Una Compañía se dedica a la compra y venta de autos usados. Actualmente
cuenta con un récord de todos los autos que se han comprado en el último año
(2017), el precio por el que se han vendido y un par de características de estos
autos: Edad y Kilometraje, como se muestra en la figura 7.

Edad
Kilometraje Precio
(Meses)

20 17,300 S/17,200

40 36,566 S/11,990

60 37,111 S/10,950

50 39,706 S/13,500

38 46,327 S/14,990

68 62,292 S/9,750

55 69,813 S/9,500

80 71,500 S/7,500

64 114,846 S/9,950

70 124,743 S/8,450
Figura 7: Muestra de carros comprados
Fuente: DATAMININGINCAE 2013

 Se muestra la Gráfica con los datos de kilometraje y edad en el plano cartesiano en


la siguiente figura, que muestra la dispersión de los valores.

Figura 8: Grafica en el plano cartesiano


Fuente: DATAMININGINCAE 2013
b. Problemática:
 Aparece un nuevo cliente que desea vender su auto usado el cual tiene:
 95,000 Km en el Odómetro
 75 meses de edad
 ¿Cuál es el monto que se le debería ofrecer al cliente por el auto?

c. Solución:
i. Si analizamos en el plano cartesiano la información proporcionada por el
nuevo cliente su auto se ubicaría en donde indica el asterisco.

Figura 9: Grafica en el plano cartesiano


Fuente: DATAMININGINCAE 2013

ii. Seguidamente se tendría que ir a la base histórica y encontrar los 10 carros


más parecidos.
iii. Ofreceríamos la media de los precios de los autos parecidos
Estamos utilizando sin saberlo el método de K-vecinos más cercanos
K=1 y K=10
iv. Definir autos parecidos son los que están cercana de la otra.
Necesitamos una definición de distancia
v. Utilizaremos la misma definición que se usa para formar con K-means(la
distancia euclidiana)

Figura 10: Formula Euclidiana


Fuente: DATAMININGINCAE 2013

vi. Normalizar. - cuando se trabaja con distancia normalizar la variable bajo


consideración, si no lo hacemos concedemos mayor importancia a las
variables que están medidas en las unidades más grandes.
 Los cálculos obtenidos se muestran en la tabla normalizada de la figura 11.

Figura 12: Tabla Normalizada


Fuente: DATAMININGINCAE 2013

 Así mismo se muestran la gráfica Normalizada en la figura 11.

Figura 11: Grafica Normalizada


Fuente: DATAMININGINCAE 2013

vii. Para aplicar la función de normalizar se debe sacar la media y desviación


estándar de edad y Km con los siguientes resultados:

Figura 13: Media y Desviación estandar


Fuente: DATAMININGINCAE 2013
viii. Aplicando la fórmula de la distancia euclidiana, se verá que el ranking 1 lo
ocupa la distancia de 0.73 y el precio del auto a ofrecer será de 7500 soles.

Figura 14: Tabla Normalizada


Fuente: DATAMININGINCAE 2013
d. Conclusión
Finalmente se puede concluir que el mejor precio para el auto con 95000 km y una
antigüedad de 73 meses es de 7500 soles-

Figura 15: Tabla Precio Final


Fuente: DATAMININGINCAE 2013

 Como se indica en la Grafica final del KNN (figura 16), el precio sugerido
para el auto está en función a la cercanía con otros autos evaluados.

Figura 16: Gráfica final en el plano cartesiano


Fuente: DATAMININGINCAE 2013
7. CASO 2: Proveedor de servicios de internet

1. Descripción de la empresa:
La empresa DRR_solution es un proveedor de servicios que ofrece entre sus
clientes conexión a internet de alta velocidad mediante dispositivos de
enrutamiento. Actualmente cuenta con 10 conexiones enrutadas mediante el
protocolo EIGRP el cual facilita el análisis de ruta en base a datos estáticos de
velocidad (ancho de banda) y retardo en cada conexión.

Figura 17: Diagrama de conexión de la empresa


(Elaboración propia)
2. Situación:
Cada conexión que la empresa ofrece maneja un costo en función de los
servicios y ancho de banda (velocidad de la red), la tabla Nº1 indica al detalle los
parámetro con lo que trabaja cada enlace.

Figura 19: Base de datos con información general de conexión


(Elaboración propia)

3. Problemática:
El problema principal es establecer un mecanismo que facilite la estimación de
costo de acuerdo a los requerimientos de nuevos clientes considerando
principalmente el ancho de banda y los servicios que se tienen mediante el
enlace:

4. Solución
Para la solución del caso se emplea el algoritmo KNN que permite analizar ambos
parámetros (ancho de banda y número de servicios) mediante la distancia
Euclidiana y teniendo como referencia base la información de los 10 enlaces.

FASE 1: Parámetros de la Base de datos


i. Nuestra base de datos está definida por 10 elementos con dos variables cada
uno.
ii. Nuestro valor K será igual a 1 (k=1).

Figura 20: Base de datos especifica con Nº de servicios y ancho de banda


(Elaboración propia)

Figura 21: Base de datos en el plano cartesiano


(Elaboración propia)

FASE 2: Normalización de la Base de datos


i. Es necesario normalizar las cantidades de cada variable, ya que si
observamos los datos de ancho de banda y servicios son cantidades
heterogéneas.
ii. Se deberá obtener primero el promedio del valor de los Servicios y ancho de
banda:

 Promedio de los servicios:


 Promedio de los ancho de banda:

iii. Luego se obtiene la desviación estándar de cada variable.

Se tiene la fórmula:

=
Dónde:
 Promedio =
 Varianza = S2
 Desviación estándar = S
 Numero de variables = N
 Variable = Xi

A. Calculando la desviación estándar del Nº de servicios:

= 71.8

Por lo tanto la desviación estándar seria:

B. Calculando la desviación estándar del ancho de banda:

= 1,113,933
S2 = 9844662, 391 017.44
S = 3137620

iv. Así tenemos la siguiente tabla con los resultados obtenidos :

Figura 22: Base de datos con cálculo del promedio y desviación estándar
(Elaboración propia)
v. Normalización para el valor del nº de servicios y ancho de banda, se
Normaliza (Z) empleando el valor de cada variable, el promedio y la
desviación estándar obtenidos, mediante la siguiente formula.

 Por ejemplo para calcular la normalización de la primera opción del nº de


servicios, se tiene:

 Entonces, realizando el cálculo total se tiene lo que muestra la figura en las


columnas Servicios_n y BW_n, que viene a ser la base de datos KNN.

Figura 23: Base de datos con datos normalizados


(Elaboración propia)

vi. Base datos KNN; Basándonos en esta información de base de datos


normalizada, nos permitirá estimar el costo para un nuevo cliente aplicando la
distancia de acuerdo a los requerimientos.

Figura 24: Grafico de dispersión de datos normalizados


(Elaboración propia)
FASE 3: Predicción de costos

 Nuevo cliente; Se recepciona los valores de Nº de servicios (10) y ancho de


banda que requiere un nuevo cliente 1000 kbps.

 Normalización de datos del cliente; es necesario como en los casos


anteriores aplicar la fórmula de normalización a cada uno:

Formula:

Entonces para el Ancho de banda:

Para el nº de servicios:

Por lo que se tiene:


- Para el ancho de banda de 1000 kbps, es - 0.35
. Para el Nº de servicios 10, es – 1.98

 Uso de la distancia euclidiana; una vez normalizado los valores se aplicara


la fórmula de la distancia euclidiana:

Dónde para la primera entrada de la base de datos se tiene:


Xi = Ancho de banda normalizado del 1ª entrada de la base de datos
Xj = Ancho de banda normalizado del cliente
Yi = Nª de servicios normalizado del 1ª entrada de la base de datos
Yj = Nª de servicios normalizado del cliente

Por lo que se tiene el siguiente resultado:

 Cada entrada de la base de datos deberá calcularse, por lo que obtenemos la


siguiente tabla con la columna distancia que refiere a los valores obtenidos:
Figura 25: Base de datos con distancia euclidiana calculada
(Elaboración propia)

 Análisis de resultados; De los valores obtenidos en la columna distancia el


más bajo (0.80) es el más recomendable para el costo de la ruta que solicita
el cliente, y sucesivamente los siguientes valores más bajo serán los
recomendados.

 Rankin de valores: Etiquetando los valores de menor a mayor se tiene los


siguientes resultados considerando la columna Ranking.

Figura 26: Base de datos con el ranking para la evaluación del cliente
(Elaboración propia)

 A continuación la ubicación del nuevo cliente en el plano cartesiano resaltado


en color rojo en la figura 26:

Figura 26: Grafica final en plano cartesiano


(Elaboración propia)
FASE 4: Conclusión

 Costo de ruta para el cliente; analizado los requerimientos del cliente como
son 10 servicios y un ancho de banda de 1000 Kbps, el costo de la ruta seria
de $30 dólares mensuales e iría por el nodo 10 que es por la vía de San Isidro
2.
8. CONCLUSIONES

 KNN es un algoritmo costoso computacionalmente donde calcular la distancia en


millones de registros de la base de datos sería complicado determinar., por ello
emplean ciertas heurísticas como elementos representativos, el rango de
búsqueda, factor de búsqueda entre otros..

 La distancia más precisa para KNN depende de los datos, con atributos de
gastos o ingresos mensuales, deudas, otros ingresos, posiblemente una distancia
euclideana sería lo más correcto; si tenemos ingreso mensual, estatura, número
de hijos, peso, edad, una distancia de Mahalanobis seria adecuada.

 Aplicar las reglas de clasificación por vecindad requiere, en la práctica, el


conocimiento de ciertas restricciones de convergencia y del coste computacional
asociado a su aplicación.

9. GLOSARIO:

 Distancia Hamming; En Teoría de la Información se denomina a la efectividad


de los códigos de bloque y depende de la diferencia entre una palabra de código
válida y otra. Cuanto mayor sea esta diferencia, menor es la posibilidad de que
un código válido se transforme en otro código válido por una serie de errores. A
esta diferencia se le llama distancia de Hamming, y se define como el número de
bits que tienen que cambiarse para transformar una palabra de código válida en
otra palabra de código válida. Si dos palabras de código difieren en una distancia
d, se necesitan d errores para convertir una en la otra.

 Euclídea; En matemáticas, la distancia euclidiana o euclídea es la distancia


"ordinaria" entre dos puntos de un espacio euclídeo, la cual se deduce a partir
del teorema de Pitágoras.

 Lazy learning; En inteligencia artificial, el aprendizaje vago es un método de


aprendizaje en el que la generalización más allá de los datos de entrenamiento
es demorada hasta que se hace una pregunta al sistema, al contrario que en el
aprendizaje entusiasta, donde el sistema intenta generalizar los dato.

 Regla heurística; actúa como impulsos generales dentro del proceso de


búsqueda y ayudan a encontrar, especialmente, los medios para resolver los
problemas. Las Reglas Heurísticas que más se emplean son:

 Separar lo dado de lo buscado.


 Confeccionar figuras de análisis: esquemas, tablas, mapas, etc.
 Representar magnitudes dadas y buscadas con variables.
 Determinar si se tienen fórmulas adecuadas.
 Utilizar números (estructuras más simples) en lugar de datos.
 Reformular el problema.
10. BIBLIOGRAFIA

 DATAMININGINCAE (2013). Data Mining: K-Vecinos Mas Cercanos (K-Nearest


Neighbors, KNN). (https://www.youtube.com/watch?v=V_D3N2UuDCU) (consulta: 9
de febrero)
 GARCÍA, Cristina & GÓMEZ, Irene (2005) Algoritmos De Aprendizaje: Knn &
Kmeans, Universidad Carlos III de Madrid.
(http://www.it.uc3m.es/jvillena/irc/practicas/08-09/06.pdf) (consulta: 6 de febrero).
 MOUJAHID, Abdelmalik y otros (2000). Clasificadores K-NN. Departamento de
Ciencias de la Computación e Inteligencia Artificial, Universidad del País Vasco.
(http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t9knn.pdf) (Consulta: 4 de
febrero)
 PITOL, Fermín (2014). K-NN (K Nearest Neighbor), Blog de inteligencia artificial “El
algoritmo del vecino más cercano” (http://ferminpitol.blogspot.pe/2014/03/k-nn-k-
nearest-neighbor-el-algoritmo.html) (Consulta: 4 de febrero) .

Potrebbero piacerti anche