19
1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Embed Size (px)

Citation preview

Page 1: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

1

KNN – K Nearest Neighbor(K Vizinhos mais Próximos)

Prof. Alexandre Monteiro

Recife

Page 2: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: [email protected]

[email protected]

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878

Page 3: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

História

Método introduzido nos anos 50.

Muito dispendioso computacionalmente.

Só ganhou popularidade a partir dos anos 60, como o aumento da capacidadecomputacional dos computadores.

Muito usado na área de Reconhecimento de Padrões.

Page 4: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Descrição do Método KNN Dados: Banco de Dados de m tuplas

classificadas (a1,...,an,C) Uma tupla X = (x1,...,xn) não classificada Os valores dos atributos são normalizados.

Valor normalizado = (v.real - MinA)/(MaxA – MinA)

Calcula-se a distância de X a cada uma das tuplas do banco de dados.

Pega-se as k tuplas do banco de dados mais próximas de X.

A classe de X é a classe que aparece com mais frequência entre as k tuplas mais próximas de X.

Page 5: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Diferentes valores de K

K = 1 K = 2 K = 3

Page 6: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Algumas questões

Como calcular a distância entre duas tuplas ?• Para atributos contínuos : distância Euclidiana d(x,y) = √ Σn

i=1 (xi – yi)2

• Para atributos categóricosSe xi = yi então xi – yi = 0Se xi e yi são distintos: xi – yi = 1

Como lidar com valores incompletos (ausentes) ao calcular a distância entre duas tuplas X e Y ?

• Se xi e yi são ausentes: xi – yi = 1• Se xi é ausente e yi não: xi – yi = max { |1 – yi|, |0 – yi| }

Como determinar o melhor valor de K (=número de vizinhos) ?

Obtido repetindo-se os experimentos.

Page 7: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Vantagens e Desvantagens

Performance • Não constrói um modelo de classificação.• Processo de classificação de uma tupla é

lento.• Classificadores Eager (espertos) gastam

tempo para construir o modelo. O processo de classificação de uma tupla é rápido.

Sensível a ruídos• KNN faz predição baseando-se em

informações locais à tupla sendo classificada.• Árvores de decisão, redes neurais e

bayesianas encontram modelo global que se leva em conta todo o banco de dados de treinamento.

Page 8: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Exemplo

ID IDADE RENDA ESTUDANTE CREDITO CLASSE

1 ≤ 30 Alta Não Bom Não

2 ≤ 30 Alta Sim Bom Não

3 31...40 Alta Não Bom Sim

4 > 40 Média Não Bom Sim

5 > 40 Baixa Sim Bom Sim

6 > 40 Baixa Sim Excelente Não

7 31...40 Baixa Sim Excelente Sim

8 ≤ 30 Média Não Bom Não

9 ≤ 30 Baixa Sim Bom Sim

10 > 40 Média Sim Bom Sim

11 ≤ 30 Média Sim Excelente Sim

12 31...40 Média Não Excelente Sim

13 31...40 Alta Sim Bom Sim

14 > 40 Média Não Excelente Não

Compra-computador

X = (≤ 30, Média,Sim,Bom)

Page 9: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Exemplo

Distância VALOR

d(X,1) 1,41

d(X,2) 1

d(X,3) 1,73

d(X,4) 1,41

d(X,5) 1,41

d(X,6) 1,73

d(X,7) 1,73

d(X,8) 1

d(X,9) 1

d(X,10) 1

d(X,11) 1

d(X,12) 1,73

d(X,13) 1,41

d(X,14) 1,73

Page 10: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Exemplo

K = 5

Os 5 vizinhos mais próximos são X1 = ( ≤ 30 Alta Sim Bom) Classe = Não

X2 = (≤ 30 Média Não Bom) Classe = Não

X3 = ( ≤ 30 Baixa Sim Bom) Classe = Sim

X4 = ( > 40 Média Sim Bom) Classe = Sim

X5 = (≤ 30 Média Sim Exc. ) Clase = Sim

Logo, X é classificada na classe = Sim

Page 11: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Acurácia de Classificadores

Como medir ?

Page 12: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Holdout

Método Holdout• Considera-se um banco de dados de amostras• Divide-se em 2 partes : D1 e D2• D1 é 2 vezes maior do que D2• Acurácia= número de tuplas de D2 bem

classificadas dividido pelo total de tuplas de D2

Subamostragem Randômica• Variação do método Holdout• Método Holdout é repetido k vezes• Acurácia geral = média das acurácias em

cada rodada

Page 13: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Cross-Validation

Validação Cruzada (k-fold Cross-validation)• Dados iniciais são particionados em k partes D1,..., Dk

de tamanhos aproximados• Treinamento e testes são executados k vezes.• Em cada iteração i (i=1...k) Di é escolhido para teste e

o restante das partições são utilizadas como treinamento.

• Cada tupla de amostra é utilizada o mesmo número de vezes como tupla de treinamento e uma única vez como tupla de teste.

• Acurácia de um classificador = número total de tuplas bem classificadas nas k iterações dividido pelo total de tuplas no banco de dados original.

• Acurácia de um preditor = Soma dos erros dividido nas k iterações dividido pelo total de tuplas no banco de dados original.

Page 14: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Variantes do Cross-validation

Leave-one-out• Caso especial de k-fold cross validation• Cada Di tem um único elemento• Em cada iteração somente 1 tupla é utilizada

para teste.

Cross-validation estratificada• As “folhas” D1, ... , Dk são tais que a

distribuição das classes em cada folha é aproximadamente igual à distribuição nos dados iniciais.

• Ex: se em D a proporção de tuplas das classes C1 e C2 é de 2 para 1 então esta proporção é mantida em cada “folha” Di.

Page 15: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Bootstrap

A cada vez que uma tupla é selecionada para participar do grupo de treinamento, ela volta novamente para o banco inicial, podendo ser novamente selecionada na próxima vez.

Bancos de treinamento e testes podem conter tuplas repetidas.

Page 16: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

.632 Bootstrap

Banco de dados original com d tuplas

Os sorteios de tuplas são realizados d vezes.

Ao final de d sorteios temos um banco D1 de treinamento (boostrap sample) e um banco D2 de testes.

A amostra de treinamento D1 tem exatamente d elementos.

Page 17: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

.632 Bootstrap

É bem provável que alguma tupla t do banco original ocorre repetida em D1.

Qual a probabilidade de uma tupla não estar no banco de treinamento D1 no final dos d sorteios ?• (1 – 1/d)d

• lim (1 – 1/d)d = 1/e (para d infinito)• e = 2.718• 1/e = 0,368• 36,8% das tuplas não são escolhidas: formam o

conj. D2• 63,2% das tuplas são escolhidas: formam o

boostrap D1

Page 18: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Acurácia medida com o Boostrap

Repete-se o processo de amostragem k vezes Em cada vez construímos D1 e D2 e medimos a

acurácia do classificador (ou preditor) M

Acc(Mi)test-set = acurácia de M calculada na iteração i, com D2 como teste e D1 como treinamento

Acc(Mi)train-set = acurácia de M calculada na iteração i, com dados originais como teste e D1 como treinamento.

Acurácia(M) =

Σ (0.632*Acc(Mi)test-set + 0.368*Acc(Mi)train-set )

i = 1

k

Page 19: 1 KNN – K Nearest Neighbor (K Vizinhos mais Próximos) Prof. Alexandre Monteiro Recife

Machine Learning. Tom Mitchell. McGraw-Hill.1997.

Referências