• Nenhum resultado encontrado

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 Cse 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 Cse 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;

2.4.2

Algoritmos Evolutivos Baseados em Expectation Maximization para