2.4 Algoritmos Evolutivos
2.4.1 Algoritmos Evolutivos Baseados em K-means
Diversos trabalhos abordam o uso de algoritmos evolutivos para otimizar partições obtidas pelo K-means. Sugere-se ao leitor interessado em uma revisão da área os trabalhos de Hruschka et al. (2009); Chang et al. (2009); Niknam e Amiri (2010) e Cai et al. (2011). Na próxima seção, é descrito o AE utilizado como ponto de partida para o desenvolvimento de um AE baseado no EM para GMM.
2.4.1.1 Fast Evolutionary Algorithm for Clustering
Em Alves et al. (2006), foi introduzido o algoritmo evolutivo para agrupamento de dados não supervisionado, denominado Fast Evolutionary Algorithm for Clustering (F-EAC), que apresentou melhores resultados em relação ao seu antecessor Evolutionary Algorithm For Clus- tering (EAC) (Hruschka et al., 2004, 2006). O algoritmo foi desenvolvido com o objetivo de superar duas limitações básicas do algoritmo K-means: necessidade de definir o número de grupos e convergência para ótimos locais. Em Naldi et al. (2011), foram apresentados experi- mentos, considerando-se cenários nos quais não se conhece o número de grupos a priori, que mostram que o F-EAC apresenta resultados tão bons quanto algumas estratégias de amostragem usualmente utilizadas em conjunto com o K-means, mas com menor custo computacional.
2.4 Algoritmos Evolutivos 23 No F-EAC, cada partição dos dados é codificada em um genótipo utilizando codificação inteira baseada em rótulos(Hruschka et al., 2009). Por exemplo, o genótipo [1,1,2,2,3,1] re- presenta a partição C1 = {1, 2, 6}, C2 = {3, 4} e C3 = {5}. Conforme mencionado em Hruschka et al. (2009), essa codificação tem a deficiência de ser redundante, já que a mesma partição pode ser codificada de K! formas diferentes.
A função objetivo utilizada no algoritmo é a Silhueta Simplificada (SS) (Hruschka et al., 2006). Antes de apresentar a SS, será apresentada a silhueta originalmente proposta por Kauf- man e Rousseeuw (1990). Considerando o objeto xipertencendo ao grupo Cj, a distância média
do objeto xi em relação a todos os outros objetos pertencentes ao grupo Cj será chamada de
a(i). Levando em consideração o grupo Cr, a distância média do objeto xiem relação a todos os
outros objetos pertencentes ao grupo Crpode ser chamada de d(i, Cr). Após calcular d(i, Cr)
para todos os grupos Cr 6= Cj, o menor valor de d(i, Cr) (aqui chamado de b(i)) é escolhido.
Mais precisamente, b(i) = min d(i, Cr), Cr 6= Cj. Este valor representa a distância entre o
objeto xie o seu grupo vizinho. Feitas estas considerações, a silhueta s(i) é dada por:
s(i) = b(i)− a(i)
max{a(i), b(i)}. (2.31)
Considerando que a partição pode ser gerada de forma aleatória, pode-se verificar que −1 ≤
s(i) ≤ 1. Logo, quanto maior o valor de s(i), melhor terá sido a atribuição do objeto xi para
um dado grupo. Se s(i) = 0, então não está claro se o objeto xi deveria ser agrupado com o
grupo atual ou com o seu grupo vizinho mais próximo (Everitt, 2001). Finalmente, se o grupo
Cj possui um único elemento, então s(i) não é definida e uma escolha adequada é considerar
s(i) = 0 (Kaufman e Rousseeuw, 1990). A média dos valores de s(i) para todos os objetos, i.e.,
1
N
PN
i=1s(i), é usada como o critério de avaliação de uma partição, sendo o melhor agrupamento determinado quando o seu valor é maximizado.
A silhueta proposta por Kaufman e Rousseeuw (1990) depende do cálculo de todas as dis- tâncias entre os (pares de) objetos, levando a um custo computacional de O(N2), o qual nor- malmente é muito alto para aplicações de MD. Para suprir essa limitação, a Silhueta Simplifi- cada (SS) (Hruschka et al., 2006) pode ser utilizada. A SS é baseada no cálculo das distâncias entre os objetos e os centróides dos grupos. Mais especificamente, o termo a(i) se torna a dis- tância entre o objeto xi e o centróide do seu grupo (cj). Similarmente, ao invés de calcular
d(i, Cr) como a distância média do objeto xiem relação a todos os objetos de Cr, Cr6= Cj, são
calculadas as distâncias entre o objeto xi e o centróide do grupo Cr (cr). Essas modificações
reduzem o custo computacional de O(N2) para O(N · K).
Para realizar a busca no espaço de soluções candidatas, são utilizados dois operadores de mutação. Para a aplicação de ambos os operadores, é necessária uma medida que indique a qualidade de cada grupo. Em outras palavras, estes operadores são guiados. O algoritmo F-EAC baseia-se na premissa de que quanto melhor o grupo, menor deve ser sua probabilidade de sofrer mutação. Dessa forma, bons grupos tendem a permanecer durante as gerações, enquanto que
grupos ruins tendem a sofrer modificações (Naldi et al., 2011). Para que haja uma sinergia entre a aplicação dos operadores e a função objetivo, é necessário que essa função possa ser decomposta para cada grupo, ou seja, a qualidade mensurada para determinar a probabilidade de aplicação dos operadores é baseada na contribuição do grupo para a qualidade da partição como um todo. No caso da SS, essa decomposição é trivial já que a medida da qualidade de uma partição é a média da silhueta de todos os objetos. Assim sendo, a qualidade de um grupo pode ser mensurada pela média da silhueta dos objetos nele contidos.
A probabilidade de um grupo Ckser escolhido para mutação é descrita pela Equação (2.32),
na qual rank é uma função que retorna a posição do valor da qualidade do grupo em um ranking considerando os valores de qualidade de todos os grupos. Neste caso, o grupo com maior qualidade de acordo com a SS encontra-se na posição 1 do ranking. Esta normalização baseada em ranking permite evitar que um grupo com uma qualidade muito inferior aos demais, de acordo com a SS, domine as probabilidades (Bäck et al., 2000a).
pm(Ck) = rank1−P xn∈Ck s(n) |Ck| PK j=1rank 1−P xn∈Cj s(n) |Cj| (2.32)
O primeiro operador (MO1) realiza a eliminação de grupos alocando os objetos dos grupos que serão eliminados nos grupos mais próximos. Este operador é descrito no Algoritmo 2. O segundo operador (MO2) divide um grupo em dois e é descrito no Algoritmo 3. Considerando a taxonomia previamente apresentada, ambos os operadores são guiados e orientados a grupos.
Algoritmo 2: Operador de mutação MO1 (Naldi et al., 2011). Entrada: G Indivíduo com partição Π de K grupos;
X Conjunto de dados sendo agrupados; 1 seK > 2 então
2 selecionar um número aleatório z ∈ {1, . . . , K − 2}; 3 para cadai = 1, . . . , z faça
4 escolher um grupo Cs∈ Π com probabilidade dada pela Equação (2.32);
5 eliminar Cs, alocando seus objetos nos grupos mais próximos remanescentes
Cj ∈ Π, j 6= s, de acordo com as distâncias entre os objetos e os respectivos
centróides; 6 fim
7 senão
8 G não sofre mutação; 9 fim
Para ajustar as taxas de aplicação dos dois operadores, duas estratégias já foram investiga- das (Alves et al., 2006; Horta e Campello, 2009). A primeira (Alves et al., 2006), utilizada na primeira versão do F-EAC, ajusta as probabilidades de acordo com o desempenho dos opera- dores em toda a população, enquanto a segunda (Horta e Campello, 2009) avalia o impacto da aplicação dos operadores sobre um determinado indivíduo. Resultados empíricos em Horta e
2.4 Algoritmos Evolutivos 25 Algoritmo 3: Operador de mutação MO2 (Naldi et al., 2011).
Entrada: G Indivíduo com partição Π de K grupos; X Conjunto de dados sendo agrupados; 1 Π′ → ∅ {partição auxiliar};
2 selecionar um número aleatório z ∈ {1, . . . , K}; 3 para cadai = 1, . . . , z faça
4 escolher um grupo Cs ∈ Π com probabilidade dada pela Equação (2.32);
5 se|Cs| > 2 então
6 selecionar aleatoriamente xj ∈ Cs;
7 determinar o objeto xf ∈ Csmais distante de xj;
8 gerar dois novos grupos Cs′ e Cs′′ cujos protótipos são xj e xf, respectivamente; 9 eliminar Cs, alocando os objetos de Csque são mais próximos de xj para o grupo
C′
s, assim como, alocando os objetos mais próximos de xf para o grupo Cs′′;
10 mover grupos Cs′ e Cs′′de Π para Π′; 11 senão
12 não dividir Cs; 13 fim
14 fim
15 mover todos os grupos de Π′ para Π;
Campello (2009) sugerem que a segunda estratégia apresenta resultados melhores ou equiva- lentes à primeira. Por tal razão, neste trabalho apenas esta estratégia é descrita e sugere-se ao leitor interessado em maiores detalhes sobre a primeira estratégia consultar Alves et al. (2006) e Naldi (2011). Considere que um indivíduo teve um aumento na sua adequabilidade de uma ge- ração t para a geração t + 1. Neste caso, o mesmo operador aplicado anteriormente é utilizado. Caso o indivíduo tenha obtido um decréscimo na sua adequabilidade, o operador a ser aplicado é substituído. Finalmente, se nenhum operador foi aplicado no indivíduo, um dos dois opera- dores (MO1 e MO2) é escolhido aleatoriamente, com igual probabilidade (Horta e Campello, 2009).
Para a seleção dos indivíduos para a próxima geração, dois operadores são utilizados: eli- tismo e seleção por ranking (Bäck et al., 2000a). O primeiro garante que o melhor indivíduo seja mantido de uma geração para outra, enquanto que o segundo permite que os indivíduos sejam selecionados com probabilidades proporcionais às qualidades das soluções que repre- sentam. Na seleção é utilizado o procedimento de normalização por ranking e o algoritmo da roleta, assim como feito para o cálculo da probabilidade de um grupo sofrer mutação. No en- tanto, neste caso, o pior indivíduo da população tem posição 1 no ranking. Todos os indivíduos selecionados utilizando ranking passam por um dos operadores de mutação, de acordo com o procedimento supramencionado.
Para fazer o refinamento das partições obtidas, o algoritmo K-means é aplicado em cada um dos indivíduos. Conforme mencionado em Naldi et al. (2011), poucas iterações do K-means são suficientes para realizar este procedimento de busca local. Portanto, é interessante utilizar um número máximo de iterações para o K-means. Isso é esperado pelo fato do F-EAC favorecer
o refinamento acumulativo das partições, mantendo boas partições para gerações subsequentes. O algoritmo F-EAC pode ser sumarizado pelo Algoritmo 4.
O F-EAC já foi utilizado como ponto de partida para variantes em diversos contextos de agrupamento de dados, tais como em: agrupamento rígido relacional (Horta e Campello, 2009), agrupamento fuzzy relacional (Horta et al., 2011) e, além disso, numa variante de seu predeces- sor (EAC) para imputação de valores (Silva e Hruschka, 2009, 2013).
Algoritmo 4: Fast Evolutionary Algorithm for Clustering (adaptado de Naldi et al. (2011)).
Entrada: X Conjunto de dados a serem agrupados;
KmaxMaior número de grupos aceitável;
P Tamanho da população;
SC1Critério de parada para o K-means, e.g., número de iterações;
SC2Critério de parada para o F-EAC, e.g., número de gerações; Saída: Indivíduo com melhor adequabilidade emP(t);
1 t ←− 0;
2 inicializar a população P(0)com P indivíduos com k ∈ {2, . . . , Kmax} grupos aleatórios; 3 repita
4 para cadai = 1, . . . , P faça
5 aplicar o algoritmo K-means em cada indivíduo até o critério SC1ser satisfeito; 6 avaliar cada indivíduo de acordo com a função objetivo;
7 fim
8 copiar o melhor indivíduo em P(t) para a próxima população P(t+1){elitismo}; 9 ajustar probabilidades de mutação;
10 selecionar indivíduos de P(t)utilizando ranking; 11 para cada indivíduo selecionado faça
12 selecionar os grupos a serem mutados;
13 aplicar os operadores de mutação nos grupos selecionados para criar novos indivíduos de acordo com as probabilidades obtidas no Passo 9;
14 fim
15 copiar os novos indivíduos para a próxima população P(t+1); 16 t ←− t + 1;
17 atéSC2 ser satisfeito;