27
AGRUPAMENTO COM K-MEANS Alexandre Duarte - http://alexandre.ci.ufpb.br/ensino/iad

Agrupamento com K-Means

Embed Size (px)

DESCRIPTION

Aula da disciplina "Introdução à Análise de Dados" sobre agrupamentos com K-means

Citation preview

Page 1: Agrupamento com K-Means

AGRUPAMENTO COM K-MEANSAlexandre Duarte - http://alexandre.ci.ufpb.br/ensino/iad

Page 2: Agrupamento com K-Means

AGENDA• O que é agrupamento

• Iterações do K-Means

• Critérios e Propriedades do K-Means

• O que é um bom agrupamento

• Quantos grupos

Page 3: Agrupamento com K-Means

O QUE É AGRUPAMENTO

• Um agrupamento (cluster) é um subconjunto coeso de entidades: entre entidades de um cluster as similaridades são maiores do que entre entidades de fora do cluster

• Agrupamento é um conjunto de métodos para encontrar clusters e estruturas de agrupamento nos dados.

Page 4: Agrupamento com K-Means

DIFERENTES PERSPECTIVAS

• Aprendizagem de máquina: análise não-supervisionada de padrões

• Descoberta de conhecimento: construção de classificadores

• Análise de dados: Identificar estruturas de agrupamento nos dados

Page 5: Agrupamento com K-Means

IDENTIFICANDO ESTRUTURAS DE AGRUPAMENTO NOS DADOS• Agrupamento individual

• Detectando comunidades em uma rede

• Determinando um subconjunto de proteínas similares a uma determinada proteína

• Identificando um subconjunto de documentos sobre um mesmo tema

Page 6: Agrupamento com K-Means

IDENTIFICANDO ESTRUTURAS DE AGRUPAMENTO NOS DADOS• Particionamento

• Divisão da população de acordo com diferentes estilos de vida

• Agrupamento de territórios em regiões econômicas

• Particionamento de imagens em segmentos homogêneos

Page 7: Agrupamento com K-Means

IDENTIFICANDO ESTRUTURAS DE AGRUPAMENTO NOS DADOS

• Agrupamento hierárquico

• Taxonomia de organismos

• Classificação de sub-áreas da computação

• Ontologia de conceitos em um domínio

Page 8: Agrupamento com K-Means

ITERAÇÕES DO K-MEANS• K-Means: Um método para construir K

agrupamentos sem interseções

• Cada agrupamento é representado por um centro ck e um conjunto Sk(k=1, …, K)

S Length S Width P Length P Width

Centro 5.006 3.428 1.462 0.246

Média geral 5.843 5.057 3.758 1.199

Diferença -0.837 0.371 -2.296 -0.953

Iris setosa: Centro

Page 9: Agrupamento com K-Means

ITERAÇÕES DO K-MEANS1. Especifique K, o número de agrupamentos, e os

centros iniciais ck (k=1, …, K)

2. Atualize os conjuntos Sk (k=1, …, K)

3. Atualize os centros ck (k=1,…, K)

4. Se os novos centros coincidem com os anteriores, pare, senão, vá para 2.

Page 10: Agrupamento com K-Means

ITERAÇÕES DO K-MEANS

a) b)

c) d)

Page 11: Agrupamento com K-Means

APLICANDO K-MEANS A BASE DE IRIS

• Pré-processamento

• A: Sem pré-processamento: todas as medidas estão relacionadas ao mesmo tipo de flor e na mesma unidade

• B: (Z-Scoring) Cada variável é centralizada em relação a média e normalizada pelo desvio padrão

• C: Cada variável é centralizada em relação a média e normalizada pelo range

Page 12: Agrupamento com K-Means

APLICANDO K-MEANS A BASE DE IRIS

• Especifique K = 3 e os exemplares 1, 51 e 101 como os centros iniciais (conhecimento preliminar)

• A (sem pré-processamento): Convergiu em 4 iterações

• B (Z-scoring): Convergiu em 7 iterações

• C (Normalização pelo range): Convergiu em 5 iterações

Page 13: Agrupamento com K-Means

APLICANDO K-MEANS A BASE DE IRIS

• http://blog.whn.se/post/28851413626/k-means-clustering-in-r

Page 14: Agrupamento com K-Means

VANTAGENS

• Computação é intuitiva

• Processamento é rápido e não requer memória adicional

• Processamento é fácil de paralelizar (big data)

Page 15: Agrupamento com K-Means

DISCUSSÃO

• O K-means sempre converge?

• Os resultados são independentes da inicialização?

• Se não, como devemos inicializar?

• Como escolher o número de clusters K ?

Page 16: Agrupamento com K-Means

O K-MEANS SEMPRE CONVERGE?

• Minimizar W(S,c) alternando

• Mins W(S,c): atualização dos clusters

• Minc W(S,c): atualização dos centros

• Portanto, W(S,c) diminui a cada passo: convergência

W (s,c) = d(i,ck )i∈Sk∑

k=1

K

Page 17: Agrupamento com K-Means

OS RESULTADOS SÃO INDEPENDENTES DA INICIALIZAÇÃO?

• Qual seria o agrupamento ótimo para K = 2 ?

• Convergimos para esse agrupamento com qualquer dois pontos escolhidos como centros iniciais ?

Page 18: Agrupamento com K-Means

COMO ESCOLHER OS CENTROS INICIAIS ?

• Escolher os pontos que maximizem D(S,c)

• onde:

• Nk é o número de entidades em Sk

• <ck,ck> é distância entre a origem e ck ao quadrado

D(S,c) = Nk < ck ,ck >k=1

K

Page 19: Agrupamento com K-Means

COMO ESCOLHER OS CENTROS INICIAIS ?

• Requer que os pontos sejam pré-processados pela média (origem seria a média de todas as coordenadas)

Page 20: Agrupamento com K-Means

O QUE É UM BOM AGRUPAMENTO?

• Critério interno

• Exemplo de critério interno: média do quadrado das distâncias no K-means

• Porém, um critério interno muitas vezes não avalia a utilidade do agrupamento para uma aplicação.

• Alternativa: Critério externo

• Avaliar de acordo com um critério definido por humanos

Page 21: Agrupamento com K-Means

O QUE É UM BOM AGRUPAMENTO?

• Baseado em algum padrão amplamente adotado

• Objetivo: O agrupamento deve reproduzir a classes definidas no padrão

• Exemplo de medida de quão bem conseguimos reproduzir classes pré-definidas: pureza

Page 22: Agrupamento com K-Means

CRITÉRIO EXTERNO: PUREZA

• Ω= ω1, ω2, . . . , ωK é o conjunte de grupos e

• C = c1, c2, . . . , cJ é o conjunto de classes

• Para cada grupo ωk : encontrar a cj com mais membros nkj em ωk

• Somar todos os nkj e dividir pelo número total de pontos

Page 23: Agrupamento com K-Means

EXEMPLO DO CALCULO PUREZA

Para calcular a pureza: 5 = maxj |ω1 ∩ cj | (classe x, grupo 1); 4 = maxj |ω2 ∩ cj | (classe o, grupo 2); e 3 = maxj |ω3 ∩ cj | (classe ⋄, grupo 3). Pureza é (1/17) × (5 + 4 + 3) ≈ 0.71.

Page 24: Agrupamento com K-Means

PUREZA DO AGRUPAMENTO DAS IRIS

Pureza = (1/150) * (50 + 36 + 48) = 0.89

1 2 3

setosa 50 0 0

versicolor 0 2 48

virginica 0 36 14

Page 25: Agrupamento com K-Means

QUANTOS GRUPOS?• O número de grupos K é dado em muitas aplicações.

• Mas e quando isso não acontece? Há um número bom ou ruim para a quantidade de grupos?

• Uma forma de agir : definir um critério de otimização

• Dado o conjunto de dados, encontrar o K para o qual o valor ótimo é obtido

• Que critérios de otimização podemos usar?

• Não podemos utilizar a média dos quadrados das distâncias do centróide como critério: o valor ótimo sempre seria fazer K = N.

Page 26: Agrupamento com K-Means

QUANTOS GRUPOS• Ideia básica:

• Começar com 1 grupo (K = 1)

• Continue adicionando grupos (= continue a aumentar K)

• Adicione uma penalidade para cada novo grupo

• Balancear a penalidade da adição de novos grupos e o quadrado das distâncias até os centroides

• Escolher o valor K com o melhor tradeoff

Page 27: Agrupamento com K-Means

ENCONTRANDO O K PARA A BASE DE IRIS

http://www.statmethods.net/advstats/cluster.html