Você está na página 1de 14

Aprendizado por Conteúdo

Memorização: IBL & K-NN


‰ Instance-Based Learning (IBL) é um ‰IBL1
paradigma no qual os algoritmos
tipicamente armazenam alguns ou todos ‰IBL2
os exemplos de treinamento durante o
aprendizado
‰ Para classificar um novo exemplo, estes
‰IBL3
sistemas utilizam uma função de
distância ou similaridade para determinar ‰K-NN
o quão próximo o novo exemplo
encontra-se de um exemplo já ‰Métricas de Distância e Similaridade
armazenado e utiliza este(s) exemplo(s)
mais próximo(s) para determinar a classe
do novo exemplo
‰ Veremos nesta aula o funcionamento de
IBL, K-NN e algumas métricas de
distância
José Augusto Baranauskas augusto@usp.br
Departamento de Física e Matemática – FFCLRP-USP http://dfm.ffclrp.usp.br/~augusto
2

Instance-
Instance-Based Learning Exemplo IBL

‰Instance-Based Learning (IBL): ‰Problema: movimento de um braço de robô


aprendizado por memorização de exemplos ƒ Modelo difícil de ser analisado analiticamente
‰Memorização: aprende conceitos apenas ™Equações cinemáticas
¾Relacionam ângulos de junções e manipulador de
armazenando exemplos típicos do conceito posições
‰Não constrói representações abstratas ™Equações dinâmicas
¾Relacionam torque de motor a ângulos das juntas
‰Geralmente, requer grande capacidade de
ƒ Difícil obter bons resultados modelando braços
memória robóticos ou humanos
‰Exemplos: IBL1, IBL2 e IBL3 ™Muitos fatores e medidas

3 4

Exemplo IBL IBL1

‰Solução ‰Aprende um conceito simplesmente


ƒ Movimente o braço do robô armazenando todos os exemplos
ƒ Armazene os parâmetros bem como a ‰Um novo exemplo é classificado
trajetória ƒ calculando a distância Euclidiana para
™Tabela: torques, posições, velocidades, velocidade determinar o vizinho mais próximo
ao quadrado, acelerações
ƒ classe do novo exemplo é dada pela classe do
ƒ Para seguir um novo caminho:
vizinho mais próximo
™Particione o caminho em segmentos
™Encontre os segmentos mais próximos na tabela ¿Tolerante a ruídos
™Utilize os torques (interpole quando necessário) ÀUsa muita memória
5 6

1
Algoritmo IBL1 Algoritmo IBL1

c1 c1 c3 c1 c1 c3
c4 c4

c4 c4
c1 c1
c2 c2 c2 c2
Novo Exemplo
c4 c4
c3 c3
c2 c2
Exemplos Armazenados Exemplos Armazenados

7 8

Algoritmo IBL1 Algoritmo IBL1


‰Aprendizado: IBL1-Learn(T)
c1 c1 c3 ƒ Tabela Å armazene todos os n exemplos de T
c4 ƒ Retorne Tabela
‰Classificação: IBL-Classify(Tabela,E)
c4 ƒ Calcule a distância entre o exemplo E e todos os
c1 demais exemplos da Tabela para determinar o vizinho
c2 c2
mais próximo P
Novo Exemplo
c4 ƒ if P não existe then
Retorne NULL
c3
else
c2 Retorne classe(P)
Exemplos Armazenados
Classe 1 endif

9 10

IBL2 Algoritmo IBL2


‰ Aprendizado: IBL2-Learn(T)
‰Idem ao IBL1 exceto: ƒ Tabela Å Ø
‰Objeto novo: ƒ for i Å 1,2,…,n do
™ Assuma exemplo no formato Ei = (xi, yi), ou seja, yi = classe(Ei)
ƒ classe correta: ignora (não armazena) ™ if IBL-Classify(Tabela,xi) ≠ yi then
Tabela Å Tabela ∪ {Ei}
ƒ classe errada: armazena ™ endif
ƒ endfor
ƒ Retorne Tabela
‰ Classificação: IBL-Classify(Tabela,E)
ÀMenos tolerante a ruídos que IBL1 ƒ Calcule a distância entre o exemplo E e todos os demais
exemplos da Tabela para determinar o vizinho mais próximo P
¿Usa menos memória que IBL1 ƒ if P não existe then
Retorne NULL
else
Retorne classe(P)
endif
11 12

2
Algoritmo IBL2 Algoritmo IBL2

c1 c1

c1 Mesma classe
que o mais
próximo, não
armazena

13 14

Algoritmo IBL2 Algoritmo IBL2

classe diferente
c1 c1 c1 que o mais
próximo,
armazena

c1 classe diferente
c1
c2 c2
que o mais
próximo,
armazena

15 16

Algoritmo IBL2 Algoritmo IBL2

c1 c1 c1 c1

c1 c1
c2 c2

c3 classe diferente c3
que o mais classe diferente
próximo, c2 que o mais
armazena próximo,
armazena

17 18

3
Algoritmo IBL2 Algoritmo IBL2

c1 c1 c1 c1

c1 Mesma classe
c1
c2 c2 c2 c2
que o mais
próximo, não
armazena c4 classe diferente
que o mais
c3 c3 próximo,
c2 c2 armazena

19 20

Algoritmo IBL2 Algoritmo IBL2

c1 c1 c3 classe diferente c1 c1 c3
que o mais
próximo,
armazena
c4
c1 c1
c2 c2 c2 c2

c4 c4
c3 c3
c2 c2 Mesma classe
que o mais
próximo, não
armazena
21 22

Algoritmo IBL2 Algoritmo IBL2

c1 c1 c3 c1 c1 c3
c4 c4

c4 c4
c1 c1
c2 c2 c2 c2

c4 c4
c3 c3
c2 classe diferente c2
que o mais
próximo,
armazena
23 24

4
IBL3 IBL1 x IBL2 x IBL3
‰Idem ao IBL2 exceto: ‰IBL1 fortemente relacionado com K-
‰Mantém um registro do número de classificações
corretas e incorretas para cada exemplo vizinhos mais próximos (K-NN, K-Nearest
armazenado Neighbors), K=1
‰Este registro mantém o desempenho de ‰IBL2 e IBL3 usam métodos de
classificação daquele exemplo
‰IBL3 avalia cada exemplo, utilizando um teste de esquecimento de exemplos (exemplos que
significância para determinar quais exemplos são não melhoram a precisão do classificador)
bons classificadores e quais são ruídos
‰Exemplos com ruído são descartados
¿Tolerante a ruídos
¿Usa menos memória que IBL2
25 26

Fronteiras IBL Algoritmo K-NN


‰Normalmente utiliza distância Euclidiana entre os
- + +
-
-
- -
exemplos
Divisão real dos ‰Encontre os K vizinhos mais próximos do novo
-
objetos no universo
-- exemplo a ser classificado
+ - -
- Conceito ‰Retorne a classe associada à maioria dos
+
aprendido
+
- - - - vizinhos, ou seja, se a maioria dos exemplos
+ +
encontrados entre os K vizinhos possui classe Ci
+ +
+ então atribua ao novo exemplo a classe Ci
+ + ƒ Usualmente valores ímpares são utilizados para evitar
+ + +
- - + empate, tipicamente K = 1, 3, 5 ou 7
+
- ƒ Quanto maior a quantidade de ruído no conjunto de
- - - - - exemplos, maior deve ser o valor de K
- -
27 28

Algoritmo K-NN Algoritmo K-NN


‰Uma variação do algoritmo é: ‰No caso de regressão, normalmente é
ƒ Seja um t (pré-definido ou definido pelo efetuada uma média entre os K vizinhos
usuário) tal que (0 < t <= K) mais próximos do novo exemplo
ƒ Encontre os K vizinhos mais próximos do novo
exemplo a ser classificado ‰Denotando o novo exemplo E=(xe,ye) e os
ƒ Se pelo menos t (0 < t <= K) dos exemplos K vizinhos mais próximos de E por (xiKNN,
encontrados entre os K vizinhos possui classe yiKNN), i=1,2,..., K então o valor de ŷe é
Ci então atribua ao novo exemplo a classe Ci, calculado como
caso contrário o exemplo não é classificado
1 K
(ou seja, o algoritmo não retorna a classe h( xe ) = yˆ e = ∑ yiKNN
associada) K i =1
29 30

5
Algoritmo K-NN Exemplo: Classificação
‰Assuma os seguintes exemplos de treinamento
c1 c1 c3 ƒ x1 = 〈1,2,7,8,+〉
c4
ƒ x2 = 〈1,3,7,6,-〉
‰Classifique x3 = 〈1,2,7,6〉
c1 c4
ƒ Calcular distância entre x3 e cada um dos exemplos de
c2 c2 treinamento
Novo Exemplo ™dist(x1, x3) = 2
c4 ™dist(x2, x3) = 1
c3
ƒ Classifique (rotule) x3 baseado nos K vizinhos mais
c2
Exemplos Armazenados próximos, onde K=1
Classe 1 ™x3 é classificado como – uma vez que é mais próximo a x2

31 32

Exemplo: Regressão Diagrama de Voronoi


‰ Assuma os seguintes exemplos de treinamento
ƒ (x1,1) Novo Exemplo x
ƒ (x2,1)
ƒ (x3,0)
Vizinho mais Próximo
‰ Desejamos classificar x4 usando K=2 vizinhos mais
de x
próximos, sabendo que
ƒ dist(x1,x4) = 5
ƒ dist(x2,x4) = 2
ƒ dist(x3,x4) = 4
‰ Portanto x4 está mais próximo a x2 e x3
‰ Calculando a média, obtém-se (1+0)/2 = 0.5
Exemplo: problema de 2 classes (x,o) e 2 atributos representados nos eixos
xey
33 34

Diagrama de Voronoi, K=3 Diagrama de Voronoi, K=7

Novo Exemplo Novo Exemplo

3 vizinhos 7 vizinhos
mais próximos mais próximos

2x,1o 3x,4o

35 36

6
KNN: Regressão, K=1 KNN: Regressão, K=3

37 38

KNN: Regressão, K=5 Fronteiras

39 40

Fronteiras, K=1 Fronteiras, K=5

41 42

7
Fronteiras, K=10 Fronteiras

43 44

Fronteiras, K=1 Fronteiras, K=5

45 46

Fronteiras, K=10 Fronteiras

47 48

8
Fronteiras, K=1 Fronteiras, K=5

49 50

Fronteiras, K=10 Fronteiras

51 52

Fronteiras, K=1 Fronteiras, K=5

53 54

9
Fronteiras, K=10 Fronteiras (Árvore de Decisão)

55 56

Análise de Complexidade Calculando a Distância


‰Custo de Aprendizado O(n) ‰A distância é o método mais natural para dados
ƒ Armazenar exemplos numéricos
‰Custo de Classificação ‰Valores pequenos indicam maior similaridade
ƒ Encontrar o vizinho mais próximo: O(n) ‰Métricas de Distância
™Computar distância entre o novo exemplo e todos os demais ƒ Euclidiana
exemplos ƒ Manhattan
™Comparar distâncias ƒ Etc.
ƒ Problemático para grande conjunto de exemplos ‰Não generaliza muito bem para dados não
‰Alternativa: numéricos
ƒ Usar uma árvore binária de busca para reduzir para ƒ Qual a distância entre “masculino” e “feminino”?
O(log n)

57 58

Normalização Normalização
‰ Considerando a distância Euclidiana, mais utilizada nas ‰De forma a evitar ruídos, é também comum:
aplicações, um problema ocorre quando um dos atributos
assume valores em um intervalo relativamente grande, ƒ dividir pelo desvio-padrão ao invés do intervalo ou
podendo sobrepujar os demais atributos ƒ “cortar” o intervalo por meio da remoção de uma
‰ Por exemplo, se uma aplicação tem apenas dois atributos pequena porcentagem (e.g. 5%) dos maiores e
A e B e A varia entre 1 e 1000 e B entre 1 e 10, então a menores valores daquele atributo e somente então
influência de B na função de distância será sobrepujada definir o intervalo com os dados remanescentes
pela influência de A ™Também é possível mapear qualquer valor fora do intervalo
‰ Portanto, as distâncias são freqüentemente para os valores mínimo ou máximo para evitar valores
normalizadas dividindo a distância de cada atributo pelo normalizados fora do intervalo [0,1]
intervalo de variação (i.e. diferença entre valores máximo
e mínimo) daquele atributo ‰Conhecimento do domínio pode freqüentemente
‰ Assim, a distância para cada atributo é normalizada para ser utilizado para decidir qual método é mais
o intervalo [0,1] apropriado

59 60

10
x i = ( xi ,1 , xi , 2 , xi ,3 , L, xi , m ) x i = ( xi ,1 , xi , 2 , xi , 3 , L , xi , m )
Métricas x j = ( x j ,1 , x j , 2 , x j ,3 , L, x j ,m )
Métricas x j = ( x j ,1 , x j , 2 , x j , 3 , L , x j ,m )

‰ Minkowski (Lp): escolha de p m xi ,r − x j ,r


depende da ênfase que se
‰Camberra distCa (x i ,x j ) = ∑
deseja dar a grandes r =1 xi ,r + x j ,r
diferenças entre dimensões
1/ p
 m
p
dist p ( x i ,x j ) = ∑ xi ,r − x j ,r 
 r =1  ‰Chebychev m
‰ Manhattan/City-Block (L1): se dist Ch ( x i , x j ) = max xi , r − x j , r
r =1
atributos binários, é conhecida
como distânciam Hamming
m
dist M (x i ,x j ) = ∑ xi , r − x j , r ‰Correlação ∑ (x i ,r − xi )( x j ,r − x j )
r =1
‰ Euclidiana (L2) distCo ( x i ,x j ) = r =1
1/ 2 m m
m 
dist 2 (x i ,x j ) = ∑ ( xi ,r − x j , r ) 2  Contornos de distâncias iguais ∑ (x i ,r − xi ) 2 ∑ ( x j ,r − x j ) 2
 r =1  x i = x j média dos valores do atributo X r
r =1 r =1

61 62

x i = ( xi ,1 , xi , 2 , xi ,3 , L , xi ,m ) x i = ( xi ,1 , xi , 2 , xi ,3 , L , xi , m )
Métricas x j = ( x j ,1 , x j , 2 , x j ,3 , L , x j , m )
Métricas x j = ( x j ,1 , x j , 2 , x j ,3 , L , x j , m )

‰Correlação Pearson:
ƒ Remove efeitos de magnitude;
‰O método mais simples para atributos
intervalo [-1.0, 1.0]
ƒ -1.0 = inversamente
categóricos é o seguinte
correlacionado, 0.0 = sem
correlação, 1.0 = perfeitamente 1 se xi,r ou x j ,r são desconhecidos
correlacionado

‰No exemplo, as linhas azul e overlap( xi,r , x j ,r ) = 1 se xi,r ≠ x j ,r
vermelha têm alta correlação,
mesmo que a distância entre as 0 se x = x
linhas seja significante  i,r j ,r
m
 m m

∑x
r =1
x j , r −  ∑ xi , r ∑ x j , r  / m
i ,r
 r =1 r =1 
dist Pearson ( x i ,x j ) = m

 m 2 m
 m 2 m
 distCat (x i , x j ) = ∑ overlap( xi , r , x j ,r )
 ∑ xi , r − (∑ xi ,r ) / m  ∑ x j , r − (∑ x j , r ) 2 / m 
2
r =1
 r =1 k =1  r =1 r =1 
63 64

Métrica Heterogênea Métricas


‰ Heterogeneous Euclidean-Overlap Metric: HEOM ‰Value Difference Metric: VDM
‰ Utiliza normalização no intervalo [0,1]
‰ Uma forma de lidar com aplicações com atributos nominais e ‰Atributos nominais
contínuos consiste em utilizar uma função de distância heterogênea ‰Uma versão é dada a seguir
que utiliza funções diferentes para tipos de atributos diferentes
ƒ N(Xr,xi,r): número de exemplos no conjunto T que tem o
overlap( xi , r ,x j , r ) se atributo X r é nominal valor xi,r para o atributo Xr
 ƒ N(Xr,xi,r,Cs): número de exemplos no conjunto T que
dist H ( xi ,r ,x j ,r ) =  xi , r − x j ,r
tem o valor xi,r para o atributo Xr e classe igual a Cs
 máx( X ) − mín( X ) se atributo X r é contínuo
 r r ƒ q: uma constante, usualmente 1 ou 2
q
k N ( X r , xi , r , Cs ) N ( X r , x j ,r , C s )
distVDM ( xi , r , x j ,r ) = ∑
m

dist HEOM (x i , x j ) = ∑ dist
r =1
H ( xi ,r , x j ,r ) 2
s =1 N ( X r , xi ,r ) N ( X r , x j ,r )
65 66

11
Métricas Métricas
‰Usando VDM, dois valores são considerados ‰ Como vimos, a distância Euclidiana é inapropriada para atributos
nominais e VDM é inapropriada para atributos contínuos
próximos se eles possuem mais classificações ‰ Assim, nenhuma das métricas vistas é suficiente para uso em uma
similares (i.e. maior correlação com a classe), aplicação heterogênea, ou seja, uma com ambos atributos nominais e
contínuos
desconsiderando qualquer ordem que eles ‰ A Heterogeneous Value Difference Metric (HVDM) é uma função de
possam ter distância heterogênea
‰ Para atributos contínuos, HVDM divide a diferença absoluta entre os
‰Por exemplo, se um atributo possui três valores atributos pelo desvio padrão do atributo (como 95% dos valores de
vermelho, verde e azul e a aplicação consiste em uma distribuição normal estão entre 2 desvios-padrões, os valores
são divididos por 4 desvios-padrões para mapear em um intervalo de
identificar se um objeto é ou não uma maçã, tamanho 1)
vermelho e verde serão considerados mais ‰ Para atributos discretos, HVDM pode utilizar VDM com q=1, q=2
(mas, na prática, a raiz quadrada não é tirada pois a função HVDM
próximos entre si do que vermelho e azul, uma eleva os valores ao quadrado novamente) ou uma função utilizada
em redes neurais Radial Basis
vez que vermelho e verde têm correlação similar
com a classe
67 68

Calculando Similaridade
HVDM
m
dist HDVM ( x i , x j ) = ∑ dist ( xi ,r , x j ,r ) 2
Numérica
Xr
r =1

 se xi ,r ou x j ,r
1

são desconhecidos ‰ Tradicionalmente no intervalo [0.0, 1.0]:
dist X r ( xi ,r , x j ,r ) = norm - vdm( xi ,r , x j ,r ) se X r é nominal
norm- diff ( x , x )
 i ,r j ,r se X r é contínuo ƒ 0.0 = sem similaridade, 1.0 = identidade

xi , r − x j , r ‰ Similaridade = 1.0 - distância
norm - diff ( xi ,r , x j ,r ) =
4 × std - dev( X r )

k
N ( X r , xi , r , C s ) N ( X r , x j , r , Cs )
norm - vdm1( xi , r , x j , r ) = ∑ −
s =1 N ( X r , xi , r ) N ( X r , x j ,r )
2
k
N ( X r , xi ,r , Cs ) N ( X r , x j ,r , C s )
norm - vdm2( xi , r , x j , r ) = ∑
s =1 N ( X r , xi , r )

N ( X r , x j ,r )
2
k
N ( X r , xi , r , Cs ) N ( X r , x j ,r , C s )
norm - vdm3( xi , r , x j , r ) = k × ∑ −
s =1 N ( X r , xi , r ) N ( X r , x j ,r )
69 70

Calculando Similaridade
Maldição da Dimensionalidade
Booleana/Categórica
‰ Dados dois vetores booleanos ‰ Correlação = (A+D)/(A+B+C+D)
X e Y, seja A o número de ‰O número de pontos necessários para
atributos onde ambos vetores
assumem 1, etc. como
‰ Coef. Jaccard = A / (A+B+C+D) manter uma determinada precisão
ƒ Utilizado quando a ausência de
mostrado abaixo
um valor verdadeiro não (densidade espacial) cresce
‰ Dois métodos para similaridade significa similaridade
são dados ao lado ƒ Exemplo:
exponencialmente com o aumento na
‰ Podem ser generalizados para
dados categóricos
™ Suponha que estamos
realizando um trabalho de
dimensão (acréscimo de novos atributos)
filogenética estrutural e X[j] é
verdadeiro se o organismo tem ‰Alternativamente, em altas dimensões, os
asas
1
Y[j]
0 ™ Dois organismos não são mais pontos tendem a ser tornar eqüidistantes
similares se ambos não têm
1 A B asas uns dos outros
X[j] ™ Dessa forma, o coeficiente de
0 C D Jaccard é mais natural que o
coeficiente de correlação neste
caso

71 72

12
Maldição da Dimensionalidade Maldição da Dimensionalidade
‰ 10 pontos, igualmente espaçados, intervalo [0,1] ‰ Cada atributo adicional aumenta uma dimensão, assumindo não mais
de 10 valores possíveis para cada atributo:

‰ 2 atributos, ~100 ‰ 3 atributos, ~1,000


combinações combinações

‰ 4 atributos, ~10.000 ‰30 atributos…


combinações ‰10.000.000.000.000.000
1 ponto 1 ponto 1 ponto .000.000.000.000.000
ocupa ocupa ocupa
10% espaço 1% espaço 0.1% espaço combinações
73 74

Maldição da Dimensionalidade Maldição da Dimensionalidade


1

‰ Os vizinhos mais próximos em espaços de altas 0.9


dimensões normalmente estão muito distantes entre si
‰ Em outras palavras, um ponto no espaço encontra-se 0.8

quase na mesma distância de todos os demais pontos 0.7

‰ Considere um conjunto de n exemplos num espaço 0.6


hipercúbico com m dimensões e suponha vizinhanças
hipercúbicas de lado b e volume bm 0.5
b

‰ Para conter K pontos, a vizinhança deve ocupar uma 0.4

fração K/n do volume total que é 1


ƒ n (pontos) → 1 (volume) 0.3

ƒ K (pontos) → bm (volume) 0.2

‰ Assim bm = K/n ou b = (K/n)1/m 0.1


ƒ Assumindo K=7, m=100 e n=1.000.000 então b ≅ 0.888
ƒ Isto significa que a vizinhança tem que abranger quase todo os 0
0 10 20 30 40 50
espaço (quase 89%) Dimensão (m)
K=7
n=10^2 n=10^3 n=10^4 n=10^5 n=10^6 n=10^7 n=10^8 n=10^9 n=10^10
75 76

Maldição da Dimensionalidade Resumo


1

0.9 ‰Métodos IBL baseiam suas decisões na


0.8 similaridade de exemplos conhecidos ao invés de
0.7
construir abstrações
0.6
‰Conseqüentemente, eles têm tempo pequeno de
aprendizado, mas um grande tempo de
classificação (lazy)
0.5
b

0.4
‰Vantagens
ƒ Não requer nenhum mecanismo de raciocínio
0.3

0.2
ƒ Não se baseia em abstrações de conceitos
0.1 ƒ É capaz de modelar fronteiras (problemas/conceitos)
0
complexas
0 20 40 60 80 100 120 140 160 180 200

K=7 Dim e nsão (m )

n=10^2 n=10^3 n=10^4 n=10^5 n=10^6 n=10^7 n=10^8 n=10^9 n=10^10 77 78

13
Resumo
‰ Desvantagens
ƒ Necessidade de definir similaridade métrica para objetos no
universo
™ Métricas apropriadas de distância
ƒ Representação não é inteligível aos humanos
ƒ Para a classificação de um novo exemplo, todos os dados de
treinamento devem estar disponíveis
ƒ Computacionalmente dispendioso em altas dimensões
™ Indexação eficiente dos exemplos de treinamento
ƒ A métrica de distância pode se tornar enganadora se todos os
atributos são considerados
™ Em altas dimensões, todos os pontos encontram-se quase na mesma
distância entre si
™ Tratamento para atributos irrelevantes
ƒ (K-NN) Escolha de K é desconhecida
™ uso de cross-validation para determinar K

79

14