Ciência da Computação (Machine Learning) Aula 07 Classificação com o algoritmo knn Max Pereira
Classificação com o algoritmo k-nearest Neighbors (knn) Como os filmes são categorizados em gêneros? O que define esses gêneros? Quem determina quais filmes vão para quais gêneros? Os filmes em um gênero são similares, mas baseado em que?
Prós: Alta precisão, não sensível a outliers, não é necessário suposições sobre os dados. Contras: Custo computacional, requer muita memória
Algoritmo de classificação simples. Classifica objetos (dados) com base em exemplos de treinamento que estão mais próximos no espaço de características.
Funcionamento: k-nearest Neighbors 1. Temos um conjunto de exemplos (dados), nosso conjunto de treinamento. 2. Todos os dados possuem rótulos (classes) 3. Quando recebemos dados novos sem rótulo (classe), comparamos esses dados com os dados existentes. 4. Resgatamos os dados mais similares (nearest neighbors) e verificamos seus rótulos (classes).
Funcionamento: 5. Focamos nos k (dados) mais similares do nosso conjunto de dados 6. Finalmente olhamos para a maioria dos k (dados) mais similares e, essa classe, será atribuída aos dados que estamos tentando classificar.
Para utilizar o knn é necessário: 1) Um conjunto de exemplos (dataset) 2) Definir uma métrica para determinar a distância entre os exemplos de treinamento. 3) Definir o valor de k (número de vizinhos mais próximos)
Escolha do k k=1 Classe quadrados k=3 Classe triângulos k=7 Classe quadrados?
O k é determinante na classificação k=1 Classe + k=5 Classe - - - + + x q - - - + - +
Geometria e vizinhos mais próximos Nós podemos encarar a tarefa de classificação como um mapeamento dos dados de entrada e as respectivas saídas (classes). Dessa forma, as entradas são listas de valores de características. Isso sugere uma visão geométrica dos dados.
Geometria e vizinhos mais próximos Nesse caso, nós temos uma dimensão para cada característica. Nessa visão, os exemplos são pontos em um espaço de alta dimensão. Assim, podemos executar operações geométricas nesses dados.
Espaço de características 2,20 2,00 Altura 1,80 1,60 1,40 1,20 1,10 20 40 60 70 90 110 130 150 Peso
Dados como vetores de características Para a máquina, as características não têm qualquer significado. Apenas os valores dessas características, e como eles variam no conjunto de exemplos. Assim, podemos pensar em um exemplo como um vetor de características, consistindo em uma única dimensão para cada característica, onde cada dimensão é simplesmente algum valor real.
A grande vantagem de pensar nos exemplos como vetores em um espaço de alta dimensão e aplicar conceitos geométricos no aprendizado de máquina. Por exemplo, uma das operações mais simples em um espaço vetorial é o cálculo de distâncias.
Em geral, em um espaço de dimensão D, a distância Euclidiana entre dois vetores p e q é dada por: d( p, q) n i 1 ( p i q i 2 )
Cliente Idade Renda Produto 1 45 46000 Livro 2 39 100000 TV 3 35 38000 DVD 4 69 150000 Celular 5 58 51000??? Passo 1: Determinar a fórmula da distância (Distância Euclidiana Determinar a fórmula da distância (Distância Euclidiana Normalizada) Normalizada) Distância = Distância = 2 2 (58 idade) 2 (58 idade) (69 35) + (51000 renda) (69 35) + (150000 38000) (51000 renda) (150000 38000) 2
Cliente Distância Produto Passo 2: Calcular as distâncias 1 0.382 Livro 2 0.710 TV 3 0.686 DVD 4 0.941 Celular 5 0.0??? Para responder a pergunta O que o cliente 5 deve comprar?, baseado no algoritmo, a resposta seria um livro. Pois a distância entre o cliente 5 e o cliente 1 é menor. Baseado nesse modelo pode-se prever o comportamento do cliente 5. O algoritmo pode ser expandido além do exemplo mais parecido, para incluir os exemplos mais parecidos, por exemplo, 3-vizinhos mais próximos.
O algoritmo também pode ser usado para prever um valor de saída do tipo Sim/Não (classe). Cliente Idade Renda Classe 1 45 46 Sim 2 39 100 Não 3 35 38 Sim 4 69 150 Não 5 58 51??? Cliente Distância Classe 1 0.382 Sim 2 0.710 Não 3 0.686 Sim 4 0.941 Não 5 0.0??? Usando 1-vizinho mais próximo o modelo diria que a saída do cliente 5 seria Sim e 2-vizinhos mais próximos também seria Sim (ambos os clientes 1 e 3 têm saídas Sim ). Aplicando 3-vizinhos mais próximos o modelo diria Sim (os clientes 1 e 3 têm saídas Sim, o cliente 2 tem saída Não, então a maioria desses valores é Sim )
Validação Cruzada: utilizada para evitar overfitting e para certificar a robustez dos resultados. 1. Divida o conjunto de exemplos em dois subconjuntos: Treinamento (TR) e Teste (TE). 2. Use a indução (knn) para gerar a hipótese H sobre TR. 3. Porcentagem de erro de H aplicada a TE. 4. Repete os passos 1-3 com diferentes tamanhos de TE e TR, com elementos escolhidos aleatoriamente.
Sec.14.1 Documentos em um espaco vetorial Governo Ciências Artes
Sec.14.1 Documento de teste pertence a qual classe? Governo Ciências Artes
Sec.14.1 Documento de teste = Governo Esta hipótese de similaridade sempre será verdadeira? Governo Ciências Artes
Discussão: k-nearest Neighbors Não é necessário seleção de características. Funciona com grande número de classes. Classes podem influenciar umas as outras. Pontuações podem ser difíceis de converter para probabilidades. Não é necessário treinamento.
library(ggvis) k-nearest Neighbors knn na linguagem R >data(iris) >library(ggvis) >iris %>% ggvis(~sepal.length, ~Sepal.Width, fill = ~Species) %>% layer_points()