3. História
● Em 1957, Władysław Hugo Dionizy Steinhaus
propõe o método k-means de clusterização.
● Em 1957, Stuart Lloyd propõe um algoritmo-base
para o método k-means, porém este seria usado
como um técnica de modulação de pulso de
código, representar digitalmente amostras de sinais
analógicos. Este algoritmo não foi publicado fora da
Bell labs até 1982.
4. História
● A primeiro uso do termo k-means foi em 1967
por James MacQueen em seu artigo
intitulado: “Some Methods for Classification
and Analysis of Multivariate Observations”.
● Em 1965, E. W. Forgy publicou o mesmo
algoritmo que Sturart Lloyd. Esse algoritmo
também também é conhecido como Lloyd-
Forgy
5. Espaço Euclidiano
● O espaço euclidiano n-dimensional (n ∈
N) é o produto cartesiano de n fatores
iguais a R: R^n = R × R × . . . . . . × R.
● Se n = 1, R¹ = R é a reta; se n = 2, R² é o
plano e se n = 3, R³ é o espaço
euclidiano tridimensional.
6. Distância Euclidiana
● É a distância entre dois pontos, que pode
ser provada pela aplicação repetida do
teorema de Pitágoras.
● A distância euclidiana entre os pontos
P(p1, p2, …, pn) e Q(q1,q2, ..., qn), num
espaço euclidiano n-dimensional, é
definida como:
7. Distância Euclidiana
● R²
x = (2,5)
1.41 d ( x, y ) = ( 2 − 3) 2 + ( 5 − 4 ) 2 = 2 = 1.41
y = (3,4)
9. Características
● O algoritmo K-means pertence a classe
dos algoritmos de apredizado de
máquina não supervisionados.
● Não há uma rotulação dos dados a priori.
● Aprendizado por observação.
10. Cluster
● Uma coleção de objetos que são
similares entre si, e diferentes dos
objetos pertencentes a outros clusters.
11. Clusterização / Clustering
● É a organização dos objetos similares
(em algum aspecto) em grupos.
Quatro grupos (clusters)
12. Centróide
● Representa o centro de um grupo, sendo
calculado pela média de todos os objetos
do grupo/cluster.
13. Ideia
● (PASSO 1) Atribuem-se valores iniciais para os
protótipos seguindo algum critério.
● (PASSO 2) Atribui-se cada objeto ao grupo cujo
protótipo possua maior similaridade com o objeto.
● (PASSO 3) Recalcula-se o valor do centróide de
cada grupo, como sendo a média dos objetos
atuais do grupo.
● (PASSO 4) Repete-se os passos 2 e 3 até que os
grupos se estabilizem.
14. Complexidade
● O( n * K * I * d ), onde:
– n = total de pontos
– K = número de clusters
– I = número de iterações
– d = número de atributos/características
15. Pseudo-Código
● Sendo:
– {x1, x2, ..., xn} = estrutura de dados
contendo valores a serem clusterizados. Por
exemplo, uma matriz esparça
– K = total de clusters
– A = conjuntos de atributos que irão inteferir
na separação
– {c1, c2, ..., ck} = conjunto de centróides
– {u1, u2, ..., uk} = estrutura de dados
contendo os elementos dos clusters
16. Pseudo-Código
● K-Means({x1, x2, ..., xn},K,A) #entrada
(c1, c2, ..., cK) <--- cria_centroids({x1, x2, ..., xn}, K) #criando k
centróides
Para cada cluster K faça:
uk <--- ck #atribuindo cada centróide a um cluster
enquando o criterio de parada não for atingido faça: #por exmeplo,
enquando houver modificações nos clusters ou um trocou=true
para cada cluster K faça:
cluster[k] = {}
para cada ponto P faça: #o total de pontos é n
atribui_ponto_ao_cluster(P, A, cluster) #calcula-se a distância do
ponto ao centróide de cada cluster e este ponto irá permanecer no cluster que
tiver a menor distância
para cada cluster K faça:
uk <-- novo_centroid(K) #recalculando os centródes
●
return {u1, u2, ..., uk}
21. Bisecting K-Means
● Variação hierárquica do algoritmo k-
means, que em cada iteração, seleciona
um grupo e o divide, de forma a gerar
uma hierarquia.
22. Bisecting K-Means
● Selecionar um cluster para dividir.
● Encontrar 2 sub-clusters usando o algoritmo K-means
básico.
● Repetir o passo 2 por uma quantidade fixa de vezes e
escolher a divisão que produzir o cluster com a maior
similaridade global. (Para cada cluster, sua similaridade
é a similaridade média de pares de documentos)
● Repetir os passos 1, 2 e 3 até que o número desejado
de clusters seja alcançado.
23. Prós
● Simples
● Entre os 10 algoritmos mais influentes
em DataMining.
● Variações com ótimos resultados como o
Bisecting K-Means.
24. Contras
● Clusters de tamanhos diferentes.
● Clusters de diferentes densidades.
● Clusters em forma não-globular.
● Clusters vazios.