Escolar Documentos
Profissional Documentos
Cultura Documentos
patrick.ciarelli@ufes.br
Clustering é a separação de objetos em
diferentes grupos sem levar em consideração um
atributo alvo (classe dos objetos);
Nesta abordagem, o conjunto de dados é
particionado em subconjuntos (clusters), tal que
os dados em cada subconjunto (idealmente)
compartilham informações em comum;
Frequentemente é utilizada uma medida de
distância para formar os grupos.
Algoritmos hierárquicos: encontram clusters
sucessivos a partir de clusters previamente
estabelecidos:
Aglomerativos (bottom-up): Algoritmos aglomerativos
começam com cada elemento como um grupo
separado e junta-os em grupos sucessivamente
maiores;
Divisivos (top-down): Algoritmos divisivos começam
com um grupo grande e divide-o sucessivamente em
grupos menores.
Algoritmos de partição: estes algoritmos
determinam todos os clusters de uma só vez;
Representantes deste tipo de clustering são:
K-means;
Modelo de mistura de Gaussianas;
DBScan;
Etc.
K-means é um algoritmo para agrupar N objetos
em k partições, onde k < N, baseado nos
atributos dos objetos;
Ele assume que os atributos do objeto formam
um ponto no espaço, e agrupa os pontos que
estão muito próximos entre si.
Ex.:
K-means busca particionar (ou clustering) N
amostras em K subconjuntos Sk de forma a
minimizar o critério da soma dos quadrados:
N K
J rnk xn k
2
n 1 k 1
onde:
xn é um vetor representando a n-éssima amostra do
conjunto de dados;
rnk é uma variável binária (0,1) associada a cada
amostra xn que descreve qual cluster k (1, ..., K) a
amostra está associada, tal que rnk = 1, e rnj = 0 para j
k;
k é o centroide do subconjunto Sk.
O objetivo é encontrar valores para os conjuntos
de r e de forma a minimizar J;
Isso pode ser obtido através de um procedimento
iterativo que envolve dois passos sucessivos para
otimização:
Primeiro, J é minimizado com respeito a rnk,
mantendo k fixo (inicialmente selecionados);
No passo seguinte, J é minimizado com respeito a k,
mantendo rnk fixo.
Este procedimento é realizado até ocorrer
convergência;
Estes dois estágios de atualização de rnk e k
correspondem respectivamente aos passos E
(expectation) e M (maximization) do algoritmo
EM.
Inicialmente é determinado para cada grupo;
O primeiro passo minimizar J com respeito a r:
Como cada amostra só pode pertencer a um grupo, a
função que minimiza J com respeito a r associa cada
amostra xn ao cluster com o centroide mais próximo:
1 if k arg min xn j
2
rnk j
0 outro caso
O segundo passo atualiza para minimizar
N
J:
J N r x
2 rnk xn k 0
nk n
k n 1
k N
n 1
r
n 1
nk
Para p :
L x, max xi i
i
Métricas de distância:
Distância de Mahalanobis:
Objeto x1 x2
1 1,0 1,0
2 1,5 2,0
3 3,0 4,0
4 5,0 7,0
5 3,5 5,0
6 4,5 5,0
7 3,5 4,5
Exemplo 2: usar o k-means para particionar os
dados em três partes (k = 3).
Solução:
Escolher aleatoriamente três amostras para
representar os centroides:
Centroide 1: 1 = {1,0; 1,0}
Centroide 2: 2 = {1,5; 2,0}
Centroide 3: 3 = {3,0; 4,0} Objeto x1 x2
Grupos formados após a convergência: 1 1,0 1,0
Grupo 1: objeto 1 2 1,5 2,0
Grupo 2: objeto 2 3 3,0 4,0
Grupo 3: objetos 3, 4, 5, 6 e 7 4 5,0 7,0
5 3,5 5,0
6 4,5 5,0
7 3,5 4,5
Exemplo 2: usar o k-means para particionar os
dados em três partes (k = 3).
Solução:
Gráfico dos grupos no espaço 2D
Objeto x1 x2
1 1,0 1,0
2 1,5 2,0
3 3,0 4,0
O resultado final depende da escolha
4 5,0 7,0
inicial dos centroides.
5 3,5 5,0
6 4,5 5,0
7 3,5 4,5
Exemplo 2: usar o k-means para particionar os
dados em três partes (k = 3).
Solução:
Escolher aleatoriamente três outras amostras para
representar os centroides:
Centroide 1: 1 = {1,0; 1,0}
Centroide 2: 2 = {3,0; 4,0}
Centroide 3: 3 = {5,0; 7,0} Objeto x1 x2
Grupos formados após a convergência: 1 1,0 1,0
Grupo 1: objetos 1 e 2 2 1,5 2,0
Grupo 2: objetos 3, 5, 6 e 7 3 3,0 4,0
Grupo 3: objeto 4 4 5,0 7,0
5 3,5 5,0
6 4,5 5,0
7 3,5 4,5
Exemplo 2: usar o k-means para particionar os
dados em três partes (k = 3).
Solução:
Gráfico dos grupos no espaço 2D
Objeto x1 x2
1 1,0 1,0
2 1,5 2,0
3 3,0 4,0
O resultado final depende da escolha
4 5,0 7,0
inicial dos centroides.
5 3,5 5,0
6 4,5 5,0
7 3,5 4,5
Desvantagens do k-means:
Quando o número de amostras é pequena, os
centroides iniciais irão determinar significativamente
os grupos formados;
O algoritmo pode obter resultados diferentes a cada
execução, desde os resultados dependem dos
centroides iniciais. Logo, ele é sensível as condições
iniciais;
O algoritmo pode cair em um ótimo local;
O número de grupos (k) devem ser determinados com
antecedência. No entanto, nem sempre é conhecido o
número de grupos;
Ele é sensível a outliers e dados ruidosos.
Há um grupo de algoritmos de clustering
baseados em densidade;
Esses algoritmos assumem que os clusters são
regiões de alta densidade de padrões separadas
por regiões com baixa densidade, no espaço de
padrões;
Um cluster é definido como um componente
denso conectado em qualquer direção definida
pela densidade.
Características dos algoritmos baseados em
densidade:
Descoberta de grupos de forma arbitrária (não é
necessário informar o número de grupos);
Tratamento de dados ruídos;
Apenas uma execução para formar os grupos;
É necessário parâmetros de densidade como
condições;
Separa regiões de objetos de alta e baixa densidade.
DBScan é um algoritmo baseado em densidade
para agrupar os objetos ou pontos;
Ele descobre clusters de forma arbitrária em
bases de dados com ruído.
Ester, M.; Kriegel, H.; Sander, J.; Xu, X. A density-based algorithm for discovering clusters
in large spatial databases with noise, The Second International Conference on Knowledge
Discovery and Data Mining (KDD-96), 1996
Três tipos de pontos:
Pontos no núcleo: pontos que têm ao menos um número
mínimo de pontos numa vizinhança dentro de um raio pré-
determinado;
Pontos na borda: pontos presentes na borda de um cluster;
Pontos outliers: pontos que não correspondem aos outros
anteriores.
Outlier
Borda
Eps = 1cm
Núcleo MinPts = 4
Para o algoritmo do DBScan é necessário definir
dois parâmetros principais:
Eps: distância entre um objeto (ponto) e seus
vizinhos.
Descreve a medida de proximidade, isto é, quantos pontos
vizinhos próximos um par de pontos necessita ter em comum
para serem considerados próximos;
Raio máximo da vizinhança.
MinPts: número mínimo de pontos de cada cluster.
Valor relativo a densidade mínima, ou seja, número de
vizinhos próximos que um ponto precisa ter para ser
considerado o ponto central do cluster;
Número de pontos mínimo em Eps desse ponto.
Definições:
Número de pontos em um conjunto D que estão na
vizinhança do ponto q dado um raio máximo Eps
(Neps(q)):
Neps(q) = {p D | dist(p,q) Eps}
Um ponto p é diretamente alcançável pela densidade
de um ponto q, dado Eps e MinPts, se:
1) p Neps(q), ou seja, dist(p,q) Eps
2) |Neps(q)| MinPts (condição de ponto de núcleo)
Essa condição não é simétrica entre pontos de borda e de
núcleo;
Somente pontos de núcleo podem alcançar outros pontos.
Exemplo:
p (borda) é alcançável por q (núcleo);
q (núcleo) não é alcançável por p (borda);
p: ponto na borda
p q: ponto no núcleo
q
MinPts = 5
Eps = 1cm
Alcançável pela densidade
Um ponto p é alcançável pela densidade de um ponto
q, dado Eps e MinPts, se existe uma cadeia de pontos
p1,...,pn, sendo p1 = q e pn = p, tal que pi+1 é
diretamente alcançável pela densidade de pi.
p MinPts = 5
p1
Eps = 1cm
q
Conectado pela densidade
Um ponto p é conectado pela densidade a um ponto
q, dado Eps e MinPts, se existir um ponto r tal que
ambos p e q são alcançáveis pela densidade de r.
p MinPts = 5
q Eps = 1cm
r
Regras para gerar clusters
Para encontrar um cluster, escolha arbitrariamente
um ponto p;
Recupere todos os pontos alcançáveis pela densidade
de p, dado Eps e MinPts;
Se p satisfaz as condições para ser um ponto de
núcleo, forma-se um cluster;
Se p não é um ponto de núcleo, não há pontos
alcançáveis pela densidade de p, visite um próximo
ponto;
Continue o processo até que todos os pontos tenham
sido processados.
Regras para gerar clusters
Um ponto pertence a um cluster C somente se estiver
localizado no raio de um ponto de núcleo do cluster;
Um ponto de núcleo p, no raio de um outro ponto de
núcleo pi qualquer, precisa pertencer ao mesmo
cluster C;
Um ponto p que não é de núcleo, no raio de um ponto
de núcleo p1...pi, onde i>0 precisa pertencer ao
mesmo cluster cujo ponto central esteja entre p1...pi.
O ponto p será um ponto de borda;
Um ponto p que não é de núcleo e que não estiver no
raio de nenhum ponto de núcleo é considerado um
outlier.
Regras para gerar clusters
C2
MinPts = 3
Eps = 1cm
C1
Pontos de núcleo
Resultados da aplicação do DBScan
Sensibilidade dos parâmetros
D LR
Onde Lmr e Rrn são ambas matrizes não negativas;
As linhas de R podem ser vistas como partes;
As linhas de D são obtidas misturando as partes
em L;
Existe o menor r tal que D = LR. Ele é chamado
de posto não negativo de D.
Considere o seguinte exemplo em que a matriz é
decomposta em matrizes com posto 2 por SVD:
autovalores autovetores
Problema é bi-convexo:
Para um R fixo, f L D LR F é convexo;
2
Para um L fixo, f R D LR F é convexo;
2
0,000 0,5188 0,000 0,5188 0 ,000
R LD *
1,1746 1,8760 1,1746 1,8760 1,1746
0 0,8514
L DR *
1,9277 0
1,9277 0
Exemplo: separar em 2 clusters (r = 2) a matriz
Solução:
R LD
* 0,000 0,5188 0,000 0,5188 0 ,000
1,1746 1,1746 1,1746 1,1746 1,1746
0 0,8514
L DR * 1,9277 0
1,9277 0
Solução convergiu.
Exemplo: separar em 2 clusters (r = 2) a matriz
Solução:
0 0,8514
0,000 0,5188 0,000 0,5188 0 ,000 1,9277
R L 0
1,1746 1,1746 1,1746 1,1746 1,1746 1,9277 0
A abordagem baseada em mínimos quadrados
não negativos possui as desvantagens:
Dificuldade para análise devido a passos de
atualização não linear;
Frequentemente convergem lentamente para um
mínimo local ruim.
Abordagem 2: Multiplicative update rules;
Dado descida de gradiente com passo kj:
R kj R kj kj L D kj L LR
kj
Rk
j
Se kj
L LR kj , então são obtidas as regras de
atualização multiplicativa:
DR e L D
L L R R
LRR L LR
Onde multiplicações () e divisões são feitas elemento
a elemento;
Zeros são problemáticos (divisões indefinidas):
DR
R R
L D
L L
LRR
L LR
Abordagem 2: Multiplicative update rules;
Esse algoritmo não necessariamente encontra um
ótimo L (ou R), mas pode ser mostrado que ele nunca
aumenta o erro;
Não é necessário calcular pseudo-inversa;
Possui uma fácil implementação.
O método de hierarchical clustering funciona
agrupando objetos (amostras) em uma árvore de
clusters;
Este método utiliza matriz de distância
(similaridade) como critério de clustering;
Também é utilizado uma condição de término;
Estes métodos podem ser classificados como:
Aglomerativo hierarchical clustering;
Divisivo hierarchical clustering.
Os objetos são agrupados em uma esquema
bottom-up;
Inicialmente, cada objeto é seu próprio cluster;
Então, esses pequenos clusters são unidos em
clusters cada vez maiores, até que todos os
objetos estarem em um único cluster ou até um
certo critério de parada seja satisfeito;
O critério de parada pode ser o número de
clusters desejado ou a distância mínima.
Os objetos são agrupados em uma esquema top-
down;
Inicialmente, todos os objetos estão em um
único cluster;
Então o cluster é subdividido em clusters cada
vez menores, até que cada objeto forme um
cluster de si mesmo ou até um certo critério de
parada seja satisfeito;
O critério de parada pode ser o número de
clusters desejado ou a distância mínima.
No método hierarchical clustering é construída
uma árvore hierárquica (dendograma) a partir
das amostras:
Ex.: aglomerar os dados a, b, c, d e e:
passo 0 passo 1 passo 2 passo 3 passo 4
agglomerativo
a
ab
b
abcde
c
cde
d
de
e
divisivo
passo 4 passo 3 passo 2 passo 1 passo 0
Os clusters são obtidos por cortar o dendograma
no nível desejado: cada componente conectado
forma um cluster;
Algoritmo AGNES (aglomerativo)
1. Dado um conjunto de N objetos, e uma matriz de
distância (similaridade) N*N:
2. Inicialmente, cada objeto é associado a um cluster,
tal que para N objetos existem N clusters, e cada
cluster contém apenas um objeto. A distância entre
clusters é a mesma distância entre objetos que eles
contém;
3. Encontre o par de clusters mais próximos e une eles
em um único cluster, tal que agora haverá um
cluster a menos;
4. Calcule a distância entre o novo cluster e cada um
dos clusters antigos;
5. Repita os passos 3 e 4 até todos os objetos
estiverem em um único cluster, ou até um critério
de parada seja satisfeito.
Algoritmo AGNES (aglomerativo)
O passo 4 pode ser feito em diferentes maneiras:
Conexão mais próximo: a distância entre um cluster e outro
é igual a menor distância de qualquer membro de um cluster
para qualquer membro de outro cluster;
Conexão mais distante: a distância entre um cluster e outro
cluster é igual a maior distância de qualquer membro de um
cluster para qualquer membro de outro cluster;
Conexão de grupo: a distância entre um cluster e outro
cluster é igual a distância média entre os membros de cada
cluster.
Distância entre clusters:
distância
Distância entre clusters:
Desvantagens:
Seleção de união ou divisão de objetos é crítico: uma
vez que um grupo de objetos é unido ou dividido, ele
não irá desfazer o que foi feito;
Decisões de união e divisão de clusters podem guiar a
clusters de baixa qualidade se não forem bem
escolhidas.
Regras de associação:
O algoritmo Apriori é um método de encontrar um
conjunto de regras de associação.
Para entender o que é uma regra de associação
primeiro devem ser definidos:
Conjunto de itens I. Exemplo: itens de um supermercado;
Conjunto de transações D: uma tabela de duas colunas, onde
a primeira é o identificador da transação e a segunda é
formada por um conjunto de itens. O conjunto de itens pode
ser visto como uma lista de compras no supermercado.
Um itemset é um subconjunto não vazio de I. Dizemos que
uma transação T suporta um itemset I se I ⊆ T.
Exemplo:
Abaixo existe uma lista de itens e a direita um
conjunto de transações. A primeira transação, de ID
101, possui os itemsets {1}, {3}, {5}, {1,3}, {1,5},
{3,5}, {1,3,5}.
Regras de associação:
Dessa forma, regras de associação representam
padrões existentes em transações.
De outra forma, podemos definir uma regra de
associação da forma A B, onde A e B são itemsets
(não necessariamente transações).
Exemplo:
{pão,leite} {café} é uma regra de associação. A ideia por
trás desta regra é: pessoas que compram pão e leite tem a
tendência de também comprar café.
Repare que a regra anterior é diferente de {café}
{pão,leite}, pois comprar café não implica que vai comprar
com frequência pão e leite.
Regras de associação:
A toda regra de associação é associado um grau de
confiança, denotado conf(A B), que é a
porcentagem das transações que suportam B dentre
todas que suportam A:
Onde:
K é o número de componentes do modelo de mistura;
k é a contribuição da k-ésima componente Gaussiana
no MMG, tal que: K
k 1
k 1
k 1
k 1
x
k 1
k n | k , k
Aplique o passo M para otimizar os parâmetros:
N
1
k
Nk
n 1
n ,k xn
N
N k n,k
N
x k xn k
1
k n ,k n
Nk n 1
n 1
N
k k
N
O passo é repetido até a convergência.
Exemplo 1: com os dados abaixo, obter o MMG
para K = 2.
Solução:
Valores iniciais dos parâmetros: Objeto x1 x2
1 1,0 1,0
1 0 1 0
1 2 1 2 1 2 0,5 2 1,5 2,0
0 1 0 1 3 3,0 4,0
log10 e 1000
ln e 1000 1000
ln 10 ln 10
Depois de calcular, terá como resultado: -434,2945
O resultado é dividido em duas partes:
A mantissa: 10-0,2945 = 0,5076
O expoente: -434
2
Onde 𝑑𝑘 é a distância média entre o dado xk e os
demais dados. Normalmente é utilizada a distância
euclidiana, mas podem ser usadas outras medidas,
como a de Mahalonobis ou similaridade cosseno:
1 k d
xk xi , onde y yk2
2 2 2
dk
k i 1 k 1
k i 1
Onde k e Xk podem ser calculados recursivamente:
k 1 1
k k 1 xk , 1 x1
k k
k 1 1
Xk X 1 x1
2 2
k 1
X x k ,
k k
Da mesma forma, a densidade média 𝐷𝑘 e a variância
da densidade 𝜎𝑘2 podem ser calculadas recursivamente:
k 1 1
Dk D k 1 Dk , D1 D1
k k
k 1
k2
k 1
2
1
Dk Dk 2 , 12 0
k k
Algoritmo:
Para o k-ésimo dado xk que chega
Se é o primeiro dado (k = 1):
1 x1 , X 1 x1 , Dk D1 , 12 0
2
Senão:
k 1 1
k k 1 xk
k k
k 1 1
Xk X k 1 xk
2
k k
1
Dk 2
1 xk k X k k
2
k 1 1
Dk D k 1 Dk
k k
k 1
k 1 Dk Dk
1
k2 2 2
k k
A identificação de outliers é feita pela diferença
entre a densidade média 𝐷𝑘 e a densidade 𝐷𝑘 :
Se o módulo da diferença é maior que um limiar,
então é considerado um outlier;
Valores típicos são múltiplos do desvio padrão: k, 2k
e 3k;
Uma mudança de comportamento dos dados
pode ser identificada através da observação de
uma sequência sucessiva de outliers.
Exemplo 1: 50 amostras de um sinal de magnitude 1
seguido por 50 amostras de um sinal de magnitude 2,5.
Ambos com ruído gaussiano de média 0 e desvio padrão
0,15.
Exemplo 2: 50 amostras de um sinal de magnitude 1
seguido por 50 amostras de um sinal de magnitude 1,5.
Ambos com ruído gaussiano de média 0 e desvio padrão
0,15.
O RDE armazena informações acumuladas de todos os
dados processados e tenta se adaptar a medida que
ocorre mudanças nos dados;
O problema ocorre quando a quantidade de dados
cresce indefinidamente (k ) e sua capacidade de se
adaptar é reduzida drasticamente, como pode ser
observada nas equações anteriores;
Por exemplo: contribuição de uma
Bezerra, C. G., Costa, B. S. J., Guedes, L. A., Angelov, P. P.. RDE with forgetting: an
approximate solution for large values of k with an application to fault detection problems,
Statistical Learning and Data Sciences: Third International Symposium, pp. 169-178, 2015
Para tratar este problema foi criado o RDE com
esquecimento, no qual é adicionado o parâmetro que
faz com que o RDE esqueça lentamente as informações
dos dados mais antigos:
k 1 1 xk , 1 x1
k
X k X k 1 1 xk , X 1 x1
2 2
Dk D k 1 1 Dk , D1 D1
k 2 k 12 1 Dk Dk , 12 0
2