Escolar Documentos
Profissional Documentos
Cultura Documentos
K-Nearest Neighbors
K- Vizinhos Mais Próximos
Geraldo Xexéo
xexeo@cos.ufrj.br
K-NN
2
Escolhendo classes
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)
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
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
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