Documentos de Académico
Documentos de Profesional
Documentos de Cultura
KNN
Dra. Dulce Rivero
Conceptos básicos
■ Datos de entrenamiento => Ejemplos de entrenamiento
– Cada ejemplo se describe mediante un conjunto de características y posiblemente una
etiqueta.
■ Ejemplo
– (x1 , y1) ,…., (xn , yn) / xi ∈ Rd y
– yi es la etiqueta.
Entrenamiento
VECTOR de CARACTERÍSTICA
ETIQUETA
Aprendizaje supervisado
■ Datos de entrenamiento:
– “ejemplo” x con etiquetas y
– (x1 , y1) , … , (xn , yn) / xi ∈ Rd
■ Clasificación
– y es discreta.
– Para simplificar y ∈ {-1, +1}
– f(x1 , … , xn ): Rd ⇾ {-1,+1} f es llamado un clasificador binario
– Ejemplo
■ Frutas plátano (+)/naranjas (-)
■ Aprobar una tarjeta de crédito si (+)/no (-)
■ Correos email setosa/ virginica
▪ Objetivo: Encontrar un modelo que mapee las características de los n ejemplos dada la
k dimensiones en una de las etiqueta de clase
Aprendizaje supervisado
• Representar los ejemplos de las frutas en el espacio 2D.
• Se anexa un + en todas las frutas porque sabemos que pertenece a plátano y un –
a las que sabemos que pertenecen a naranja
Peso
NARANJAS
Longitud
El objetivo es encontrar el límite de decisión que separa plátano y naranjas
Métodos de aprendizaje supervisado
✔ Redes neuronales,
✔ ärboles de decisión,
✔ K vecinos más cercanos
✔ Naive Bayes y
Longitud
✔ ……muchos más.
Limite de decisión
Clasificación
Clasificación lineal
■ En los ejemplos anteriores los datos se comportan bien.
– Se tiene un lado completamente dedicado a los ejemplos positivos, y el otro sólo a ejemplos
negativos.
■ No es factible (posible) encontrar un límite de decisión que sea lineal para separar
los datos.
– QUE HACER??
■ NOTA: Los datos se encuentran en un espacio bidimensional.
Clasificación No lineal
■ Se tiene X1 y X2 como característica
■ Es posible que través de metodologías de aprendizaje automático colocar estos
datos en otro espacio: Ejemplo 3D
■ GENERACIÓN DE MODELOS
– AJUSTE DE PARÁMETROS / SELECCIÓN DE MODELO
■ Clasificación: árboles de decisión, reglas, KNN
■ Regresión: modelos lineales, árboles de modelos, KNN
■ EVALUACIÓN:
– validación cruzada, matriz de confusión
■ Despliegue y uso del modelo
Normalización
■ Si los atributos son nominales, usar distancia de Hamming:
– Si el atributo es nominal, en lugar del componente (xie-xje)2 se usa
δ(xie, xje) 0 si xie = xje
1 en caso contrario
■ Normalizar los atributos para que atributos con mucho rango no tengan
más peso que los demás.
Normalización
■ Normalizaciones:
– Estandarización: x’1j = (x1j-μj)/σj
y
Dice que tan cerca (lejos) está cada punto
x
K-vecino más cercano: Entrenamiento
peso
a clasificar.
– Seleccionar el de mayor votación
= Longitud
K-vecino más cercano: Clasificación
■ 3 vecinos más cercanos (3-NN)
K-NN No genera
modelo
■ Condensación: eliminar
instancias superfluas:
– Se pueden llegar a eliminar
muchas, las del interior,
manteniendo las de la frontera
Wilson editing: ejemplo 1
■ Wilson editing:
– Elimina la instancia xi si es clasificada incorrectamente por sus k
vecinos:
■ Excepciones en el interior de una clase
■ Algunos puntos en la frontera (suaviza las fronteras)
■ Repite Wilson editing hasta que no se pueda aplicar más
Wilson editing: ejemplo 2
Wilson editing: ejemplo 3
Wilson editing
• No quita demasiados datos, es
decir, no hay gran mejora en
eficiencia
● CNN = CondensedNearestNeighbour()
Condensed Nearest Neighbor (CNN):
algoritmo
1. Inicializa store con x1
2. Repita
– Elige un xi fuera de almacen (store)
– Mal clasificado según almacén? → Mover al almacén
3. Hasta no se muevan más xi
4. Para clasificar con KNN, usar los del store en lugar de los datos originales
Condensed Nearest Neighbor (CNN)
1. CNN depende mucho del orden en el que se toman las instancias
Condensed Nearest Neighbor (CNN)
1. CNN depende mucho del orden en el que se toman las instancias
Características de (CNN)
● Positivo:
○ Elimina todas aquellas instancias no críticas para la clasificación (reduce
mucho la necesidad de almacenamiento)
● Negativo:
○ Tiende a conservar instancias con ruido (puesto que son mal clasificadas por
las instancias en almacén)
○ CNN depende mucho del orden en el que se toman las instancias
Reduced Nearest Neighbor rule (RNN)
■ Es como CNN, pero comienza con todos los datos y va quitando aquellos que,
al quitarlos, NO hagan que alguna otra instancia pase a estar mal clasificada.
– Guarda las instancias críticas / necesarias para una clasificación correcta
■ http://cgm.cs.mcgill.ca/~athens/cs644/Projects/2004/SumedhaAhuja-EdithL
aw/hybrid.html
RT1 / RT2 / RT3
■ RT1 está inspirado en RNN (que quitaba una instancia si con eso no hacía que
otras instancias pasáran a estar mal clasificadas)
■ Para cada instancia P, RT1 calcula sus asociados,
– Un asociado es una instancia que tiene a P como uno de sus k-vecinos.
– Una instancia asociada a P es una instancia cuya clasificación puede verse
afectada si quitamos P.
■ REGLA RT1:
Si (el número de asociados clasificados correctamente sin P >= que los
clasificados correctamente con P)
QUITAR LA INSTANCIA P
Algoritmo RT1
RT1
● RT1 quita instancias con ruido, puesto que si se las quita eso no perjudica a
la clasificación de los asociados, todo lo contrario
● RT1 quita instancias superfluas en el centro de los clusters, porque en esos
lugares todas las instancias son de la misma clase, por lo que quitar vecinos
no es perjudicial
● RT1 tiende a guardar instancias no-ruido en la frontera, porque si la
quitamos, otras instancias pueden pasar a estar mal clasificadas
RT2 / RT3
● RT2 intenta quitar las instancias de los centros de los clusters primero
● Para ello, ordena las instancias por distancia a su vecino más cercano que
pertenezca a una clase distinta
● La idea es considerar antes aquellas instancias lejos de la frontera, pero,
para ello, hay que eliminar aquellas instancias con ruido en el interior de los
clusters.
● RT3 hace una primera pasada para quitar las instancias ruidosas (Wilson
editing rule)
○ por tanto tiende a conservar las instancias cerca de la frontera
Resultados RT1/ RT2/ RT3
Árbol K-D-mejorado
● Aborda las ineficiencias computacionales del enfoque de fuerza bruta, una variedad
de estructuras de datos basadas en árboles
● En general, estas estructuras intentan reducir el número requerido de cálculos de
distancia de manera eficiente,
● Codifica información de distancia agregada para la muestra. La idea básica es que si
el punto 𝐴 está muy alejado del punto 𝐵, y el punto 𝐵 está muy cerca del punto 𝐶,
entonces sabemos que los puntos 𝐴 y 𝐶 están muy distantes, sin tener que calcular
explícitamente su distancia.
● De esta manera, el costo computacional de una búsqueda de vecinos más cercanos
se puede reducir a 𝑂 [𝐷𝑁 log (𝑁)] o mejor. Esta es una mejora significativa sobre la
fuerza bruta para grandes 𝑁.
Ball Tree
● Para abordar las ineficiencias de los árboles KD en dimensiones superiores, se
desarrolló la estructura de datos del árbol de bolas.
● Particiona el espacio de datos en una serie de hiperesferas anidadas.
● Esto hace que la construcción del árbol es más costosa que la del árbol KD, pero da
como resultado una estructura de datos que puede ser muy eficiente, incluso en
dimensiones muy altas.
● Un árbol de bolas divide recursivamente los datos en nodos definidos por un
centroide 𝐶 y radio 𝑟, de modo que cada punto en el El nodo se encuentra dentro de la
hiperesfera definida por 𝑟 y 𝐶.
● Se reduce el número de puntos candidatos para una búsqueda de vecinos mediante el uso
de la desigualdad triangular:
|x + y| < |x| + |y|
Aplicaciones de K-NN
■ Recuperación de información.
■ Clasificación de caracteres escritos a mano usando el vecino más cercano en
grandes bases de datos
■ Sistemas de recomendación
■ Diagnóstico de cáncer de mama.
■ Minería de datos médicos (síntomas similares del paciente).
■ Reconocimiento de patrones en general.
Referencias