aprendizagem de máquina - ppgia.pucpr.bralekoe/am/2008/6a-algoritmokmeans-apremaq-… ·...
TRANSCRIPT
Aprendizagem de Máquina
Algoritmo k–Means
Alessandro L. Koerich
Mestrado/Doutorado em Informática (PPGIa)Pontifícia Universidade Católica do Paraná (PUCPR)
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.
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.
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.
Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 5Alessandro L. Koerich ([email protected])
Algoritmo k–Means
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.
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.
Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 8Alessandro L. Koerich ([email protected])
Algoritmo k–Means
Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 9Alessandro L. Koerich ([email protected])
Algoritmo k–Means
Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 10Alessandro L. Koerich ([email protected])
Algoritmo k–Means
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
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)
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)
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)
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
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)
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
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)
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
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).
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.
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.
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
Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 24Alessandro L. Koerich ([email protected])
Exemplo: k–Means (k=2)
Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 25Alessandro L. Koerich ([email protected])
Exemplo: k–Means (k=3)
Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 26Alessandro L. Koerich ([email protected])
Exemplo: k–Means (k=5)
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
Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 28Alessandro L. Koerich ([email protected])
Exemplo: k–Means (k=2)
Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 29Alessandro L. Koerich ([email protected])
Exemplo: k–Means (k=3)
Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 30Alessandro L. Koerich ([email protected])
Exemplo: k–Means (k=8)
colormap(‘hsv’)
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
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
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
Mestrado/Doutorado em Informática (PPGIa) Aprendizagem de Máquina 34Alessandro L. Koerich ([email protected])
Agrupando Imagens
Todos indivíduos faces alegres, k = 5
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.