aprendizagem de máquina - ppgia.pucpr.bralekoe/am/2008/6a-algoritmokmeans-apremaq-… ·...

35
Aprendizagem de Máquina Algoritmo k–Means Alessandro L. Koerich Mestrado/Doutorado em Informática (PPGIa) Pontifícia Universidade Católica do Paraná (PUCPR)

Upload: buikhanh

Post on 31-Jan-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Aprendizagem de Máquina

Algoritmo k–Means

Alessandro L. Koerich

Mestrado/Doutorado em Informática (PPGIa)Pontifícia Universidade Católica do Paraná (PUCPR)

Page 2: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 2Alessandro L. Koerich ([email protected])

Problema do Agrupamento

Seja x = (x1, x2,…, xd) um vetor d dimensional de características

Seja D um conjunto de x vetores,

D = { x(1), x(2), …, x(N) }

Problema do Agrupamento: Tendo D desejamos agrupar os N vetores em k grupos tal que o agrupamento seja ótimo.

Page 3: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 3Alessandro L. Koerich ([email protected])

Algoritmo k–Means

O algoritmo k–Means ou k–Médias é uma técnica iterativa muito simples e poderosa para particionar um conjunto de dados em grupos separados, onde o valor de k, deve ser pré–determinado.

k = número de grupos.

A distância Euclidiana entre os vetores de atributos xi e os representantes dos clusters Θi éutilizada como medida de dissimilaridade.

Page 4: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 4Alessandro L. Koerich ([email protected])

Algoritmo k–Means

Entrada:um conjunto de exemplos D contendo N vetores de atributos d–dimensionais

k = número de clusters

Saída:k vetores de média, isto é, os centros dos k clusters)

afiliação (membership) para cada um dos N vetores de atributos de D.

Page 5: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 5Alessandro L. Koerich ([email protected])

Algoritmo k–Means

Page 6: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 6Alessandro L. Koerich ([email protected])

Algoritmo k–Means

1. Escolha estimativas iniciais arbitrárias Θj (0) para os Θj ‘s, j=1, ..., m (i.e. para os centróides dos m clusters.

2. RepetirPara i = 1 a N

Determine o representante mais próximo, isto é, Θj (i.e., o centróide mais próximo) de xi.

Faça b(i) = j

Fim

Para i = 1 a mAtualização de parâmetros: Determinar Θj como a média dos vetores xi ∈ X com b(i) = j

Fim

3. Até que não ocorra mudanças em Θj entre duas iterações sucessivas.

Page 7: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 7Alessandro L. Koerich ([email protected])

Algoritmo k–Means

A vantagem deste algoritmo é sua simplicidade computacional.

Na prática, existem diversas variações deste algoritmo que empregam operações de particionamento, união e descarte dos clustersresultantes.

Page 8: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 8Alessandro L. Koerich ([email protected])

Algoritmo k–Means

Page 9: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 9Alessandro L. Koerich ([email protected])

Algoritmo k–Means

Page 10: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 10Alessandro L. Koerich ([email protected])

Algoritmo k–Means

Page 11: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 11Alessandro L. Koerich ([email protected])

Algoritmo k–Means: Exemplo

Conjunto de exemplos D: (2-dimensional)

8 10 12 14 16 18 207

8

9

10

11

12

13

14

Page 12: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 12Alessandro L. Koerich ([email protected])

8 10 12 14 16 18 207

8

9

10

11

12

13

14Initial Cluster Centers at Iteration 1

Algoritmo k–Means: Exemplo

Centros iniciais dos clusters (k=2)

Page 13: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 13Alessandro L. Koerich ([email protected])

Algoritmo k–Means: Exemplo

8 10 12 14 16 18 207

8

9

10

11

12

13

14Updated Memberships and Boundary at Iteration 1

X Variable

Y V

aria

ble

Atualizando afiliações (iteração 1)

Page 14: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 14Alessandro L. Koerich ([email protected])

8 10 12 14 16 18 207

8

9

10

11

12

13

14Updated Cluster Centers at Iteration 2

Algoritmo k–Means: Exemplo

Atualizando centros (iteração 2)

Page 15: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 15Alessandro L. Koerich ([email protected])

Algoritmo k–Means: Exemplo

Atualizando afiliações (iteração 2)

8 10 12 14 16 18 207

8

9

10

11

12

13

14Updated Memberships and Boundary at Iteration 2

X Variable

Y V

aria

ble

Page 16: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 16Alessandro L. Koerich ([email protected])

8 10 12 14 16 18 207

8

9

10

11

12

13

14Updated Cluster Centers at Iteration 3

Algoritmo k–Means: Exemplo

Atualizando centros (iteração 3)

Page 17: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 17Alessandro L. Koerich ([email protected])

Algoritmo k–Means: Exemplo

Atualizando afiliação

8 10 12 14 16 18 207

8

9

10

11

12

13

14Updated Memberships and Boundary at Iteration 3

X Variable

Y V

aria

ble

Page 18: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 18Alessandro L. Koerich ([email protected])

8 10 12 14 16 18 207

8

9

10

11

12

13

14Updated Cluster Centers at Iteration 4

Algoritmo k–Means: Exemplo

Atualizando centros (iteração 4)

Page 19: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 19Alessandro L. Koerich ([email protected])

Algoritmo k–Means: Exemplo

Atualizando afiliação (iteração 4)

8 10 12 14 16 18 207

8

9

10

11

12

13

14Updated Memberships and Boundary at Iteration 4

X Variable

Y V

aria

ble

Page 20: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 20Alessandro L. Koerich ([email protected])

Comentários sobre k–Means

Computacionalmente simples.

O Erro Quadrático Total (TSE) decresce (ou converge) a cada iteração.

Ele encontra um TSE mínimo global?Não necessariamenteOs resultados são sensíveis ao ponto inicial (inicialização dos centróides)Na prática, podemos executá–lo a partir de múltiplos pontos de partida e pegar a solução com menor erro (TSE).

Page 21: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 21Alessandro L. Koerich ([email protected])

Exemplo k–Means

Exemplo: Agrupando pixels em uma imagem

Podemos usar o algoritmo k–Means para agrupar a intensidade dos pixels de uma imagem em k clusters.

É uma maneira simples de segmentar uma imagem em k regiões.

É um método mais automático do que um limiar escolhido manualmente.

Page 22: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 22Alessandro L. Koerich ([email protected])

Exemplo k–Means

Como fazer?

Tamanho (matriz de pixels) = m x n

Converter para um vetor com (m x n) linhas e 1 coluna

Executar o algoritmo k–Means com entrada = vetor de intensidades.

Atribuir para cada pixel a “cor ou nível de cinza” do cluster a que ele for atribuído.

Page 23: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 23Alessandro L. Koerich ([email protected])

Exemplo: Imagem Original

20 40 60 80 100 120

20

40

60

80

100

120

Page 24: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 24Alessandro L. Koerich ([email protected])

Exemplo: k–Means (k=2)

Page 25: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 25Alessandro L. Koerich ([email protected])

Exemplo: k–Means (k=3)

Page 26: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 26Alessandro L. Koerich ([email protected])

Exemplo: k–Means (k=5)

Page 27: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 27Alessandro L. Koerich ([email protected])

Exemplo: Imagem Original

20 40 60 80 100 120

20

40

60

80

100

120

Page 28: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 28Alessandro L. Koerich ([email protected])

Exemplo: k–Means (k=2)

Page 29: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 29Alessandro L. Koerich ([email protected])

Exemplo: k–Means (k=3)

Page 30: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 30Alessandro L. Koerich ([email protected])

Exemplo: k–Means (k=8)

colormap(‘hsv’)

Page 31: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 31Alessandro L. Koerich ([email protected])

Agrupando Imagens

Exemplo: Podemos também agrupar conjuntos de imagens

Cada vetor = uma imagem inteira (dimensão m x n)

N imagens de tamanho m x nExecute k–Means

k–Means está agora agrupando em um espaço de dimensão m x n

k–Means agrupará as imagens em k grupos

Page 32: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 32Alessandro L. Koerich ([email protected])

Agrupando Imagens

Cluster 1

Cluster 2

5 primeiros indivíduos, k = 2

Page 33: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 33Alessandro L. Koerich ([email protected])

Agrupando Imagens

Cluster 1

Cluster 2

5 segundos indivíduos, k = 2

Page 34: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 34Alessandro L. Koerich ([email protected])

Agrupando Imagens

Todos indivíduos faces alegres, k = 5

Page 35: Aprendizagem de Máquina - ppgia.pucpr.bralekoe/AM/2008/6a-AlgoritmokMeans-ApreMaq-… · Aprendizagem de Máquina Algoritmo k –Means Alessandro L. Koerich. Mestrado/Doutorado em

Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 35Alessandro L. Koerich ([email protected])

Resumo

k–Means é um algoritmo de aprendizagem não supervisionada.

Ele não classifica, mas agrupa vetores de atributos similares, isto é, coloca em um mesmo agrupamento vetores similares.

Por ser um bastante simples e funcionar bem na prática, ele é um principais e mais usados métodos de agrupamento.