Você está na página 1de 49

K-NN

K-Nearest Neighbors
K- Vizinhos Mais Próximos

Geraldo Xexéo, D.Sc.


DCC/IM & PESC/COPPE
UFRJ
Ideia Básica
• Seus vizinhos dizem quem você é

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
2
Escolhendo classes

Class 1 Class 2 Class 3


w4
w2 w3 w5
w13 w9
w1
w14
w10

w8 s
w7 w6
Class 4 w11
w12
Class 5

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
3
Outros nomes
• K-Nearest Neighbors
• Memory-Based Reasoning
• Example-Based Reasoning
• Instance-Based Reasoning
• Lazy Learning

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
4
Eager x Lazy
• “Ansioso x Preguiçoso”
• Eager = pontos de treinamento constróem um
modelo generalizado antes de prever um novo
ponto
• Lazy = Não há necessidade de treinamento ou
aprendizado do modelo, o modelo só é criado
quando o novo ponto aparece
• Lazy faz quase todo o trabalho na faze de
teste/operação
• Eager faz quase todo o trabalho no treinamento

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
5
O que é
• Algortimos de classificação
• Reconhecimento de padrões
• Guarda todos os casos disponíveis
• Classifica novos casos em função de uma
medida de similaridade
• Um dos algoritmos mais usados hoje em dia
• Não paramétrico
• Lazy Learning

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
6
Como é feito
• Um objeto recebe a classe da maioria dos
seus vizinhos mais próximos
• K-vizinhos
• Medidos com uma medida de distância
• 1/similaridade
• Os mais similares = mais próximos

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
7
3 passos básicos

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
8
Espaço de Voronoi

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
9
K importa?

https://www.analyticsvidhya.com/blog/2018/03/introduction-k-neighbours-
algorithm-clustering/

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
10
Dados Contínuos
(Valores Reais)

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
11
Medidas de Distância
Variáveis Contínuas
𝑑= ෍ 𝑥𝑖 − 𝑦𝑖 2
Euclideana
𝑖=1..𝑘

Manhattan 𝑑 = ෍ |𝑥𝑖 − 𝑦𝑖 |
𝑖=1..𝑘

𝑑 = ( ෍ 𝑥𝑖 − 𝑦𝑖 𝑞 )1/𝑞
MInkowski
𝑖=1..𝑘

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
12
Algoritmo
• Cada instância é um ponto pi
• Cada instância é representada por atributos
numéricos (x1,x2,…,xn)i
• Cada instância possui uma classe cm
• Dado um novo ponto q, com atributos numéricos
(y1,y2,…,yn)
• Calcular todas as distâncias d(pi,q)
• Selecionar as k menores distância
• Classificar q na classe mais frequente entre as
instâncias mais próximas
Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
13
3-KNN (ou 3-nn)
Cliente Idade Renda Cartões Classe Distância para Fábio
(1000R$)
Ana 35 35 3 Não 15.16
Bruno 22 50 2 Sim 16
Carla 63 200 1 Não 152.23
Daniel 59 170 1 Não 122
Eva 25 40 4 Sim 15.74
Fábio 37 50 2 ?

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
14
Escolha de K
• K muito pequeno
• Sensível a ruído
• K grande
• Funciona bem
• Mas pode incluir a outra classe
• Regra prática
• K < √𝑁 onde 𝑁 é o número de exemplos

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
15
Exemplo de ruído (1-NN)

Todos os exemplos na área azul


serão classificados errados como
da classe azul

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
16
Peso das características
• Cada característica pode receber um peso,
determinando sua importância
• A partir de conhecimento prévio de
características mais importantes
• Por aprendizado

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
17
Decidindo a Classe
• Classe mais frequente
• Classe com menor distância agregada

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
18
Efeitos de Escala

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
19
Efeitos de Escala
• Características diferentes podem ter escalas
de medida diferentes
• Peso e Altura
• Consequências
• Quando uma características tem sua escala com
números muito maiores, vai ter mais influência
• Um viés é introduzido

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
20
Normalização
• A normalização torna todas as características
iguais
• Normalmente mapeando em valores entre zero e
um
• Importância da Distribuição
• Possibilidade de usar mapeamentos não
lineares
• Log

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
21
Normalização (II)
• Linear

Média
xij - m j
• Normal zij =
sj
Desvio
Padrão

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
22
Buscando K

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
23
Efeitos de K

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
24
Erro de Treino por k

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
25
Erro de Validação com K

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
26
Dados categóricos
ou nominais

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
27
Categorias
• Podem ser dados valores
• Principalmente para ordinais
• Podem ser criados novos atributos com one-hot
encoding
• Atributo: Educação
• Sem Educação, Fundamental Incompleto, Fundamental,
Médio, Superior, Pós-Graduado
• 1,2,3,4,5,6
• 6 atributos com valor 1 ou 0
• Distância de Hamming
• D(x=y) = 0
• D(x<>y) = 1
Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
28
Value Difference Metric
(VDM)
• Dois valores são considerados próximos se
eles tem mais classificações similares, i.e., se
eles tem correlações similares com as
classes

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
29
Distância para dados
Heterogêneos

Wilson, D. R. and Martinez, T. R., Improved Heterogeneous Distance Functions, Journal of


Artificial Intelligence Research, vol. 6, no. 1, pp. 1-34, 1997

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
30
Exemplo

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
31
Empréstimo

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
32
Distância Simples

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
33
Distância Normalizada

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
34
Prevendo valores contínuos
k
fˆ (q) = arg max å wi d (v, f ( xi ))
vÎV i =1

Trocar escolha por


media ponderada

k
å wi f ( xi )
fˆ (q) = i =1 k
å wi
i =1

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
35
Métricas

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
36
Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
37
Fuzzy K-NN

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
38
Fuzzy K-NN
• Objetivo é calcular uma função de pertinência
as classes, como uma função da distância do
objeto aos vizinhos mais próximos
• J. Keller, M. Gray, J. Givens. A Fuzzy K-
Nearest Neighbor Algorithm. IEEE
Transactions on Systems, Man and
Cybernectics, vol smc-15, no 4, July August
1985

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
39
Fuzzy K-NN

Classe 2
Classe 1 Classe 3
w2 w4 w5
w13
w1 w9 w14
w3

w10

w8 w7 w6
w11
w12
Classe 4 Classe 5

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
40
Fuzzy K-NN algorithm
set k
{Calculating the NN}
for i = 1 to t {quantidade de dados}
Calculate distance from y to xi
if i<=k {os primeiros são colocados }
then add xi to E
else if xi está mais perto de y que
qualquer outro em E
then apague o vizinho mais longe
em E e coloque xi em E

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
41
Fuzzy K-NN algorithm
Calcule i(y) usando
for i = 1 to c // number of classes

k  
 1 
  ij
 y − x
2 ( m −1)

i ( y ) =
j =1
 j 
k  
 1 
Grau de pertinência do ponto   y − x
2 ( m −1)

j =1
 j 
Isso é a media dos graus de pertinência ponderada pelo inverso das distâncias
Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
42
Conclusão

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
43
Desvantagens do KNN
• Tempo para classificar um novo exemplo
• Precisa calcular e comparar todas as distâncias
• Dificuldade de escolher k
• Precisa muitos exemplos já na base
• Sujeito a problemas de dimensionalidade
• Excesso de atributos irrelevantes

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
44
Vantagens de KNN
• Simples e intuitivo
• Tolerante a ruídos (boa escolha de k)
• Pode ser aplicado em dados com quaisquer
distribuições
• Boa classificação se tem um bom número de
exemplos
• Classes podem ser desequilibradas

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
45
Necessidade de Indexar
• Calcular a distância de apenas alguns
vizinhos
• Boa indexação

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
46
FIM

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
47
Bibliografia
1. Transparências Instance Based Learning (DML
– BYU Data Mining Lab) – CS 478 Machine
Learning
2. Transparências de Adriano Cruz
3. https://www.slideshare.net/ajaykrishnateja/knn-
48499627?from_action=save
4. https://www.slideshare.net/tilanigunawardena/k-
nearest-neighbors?from_action=save
5. https://www.analyticsvidhya.com/blog/2018/03/i
ntroduction-k-neighbours-algorithm-clustering/
6. https://www.datacamp.com/community/tutorials/
k-nearest-neighbor-classification-scikit-learn
Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
48
Contato

Geraldo Xexéo
xexeo@cos.ufrj.br
gxexeo@gmail.com
Este obra está licenciado com uma Licença Creative Commons
Atribuição-NãoComercial-SemDerivações 4.0 Internacional.

Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
49

Você também pode gostar