kmeans - datamining

45
K-means

Upload: cleverson-ledur

Post on 05-Jul-2015

164 views

Category:

Technology


4 download

DESCRIPTION

Datamining algorithm for classification

TRANSCRIPT

Page 1: Kmeans - Datamining

K-means

Page 2: Kmeans - Datamining

K-means no Data Mining

❏Classificação❏Regressão❏Descoberta de Regras de Associação❏Descoberta de Padrões Sequenciais❏Agrupamento (clustering)❏Detecção de Anomalias

Page 3: Kmeans - Datamining

Definição de Agrupamento

Dado um conjunto de pontos, cada tendo um conjunto de atributos, e uma métrica de similaridade entre eles, achar agrupamentos tal que:●Pontos similares entre si formam um agrupamento.●Pontos menos similares entre si são de diferentes

agrupamentos.

Page 4: Kmeans - Datamining
Page 5: Kmeans - Datamining
Page 6: Kmeans - Datamining

Agrupamento pode ser ambíguo

Page 7: Kmeans - Datamining

K-means

●A idéia do algoritmo K-Means (também chamado de K-Médias) é fornecer uma classificação de informações de acordo com os próprios dados.

●Baseada em análise e comparações entre os valores numéricos dos dados.

Page 8: Kmeans - Datamining

Métricas de Similaridade

●Distância Euclidiana (para atributos contínuos)

●Outras métricas específicas para cada problema.

Page 9: Kmeans - Datamining

Distância EuclidianaÉ a distância entre dois pontos, que pode ser provada pela aplicação repetida do teorema de Pitágoras.

Page 10: Kmeans - Datamining

Classes

O usuário deve fornecer quantidade de classes que ele deseja.

K-means

Page 11: Kmeans - Datamining

Agrupamento por K-means

●Cada grupo é associado a um centróide. (Ponto Central)

●Cada ponto é atribuído a um grupo com o centróide mais próximo.

Page 12: Kmeans - Datamining

Centroids Algorithm

Page 13: Kmeans - Datamining

Iteração dos centróides

Page 14: Kmeans - Datamining

K-means na prática

Page 15: Kmeans - Datamining

O departamento de marketing de uma empresa deseja segmentar os clientes para poder oferecer descontos diferenciados e outros benefícios.A segmentação dos clientes deve dividir todos os clientes da base de dados em três categorias: Clientes Ouro, Clientes Prata e Clientes Bronze.

Page 16: Kmeans - Datamining

Classificação

Dois atributos:●Quantidade de Pedidos●Total Gasto

●3 grupos = 3 centróides

● (Obs: Na vida real o algoritmo K-Means pode trabalhar com qualquer quantidade de atributos para classificar os valores.)

Page 17: Kmeans - Datamining
Page 18: Kmeans - Datamining
Page 19: Kmeans - Datamining

Como otimizar o K-means?

Page 20: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 21: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 22: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 23: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 24: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 25: Kmeans - Datamining

Geração da Matriz de Distância

Se temos N pontos e k centróides teremos que calcular N x k distâncias neste passo.Ex: 20.000 registros no BD

5 grupos/centróides 100.000 cálculos por iteração

Page 26: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 27: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 28: Kmeans - Datamining

Associação dos pontos

Os pontos são classificados de acordo com sua distância dos centróides de cada classe.

O centróide que está mais perto deste ponto vai ‘incorporá-lo’.

Cada ponto precisa realizar uma verificação.

Page 29: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 30: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 31: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 32: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 33: Kmeans - Datamining

Passos do Algoritmo

Passo 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

É necessário utilizar informações das iterações anteriores. (dependência de dados)

Page 34: Kmeans - Datamining

K-means- Áreas de Maior ProcessamentoPasso 1: Fornecer valores para os centróides.Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides.Passo 3: Associar cada ponto para o centróide mais perto.Passo 4: Calcular os novos centróidesPasso 5: Repetir até que nenhum ponto seja associado para um centróide diferente.

Page 35: Kmeans - Datamining

K-means usando MapReduce

Fonte:http://www.iterativemapreduce.org/samples.html

Page 36: Kmeans - Datamining

K-means MPI e OpenMP

http://users.eecs.northwestern.edu/~wkliao/Kmeans/

http://www.cse.buffalo.edu/faculty/miller/Courses/CSE633/Chandramohan-Fall-2012-CSE633.pdf

Page 37: Kmeans - Datamining

K-means com MPI

Consider N data points each of it is vector and P processors.

(1) Assign N/P data points to each processor.(2) Node 0 randomly choose K points and assigns them as cluster means and broadcast.

Page 38: Kmeans - Datamining

K-means com MPI

(3) In each processor for each data point find membership using the cluster mean.

(4) Recalculate local means for each cluster in each processor.

Page 39: Kmeans - Datamining

K-means com MPI

(5) Globally broadcast all local means for each processor find the global mean.(6) Go to step (3) and repeat until the number of iterations > 10000 or number of points where membership has changed is less than 0.1 %.

Page 40: Kmeans - Datamining

K-means com OpenMP

Consider N data points each of it vector and P threads.(1) Node 0 randomly choose K points as assign them ascluster means.(2) In each thread for each data point find membership using the cluster mean.

Page 41: Kmeans - Datamining

K-means com OpenMP

(3) Recalculate local means for each cluster in eachthread.(4) Globally broadcast all local means for eachprocessor and find the global mean.

Page 42: Kmeans - Datamining

K-means com OpenMP

(5) Find the global mean in each thread

(6) Go to step (2) and repeat until the number of iterations >10000 or number of points where membership has is less than 0.1 %.

Page 43: Kmeans - Datamining

MPI Results

Page 44: Kmeans - Datamining

MPI vs. OpenMP

Page 45: Kmeans - Datamining