Está en la página 1de 57

Aprendizaje Supervisado: Clasificación

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

▪ Los métodos supervisados


✔ Máquinas soporte vectorial
Peso

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

– El límite de la decisión es una RECTA → Lineal


Clasificación
Clasificación NO lineal
■ También se puede encontrar que el límite de la decisión sea una CURVA → x2, ex
Clasificación No lineal

■ Modelos más complejos

■ Modelos más complicadas, suponer que se tiene setosa, virginica y versicolor

La clasificación puede aún ser más complicada


Clasificación No lineal

■ Suponer que se tienen todos sus ejemplos (patrones) positivos en el medio,


rodeado de muchos 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

separación lineal entre


3D ejemplos positivos y
negativos.

■ En este caso (tridimensional) formado por las características X 1 y X2 encontrar un


límite (plano) de decisión lineal
– En el ejemplo anterior el límite era un elipse
Metodología

■ 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

– Normalización: x’1j= (x1j-minj)/(maxj-mini)

■ Es como usar una distancia ponderada:


d(xi,xj) = m1*(xi1-xj1)2 + m2*(xi2-xj2)2 + m3*(xi3-xj3)2 + …+md*(xid-xjd)2
K- NN
K-vecinos más cercanos
■ Uno de los métodos de aprendizaje automático más antiguos que existe.
■ K vecinos más cercanos no construyen un modelo
– ¡No todos los métodos de ML construyen un modelo!
■ Son capaces de hacer clasificación y regresión.
■ Utiliza la noción de similaridad entre los ejemplos
– Dos ejemplos similares deben tener la misma etiqueta
■ Se basa en la idea de que los nuevos ejemplos serán clasificados en la clase a la que
pertenecen la mayor cantidad de sus vecinos más cercanos del conjunto de
entrenamiento
K-vecinos más cercanos
K-vecinos más cercanos (KNN)
■ EL primer método de ML (k nearest neighbors.)

■ Idea principal: utiliza la similitud entre ejemplos (patrones).


■ Supuesto: Dos ejemplos similares deben tener las mismas etiquetas.
– Asume que todos los ejemplos (instancias) son puntos en la en el espacio R dimensional.
K-vecino más cercano
■ La similitud entre dos conjuntos de características se medirían por su
distancias
■ KNN utiliza la distancia Euclidiana estándar para definir a los vecinos más
cercanos.
– Dada dos muestras xi y xj

y
Dice que tan cerca (lejos) está cada punto

x
K-vecino más cercano: Entrenamiento

■ El entrenamiento es muy simple


– Agregar todos los ejemplos, X e Y, donde X es el valor de la característica
e Y es la etiqueta al conjunto de datos D.
– X ∈ Rd ; y ∈ {-1,+1}
■ Almacenar los datos : es todo lo que necesita para hacer el entrenamiento.
– No hay entrenamiento ni modelo construido
K-vecino más cercano: Clasificación
■ Algoritmo de clasificación
– Se tiene un nuevo ejemplo xq para ser clasificado.
– Suponer que Nk (xq) es el conjunto de los K vecinos más cercanos de xq

Cual es la etiqueta de ? → <xq, ŷq>

– Calcule los k vecinos de la consulta del nuevo ejemplo

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

■ Dibujar una decisión aproximada para (K =3)


K-vecino más cercano: Clasificación
■ Los límites de la decisión no es lineal
– Explícitamente K-NN hace una aproximación no lineal
K-vecino más cercano: Clasificación
■ En problemas prácticos en clasificación se toma un número k de vecinos impar para
evitar posibles empates
– Resuelve el problema en clasificaciones binarias
■ En caso de empate, se selecciona la clase que verifique que sus representantes tengan
la menor distancia media al nuevo ejemplo que se está clasificando.
– Si se produce un empate, siempre se puede decidir aleatoriamente entre las
clases con mayor representación.
Algoritmo
COMIENZO
Entrada: D = { (x1; y1),................,(xN; yN) }
Nuevo Caso: x = (x1,………, xn) // nuevo caso a clasificar
PARA todo objeto ya clasificado (xi; yi)
calcular di = d(xi; x)
Ordenar OrdD= di(i = 1,………..,N) en orden ascendente
Quedarnos con los K de OrdD = DKX
// Las entrada clasificados más cercanas a x
Asignar a x la clase (etiqueta) más votada en DKX
FIN
Variante de K-NN

● Ponderar la contribución de cada vecino de acuerdo a la distancia entre él


y el ejemplar a ser clasificado
○ Da mayor peso a los vecinos más cercanos frente a los que puedan
estar más alejados
○ Ejemplo: ponderar el voto de cada vecino de acuerdo al cuadrado
inverso de sus distancias
○ Si x es el ejemplo que se quiere clasificar, V son las posibles clases de
clasificación , {xi, y} es el conjunto de los K ejemplos de
entrenamiento más cercanos, definimos
Wi = 1/ (d - di)2
Variante de K-NN
■  
K-NN
■ En general K-NN es simple y sencillo
■ Ventajas
– Muy simple de implementar, almacenamiento de los datos
– En la práctica trabaja bien
– No requiere construir un modelo
– Puede extenderse fácilmente con nuevos ejemplos
K-NN
● En general K-NN es simple y sencillo
● Desventajas
○ Requiere gran espacio de almacenamiento, el entrenamiento es toda la data
○ Es lento, dado n ejemplos y d características
● T(n) = O(n*d)
○ Sufre el problema de la dimensionalidad
■ Espacios dimensionales muy altos (la distancia pierde sentido)
■ Recordemos que el número de datos necesario para representar la superficie
de una esfera en d dimensiones crece exponencialmente con d:
O(rd)
El problema de la dimensionalidad
■ Número de datos necesario para representar la superficie de una esfera en d
dimensiones = rd
Problemas / limitaciones KNN
■ Lento, porque tiene que guardar todos los datos de entrenamiento
– Solución: eliminación de instancias superfluas (valores atípicos)
■ Muy sensible al ruido
– Solución: eliminación de instancias con ruido
■ Depende de que la función de distancia sea la adecuada
– Solución (parcial): aprendizaje de la función distancia
■ Muy sensible a los atributos irrelevantes y la maldición de la
dimensionalidad:
– Solución: selección de atributos
SELECCIÓN DE K
■ A la elección de un modelo para un problema concreto se le denomina
selección del modelo
■ Si se ha seleccionado una familia de modelos, hay que dar valor a
ciertos parámetros
■ •Árboles de decisión: factor de confidencia
■ •KNN: K
Metodología
■ Recopilación de los datos (tabla datos x atributos)
■ Preproceso:
– De los datos: Normalización
– De los atributos:
■ Selección de atributos:
– Ranking
– Selección de subconjuntos: CFS (Correlation-based Feature Selection) y
WRAPPER
■ Transformación / Generación de atributos:
– No supervisada: PCA, random projections, autoencoders
– Supervisada: mediante redes neuronales
SELECCIÓN DE INSTANCIAS
● Hay instancias superfluas: no son
necesarias para clasificar.
Si las borramos, se reducirá el
tiempo de clasificación

● Hay instancias que son ruido (o


solape entre clases): confunden al
clasificador.
Si las borramos, mejorará el
porcentaje de aciertos esperado
SELECCIÓN DE INSTANCIAS

● Editing: eliminar instancias


engañosas (ruido)
– Típicamente se eliminarán
sólo unas pocas

■ 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

• Funciona bien si NO hay demasiado


ruido.
• Si hay mucho ruido, las instancias con
ruido clasifican bien a otras instancias
con ruido
Condensed Nearest Neighbor (CNN)
● Intenta reducir el número de instancias, eliminando las superfluas
● Va recorriendo las instancias, y si esa instancia ya está bien clasificada con
las que ya hay guardadas, no la guarda.
○ Sólo guarda aquellas que no se clasifican bien con las ya existentes (y por
tanto, es crítica, es necesaria)

● 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

– A diferencia de CNN, permite eliminar instancias ruido (puesto que no


contribuyen a clasificar correctamente otras instancias, todo lo contrario)
Reduced Nearest Neighbor rule (RNN)
■ No hay garantía de que CNN o RNN encuentren el conjunto consistente
mínimo
Edición y condensación
● La edición
○ elimina el ruido y suaviza las fronteras,
○ pero.. mantiene la mayor parte de los datos
■ mejora la capacidad de generalización pero no mejora la eficiencia
● La condensación
○ elimina gran cantidad de datos superfluos,
○ pero mantiene los datos con ruido,
■ CNN y RSS mantienen aquellos datos mal clasificados por los demás datos
● El ruido tiene siempre esta propiedad)
Híbridos: 1-Editar 2-Condensar
■ Primero editar, luego condensar
Algoritmos avanzados
■ Editar / Condensar:
– RT3 (RT1, RT2):
■ D. Randall Wilson, Tony R. Martinez: Instance Pruning Techniques. ICML
1997: 403-411
– Iterative case filtering (ICF)
■ Henry Brighton, Chris Mellish: Advances in Instance Selection for
Instance-Based Learning Algorithms. Data Min. Knowl. Discov. 6(2):
153-172 (2002)
RT1 / RT2 / RT3
■ Son algoritmos híbridos (condensación + edición)
■ Objetivos de RT1 / RT2 / RT3 para mejorar a CNN:
– Que no dependa del orden de selección de los xi (como le ocurría a CNN)

– Que elimine instancias con ruido

– Que elimine instancia superfluas

■ 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

● Major journals/conferences: ICML, NIPS, UAI, ECML/PKDD, JMLR, MLJ, etc.


○ http://videolectures.net/Top/Computer_Science/Machine_Learning/
● Machine Learning (Theory):
http://hunch.net/
● Women in Machine Learning:
○ https://groups.google.com/forum/#!forum/women-in-machine-learning
● KDD nuggets http://www.kdnuggets.com/
● “Five balltree construction algorithms”, Omohundro, S.M., International
Computer Science Institute Technical Report (1989)

También podría gustarte