UM ALGORITMO DE VIDA ARTIFICIAL PARA AGRUPAMENTO DE

Propaganda
1
UNIVERSIDADE PRESBITERIANA MACKENZIE
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
UM ALGORITMO DE VIDA ARTIFICIAL PARA
AGRUPAMENTO DE DADOS VARIANTES NO TEMPO
Dissertação de Mestrado apresentada ao Programa de Pós-Graduação em Engenharia Elétrica da Universidade Presbiteriana Mackenzie,
como requisito parcial para a obtenção do título
de Mestre em Engenharia Elétrica.
Área de Concentração: Engenharia da Computação
Aluno: Diego Gadens dos Santos
Orientador: Prof. Dr. Leandro Nunes de Castro
São Paulo
Setembro de 2012
1
S237a
Santos, Diego Gadens dos
Um Algoritmo de Vida Artificial para Agrupamento de Dados Variantes no Tempo. / Diego Gadens dos Santos – São Paulo, 2012.
91 f. ; 30 cm
Dissertação (Programa de Pós-Graduaçăo em Engenharia Elétrica) - Universidade Presbiteriana Mackenzie - São Paulo, 2012.
Orientador: Leandro Nunes de Castro
Bibliografia : p. 86-91
1. Vida Artificial. 2. Computaçăo Natural. 3. Mineraçăo de Dados.
4. Agrupamento de Dados. 5. Boids. 6. Dados Variantes no Tempo.
2
Agradecimentos
Agradeço primeiramente à força maior que rege o universo, e que independente de rótulos
colocados pelos homens, creio que seja algo superior a mim e que me ajuda a ter força para
continuar em meu caminho.
Agradeço ao meu orientador, Prof. Dr. Leandro Nunes de Castro, pelas suas contribuições à
minha formação acadêmica, por todos os seus incentivos, e também por todas as oportunidades por ele proporcionadas.
À minha família, por ter me ensinado a ter força, coragem e perseverança para enfrentar as
minhas lutas diárias. Obrigado por terem sempre apoiado as minhas decisões e terem feito
tudo o que estivesse ao seu alcance para ajudar na realização dos meus sonhos.
Um agradecimento especial vai também para meu tio Genilton. Obrigado por todas as conversas motivacionais, toda a confiança depositada em mim, e por eu poder contar com você para
o que der e vier.
Aos amigos Luiz Carraro e Steve Pereira por serem meus amigos-irmãos, por serem minha
nova família em São Paulo, por terem me acompanhado em toda essa jornada e por estarem
sempre dispostos a qualquer coisa para ajudar.
À Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP), ao CNPq, à Capes e
também ao MackPesquisa pelo apoio financeiro, crucial para o desenvolvimento deste trabalho.
À Universidade Presbiteriana Mackenzie (UPM) e ao Programa de Pós Graduação em Engenharia Elétrica pela infraestrutura e suporte.
A todos os professores e colegas do Programa de Pós Graduação em Engenharia Elétrica que
contribuíram para minha formação e para este trabalho.
A todos aqueles que contribuíram direta ou indiretamente para a conclusão deste trabalho,
meus sinceros agradecimentos.
3
Resumo
A capacidade de geração e armazenamento de dados proporcionada pelas tecnologias atuais
levou ao surgimento de bases de dados com uma grande variedade de tipos e tamanhos. Extrair conhecimentos não triviais e úteis a partir de grandes bases de dados, entretanto, é uma tarefa muito mais difícil do que a criação das mesmas. Esta lacuna tem estimulado a busca por
técnicas eficientes de extração de conhecimentos intrínsecos a estes grandes conjuntos de dados, capazes de permitir tomadas estratégicas de decisão. Dentre as muitas tarefas da extração
de conhecimentos a partir de dados, tem-se o agrupamento, que consiste na segmentação da
base em grupos cujos objetos são mais parecidos entre si do que a objetos pertencentes a outros grupos. Apesar de a área ser bastante ativa, pouco tem sido feito no sentido de desenvolver e investigar algoritmos de agrupamento para dados variantes no tempo, por exemplo, transações financeiras, dados climáticos, informações e mensagens postadas em redes sociais e
muitos outros. Tendo em vista a relevância prática desse tipo de análise e o crescente interesse
pelos algoritmos inspirados na biologia, este trabalho tem como objetivo propor um algoritmo
bioinspirado, baseado no modelo de vida artificial de Boids, para realizar o agrupamento de
dados variantes no tempo. O algoritmo de Boids foi inicialmente criado para demonstrar apenas a simulação da movimentação coordenada observada em uma revoada de pássaros. A fim
de utilizar este algoritmo para a tarefa de agrupamento de dados, algumas modificações tiveram de ser propostas nas regras clássicas de coesão, separação e alinhamento dos Boids. Desta
forma, foram criados objetos que se posicionam e se movimentam no espaço, de maneira a
representar os grupos naturais existentes nos dados. A característica dinâmica intrínseca dos
Boids tornou o algoritmo proposto, denominado dcBoids (dynamic clustering Boids), um candidato natural para a resolução de problemas de agrupamento de dados variantes no tempo. Os
resultados obtidos atestaram a robustez do método em seu contexto de aplicação, sob a perspectiva de diferentes medidas de avaliação de desempenho e quando aplicado a várias bases
de dados da literatura com dinâmicas inseridas artificialmente.
Palavras-chave: Vida Artificial, Computação Natural, Mineração de Dados, Agrupamento
de Dados, Boids, Dados Variantes no Tempo.
4
Abstract
Current technologies have made it possible to generate and store data in high volumes. To
process and collect information in large databases is not always as easy as creating them.
Therefore, this gap has stimulated the search for efficient techniques capable of extracting
useful and non-trivial knowledge, which are intrinsic to these large data sets. The goal of this
work is to propose a bioinspired algorithm, based on the Boids artificial life model, which will
be used to group data in dynamic environments, i.e. in databases updated over time. The Boids algorithm was originally created to illustrate the simulation of the coordinated movement
observed in a flock of birds and other animals. Thus, to use this algorithm for data clustering,
some modifications must be applied. These changes will be implemented in the classical rules
of cohesion, separation and alignment of the Boids model in order to consider the distance
(similarity/dissimilarity) among objects. Thus, it creates objects that stand and move around
the space, representing the natural groups within the data, and it is expected that similar objects tend to form dynamic clusters (groups) of Boids in the environment, while dissimilar
objects tend to keep a larger distance between them. The results presented attest the robustness of the algorithm for clustering time-varying data under the light of different evaluation
measures and in various databases from the literature.
Keywords: Artificial Life, Natural Computing, Data Mining, Data Clustering, Boids, TimeVarying Data.
5
Lista de Figuras
Figura 1: Classificações diferentes para uma mesma base de dados. ...................................... 23
Figura 2: Exemplo de agrupamentos contraditórios. ............................................................... 26
Figura 3: Regras comportamentais dos Boids. (a) Separação. (b) Alinhamento. (c) Coesão..32
Figura 4: Um Boid e sua vizinhança. ...................................................................................... 34
Figura 5: Tendência de alinhamento dos Boids ao longo do tempo. (a) Início da
simulação. (b) Após algumas iterações. ................................................................................. 35
Figura 6: Exemplo de aplicação da regra de separação. .......................................................... 35
Figura 7: Exemplo de regra de alinhamento. ........................................................................... 36
Figura 8: Exemplo da regra de coesão..................................................................................... 37
Figura 9: Pseudocódigo do algoritmo de Boids. ..................................................................... 37
Figura 10: Pseudocódigo do algoritmo dcBoids. .................................................................... 45
Figura 11: Iterações inicial e final para o agrupamento da base Animais. .............................. 55
Figura 12: Exclusão seguida de reinclusão de um grupo no ambiente. ................................... 56
Figura 13: Dinâmica do algoritmo dcBoids ao longo das iterações para a base Animais. ...... 57
Figura 14: Dinâmica do algoritmo k-médias ao longo das iterações para a base Animais. .... 60
Figura 15: Base de dados Ruspini. .......................................................................................... 61
Figura 16: Iterações inicial e final para o agrupamento da base Ruspini. ............................... 62
Figura 17: Objetos com maiores chances de alteração de grupo durante as iterações. ........... 63
Figura 18: Dinâmica do algoritmo dcBoids para a base de dados Ruspini ao longo
6
das iterações. ............................................................................................................................ 64
Figura 19: Dinâmica do algoritmo k-médias para a base Ruspini ao longo das iterações. ..... 66
Figura 20: Iterações inicial e final para o agrupamento da base Yeast ................................... 68
Figura 21: Dinâmica do algoritmo dcBoids para a base Yeast ao longo das iterações ........... 69
Figura 22: Dinâmica do algoritmo k-médias para a base Yeast ao longo das iterações.......... 70
Figura 23: Iterações inicial e final para o agrupamento da base Wine. ................................... 72
Figura 24: Dinâmica do algoritmo dcBoids para a base Wine ao longo das iterações ........... 73
Figura 25: Dinâmica do algoritmo k-médias para a base Wine ao longo das iterações .......... 75
Figura 26: Iterações inicial e final para o agrupamento da base Diabetes .............................. 76
Figura 27: Dinâmica do algoritmo dcBoids para a base Diabetes ao longo das iterações ...... 77
Figura 28: Dinâmica do algoritmo k-médias para a base Diabetes ao longo das iterações ..... 78
Figura 29: Iterações inicial e final para o agrupamento da base Ecoli .................................... 80
Figura 30: Dinâmica do algoritmo dcBoids para a base Ecoli ao longo das iterações ............ 81
Figura 31: Dinâmica do algoritmo k-médias para a base Ecoli ao longo das iterações .......... 83
7
Lista de Tabelas
Tabela 1: Bases de dados selecionadas para análise de desempenho do dcBoids.................... 46
Tabela 2: Base de dados Animais. ............................................................................................ 54
Tabela 3: Desempenho dos algoritmos dcBoids e k-médias quando aplicados a base de dados
Animais..................................................................................................................................... 54
Tabela 4: Desempenho dos algoritmos dcBoids e k-médias quando aplicados à base de dados
Ruspini. ..................................................................................................................................... 62
Tabela 5: Desempenho dos algoritmos dcBoids e k-médias quando aplicados a base de dados
Yeast. ........................................................................................................................................ 67
Tabela 6: Desempenho dos algoritmos dcBoids e k-médias quando aplicados a base de dados
Wine. ........................................................................................................................................ 71
Tabela 7: Desempenho dos algoritmos dcBoids e k-médias quando aplicados a base de dados
Diabetes. ................................................................................................................................... 76
Tabela 8: Desempenho dos algoritmos dcBoids e k-médias quando aplicados a base de dados
Ecoli. ......................................................................................................................................... 80
Tabela 9: Relação entre o tamanho do ambiente e o número de iterações até a estabilização do
algoritmo dcBoids para a base de dados Animais. ................................................................... 52
Tabela 10: Relação entre a velocidade dos Boids e o número de iterações até a estabilização
do algoritmo para a base de dados Animais. ............................................................................ 53
8
Sumário
Resumo ...................................................................................................................................... 3
Abstract ..................................................................................................................................... 4
Lista de Figuras ........................................................................................................................ 5
Lista de Tabelas ........................................................................................................................ 7
Sumário ..................................................................................................................................... 8
1
2
INTRODUÇÃO ................................................................................................................ 11
1.1
MOTIVAÇÃO ........................................................................................................... 14
1.2
OBJETIVOS .............................................................................................................. 16
1.3
CONTRIBUIÇÕES ................................................................................................... 16
1.4
ORGANIZAÇÃO DO DOCUMENTO ..................................................................... 17
REFERENCIAL TEÓRICO ............................................................................................. 18
2.1
2.1.1
AGRUPAMENTO DE DADOS ........................................................................ 20
2.1.2
AGRUPAMENTO DE DADOS VARIANTES NO TEMPO ........................... 23
2.1.3
AVALIAÇÃO DE AGRUPAMENTOS ............................................................ 25
2.2
COMPUTAÇÃO NATURAL ................................................................................... 27
2.2.1
VIDA ARTIFICIAL ........................................................................................... 28
2.2.2
O MODELO DE BOIDS .................................................................................... 31
2.3
3
MINERAÇÃO DE DADOS ...................................................................................... 18
2.2.2.1
Regra de Separação ..................................................................................... 35
2.2.2.2
Regra de Alinhamento ................................................................................. 36
2.2.2.3
Regra de Coesão .......................................................................................... 36
TRABALHOS RELACIONADOS ........................................................................... 37
dcBoids: BOIDS PARA AGRUPAMENTO DE DADOS VARIANTES NO TEMPO .. 41
3.1
OS BOIDS E O AMBIENTE .................................................................................... 41
3.2
CÁLCULO DE AFINIDADE ................................................................................... 41
9
3.3
4
NOVAS REGRAS DE MOVIMENTAÇÃO ............................................................ 42
3.3.1
NOVA REGRA DE SEPARAÇÃO ................................................................... 42
3.3.2
NOVA REGRA DE ALINHAMENTO ............................................................. 43
3.3.3
NOVA REGRA DE COESÃO ........................................................................... 43
3.4
INCLUSÃO DE UM COMPORTAMENTO ALEATÓRIO .................................... 44
3.5
JUNÇÃO E SEPARAÇÃO DE OBJETOS ............................................................... 44
3.6
VOO ISOLADO ........................................................................................................ 44
3.7
VISÃO GERAL DO ALGORITMO ......................................................................... 45
METODOLOGIA, RESULTADOS E DISCUSSÃO ....................................................... 46
4.1
METODOLOGIA ...................................................................................................... 46
4.1.1
BASES DE DADOS ........................................................................................... 46
4.1.2
ANÁLISES A SEREM EFETUADAS .............................................................. 47
4.1.3
SENSIBILIDADE PARAMÉTRICA ................................................................ 47
4.1.4
MEDIDAS DE AFINIDADE ............................................................................. 48
4.1.5
MEDIDAS DE AVALIAÇÃO ........................................................................... 48
4.2
4.1.5.1
Medidas Internas ......................................................................................... 49
4.1.5.2
Medidas Externas ........................................................................................ 49
SENSIBILIDADE PARAMÉTRICA ........................................................................ 51
4.2.1
Tamanho do Ambiente ....................................................................................... 51
4.2.2
Velocidade dos Boids ......................................................................................... 52
4.3
RESULTADOS EXPERIMENTAIS ......................................................................... 53
4.3.1
BASE ANIMAIS ................................................................................................ 54
4.3.1.1
Caso Estático ............................................................................................... 54
4.3.1.2
Caso Dinâmico ............................................................................................ 55
4.3.1.3
Resultados K-Médias .................................................................................. 59
4.3.2
BASE RUSPINI ................................................................................................. 61
4.3.2.1
Caso Estático ............................................................................................... 61
10
4.3.2.2
Caso Dinâmico ............................................................................................ 62
4.3.2.3
Resultados K-Médias .................................................................................. 65
4.3.3
BASE YEAST .................................................................................................... 66
4.3.3.1
Caso Estático ............................................................................................... 67
4.3.3.2
Caso Dinâmico ............................................................................................ 68
4.3.3.3
Resultados K-Médias .................................................................................. 70
4.3.4
BASE WINE ...................................................................................................... 71
4.3.4.1
Caso Estático ............................................................................................... 71
4.3.4.2
Caso Dinâmico ............................................................................................ 73
4.3.4.3
Resultados K-Médias .................................................................................. 74
4.3.5
BASE DIABETES .............................................................................................. 75
4.3.5.1
Caso Estático ............................................................................................... 75
4.3.5.2
Caso Dinâmico ............................................................................................ 77
4.3.5.3
Resultados K-Médias .................................................................................. 78
4.3.6
BASE ECOLI ..................................................................................................... 79
4.3.6.1
Caso Estático ............................................................................................... 79
4.3.6.2
Caso Dinâmico ............................................................................................ 81
4.3.6.3
Resultados K-Médias .................................................................................. 82
5
CONCLUSÕES E TRABALHOS FUTUROS ................................................................. 84
6
REFERÊNCIAS BIBLIOGRÁFICAS .............................................................................. 86
11
1 INTRODUÇÃO
Atualmente, diversas empresas e organizações conseguem produzir, em um curto intervalo de
tempo, uma quantidade de dados tão grande que muitas pessoas não seriam capazes de analisá-los e absorvê-los em uma vida inteira de trabalho. Uma vez que essas bases de dados são
mantidas pelas organizações, é possível supor que elas possuem um determinado grau de importância e/ou um valor agregado. O escritório de Estatísticas do Trabalho dos Estados Unidos divulgou um estudo com uma série de informações que servem como bons exemplos para
quantificar estes montantes de dados (MANYIKA, CHUI, et al., 2011). Dentre os dados reportados, destacam-se:
A biblioteca do congresso estadunidense coletou em abril de 2011 um total de 235
Terabytes de dados;
O setor bancário dos Estados Unidos armazenou no ano de 2009 uma quantidade de
609 Petabytes (aproximadamente 6,4 × 108 Gb);
O setor de saúde, também dos EUA, armazenou em 2009 um total de 434 Petabytes, o
setor de comunicações um total de 715 Petabytes e o setor de transportes um total de
227 Petabytes;
Somados, os 17 setores do governo dos EUA citados no estudo geraram em 2009 um
total aproximado de 6,7 Hexabytes (7,19×109 Gb);
Em média, uma empresa de segurança e investimentos, com até 1000 funcionários,
possui aproximadamente 6,8 Petabytes de dados armazenados;
O valor estimado para os dados contidos nas cinco bases de dados mais valiosas deste
estudo (Pesquisa e Desenvolvimento, Atendimento Clínico, Contabilidade, Saúde Pública e Novos Modelos de Negócios) somam aproximadamente 335 bilhões de dólares;
Utilizando informações extraídas de bases de dados, por meio das técnicas de Mineração de Dados, o setor público europeu conseguiu uma redução de 20% nos seus
custos, ou seja, uma redução de aproximadamente 300 bilhões de euros.
Esses são apenas alguns exemplos de bases de dados e informações associadas a elas que evidenciam a grandeza dos montantes que empresas e governos são capazes de produzir. Porém,
12
o conhecimento contido nestes dados precisa, de alguma forma, ser extraído para que seja
possível tirar algum proveito dos mesmos.
Apesar destas bases de dados muitas vezes guardarem informações valiosas para as companhias, a extração de conhecimento das mesmas é um processo altamente complexo e que necessita de profissionais e técnicas especializadas para ser realizada com sucesso.
Para que possa haver a transformação de dados em conhecimento, uma série de etapas precisa
ser realizada. O conjunto destas etapas é o que torna possível a analogia com a mineração,
onde uma grande quantidade de matéria bruta é processada, limpa, filtrada, selecionada, etc., a
fim de se extrair pequenas partes de outro material, normalmente de valor muito mais elevado
que a massa bruta, porém que esteja “escondido” dentro dessa massa. Sendo assim, na mineração de dados, estas etapas também visam encontrar um produto valioso (o conhecimento)
dentro de uma massa bruta (a base de dados). Para isto, as técnicas de mineração de dados são
aplicadas e, em suas saídas, evidenciam padrões, tendências e grupos de dados que, muitas
vezes, após passarem por uma detalhada análise de um especialista, podem trazer à tona informações até então desconhecidas. Após sua extração, estas informações podem então ser
utilizadas para gerar conhecimento que, de alguma forma, venha a beneficiar os portadores
destas bases de dados ou outros interessados.
Embora as técnicas de mineração de dados possam trazer bons resultados quando aplicadas
corretamente, é preciso levar em consideração que este é um problema complexo sob o ponto
de vista computacional. Na computação, a teoria de complexidade tem o objetivo de classificar problemas com base nos algoritmos que os resolvem. Um algoritmo polinomial é aquele
que tem sua complexidade calculada por meio de uma função polinomial; analogamente, um
algoritmo exponencial é aquele cuja função de complexidade é exponencial em relação ao
comprimento (ou tamanho) da entrada (ou instância). Pode-se dizer que um algoritmo é eficiente quando sua complexidade pode ser calculada com base em um polinômio no tamanho da
entrada. Por exemplo, uma busca em um vetor tem complexidade O(n), sendo n o comprimento do vetor. Neste caso, o algoritmo precisará fazer, no pior caso, n operações até encontrar o
valor procurado. Já a multiplicação de duas matrizes quadradas n × n, tem uma complexidade
quadrática, O(n²). Ambos os problemas não caracterizam problemas complexos computacionalmente, uma vez que seus algoritmos possuem complexidade polinomial, O(nk), onde k é
uma constante maior que 0 e n é o tamanho da instância do problema. Um problema é considerado inerentemente difícil se sua solução requer recursos computacionais que crescem a
13
uma taxa maior que polinomial com o tamanho n da instância do problema, qualquer que seja
o algoritmo usado.
Há uma grande diferença entre a taxa de crescimento de polinômios que tipicamente ocorrem
(tal como n³) e exponenciais que tipicamente ocorrem (tal como 2n). Por exemplo, suponha
que n seja igual a 1000, um tamanho de entrada bastante razoável para um algoritmo. Nesse
caso, n³ é 1 bilhão, um número grande, porém, administrável em um computador. Em contrapartida, 2n é 1,07 × 10301, ou seja, um número tão grande que pode inviabilizar a execução de
um algoritmo com esta complexidade, independentemente da capacidade de processamento
disponível. Algoritmos de tempo polinomial são suficientemente rápidos para muitos propósitos, mas algoritmos de tempo exponencial raramente são úteis.
Algoritmos de tempo exponencial surgem quando se resolve problemas por meio de busca
exaustiva através de um espaço de soluções, que pode ser chamado de busca por força-bruta.
O tamanho do espaço de busca é exponencial, portanto essa busca usa tempo exponencial. Às
vezes, a busca por força-bruta pode ser evitada por meio de um entendimento mais profundo
de um problema, que pode revelar um algoritmo de tempo polinomial de maior utilidade.
A classe de Problemas NP é o conjunto de problemas resolvíveis em tempo polinomial em um
computador não-determinístico. A Classe NP também pode ser definida como a classe de
problemas em que é possível verificar, em tempo polinomial, se uma determinada solução
proposta satisfaz o problema de decisão. Ou seja, ainda não é conhecida solução polinomial,
mas é possível, em tempo de ordem polinomial, confirmar que certo caso é solução de um
problema dessa classe. Sendo assim, para resolver completamente um problema desse tipo é
preciso, essencialmente, testar todos os candidatos à solução.
O problema de agrupamento de dados consiste em um problema pertencente à classe NP. Sua
complexidade é definida por uma expressão de complexidade exponencial ou maior, tornando
inviável sua solução através de uma busca exaustiva no espaço de possíveis soluções
(EVERITT, LANDAU e LEESE, 2001). Na Seção 2.1, esta discussão será retomada em mais
detalhes.
Devido à elevada complexidade e ao alto custo computacional associados aos problemas NP,
surge a necessidade de se buscar soluções computacionais inteligentes e efetivas, ou seja, que
demandem uma quantidade aceitável de tempo e recursos e que, ao mesmo tempo, apresentem
resultados satisfatórios. Deste modo, a aplicação e desenvolvimento de técnicas inteligentes
14
ganha espaço, visto que estas técnicas são capazes de operar efetivamente em tarefas de análise exploratória, obtendo vantagens no tipo de comportamento adaptativo que simulam.
A computação natural é uma área de pesquisa relativamente recente, constituída por novas
abordagens de computação caracterizadas por uma maior proximidade com a natureza e bom
potencial de solução de problemas complexos do mundo real (DE CASTRO, 2007). Devido
ao seu grande potencial de exploração de soluções em problemas que apresentam explosões
combinatórias de possíveis soluções, esta área ganha espaço na solução de problemas que, à
primeira vista, possam parecer insolúveis por técnicas clássicas de computação e programação
matemática. Ao explorar estes problemas com abordagens que buscam imitar os comportamentos da natureza, a computação natural fornece uma ampla gama de técnicas que podem
ser aplicadas com sucesso aos mais diversos problemas da computação, matemática, engenharias, biologia e, virtualmente, qualquer área do conhecimento.
Esta dissertação busca unir os pontos fortes de duas grandes áreas de pesquisa, a Mineração
de Dados e a Computação Natural, propondo um algoritmo de agrupamento de dados (o dcBoids – Dynamic Clustering Boids), baseado em uma técnica bioinspirada utilizada para modelar comportamentos emergentes em grupos de agentes, e solucionando problemas de agrupamento de dados variantes no tempo.
1.1 MOTIVAÇÃO
Tendo foco tanto na proposição de uma ferramenta bioinspirada de vida artificial, quanto na
solução de problemas complexos de ordem prática, esta dissertação encontra-se alinhada com
um dos cinco Grandes Desafios da Pesquisa em Ciência da Computação no Brasil para o decênio 2006-2016 (www.sbc.org.br), de acordo com a Sociedade Brasileira de Computação
(SBC). Trata-se da modelagem computacional de sistemas complexos artificiais, naturais e
socioculturais e da interação homem-natureza, que tem como um dos enfoques modelar e
compreender algoritmos inspirados na natureza. Considerando o fato de que o agrupamento
de dados promove a descoberta de conhecimento em bases de dados e que pode ser aplicado
em bases textuais e multimídia. Este projeto também está em conformidade com outro Grande
Desafio da Pesquisa em Computação no Brasil, que é a Gestão da Informação em grandes
volumes de dados multimídia distribuídos.
Nos dias de hoje, as estratégias de muitos profissionais e empresas estão tão relacionadas à
gestão de suas bases de dados, quanto estão com os seus planos de ação e de marketing. In-
15
vestir recursos na aquisição e retenção de clientes que sejam mais propensos a comprar, por
exemplo, exige um profundo entendimento e exploração de bancos de dados de clientes de
uma organização.
Felizmente, uma ampla variedade de técnicas – e especialistas que sabem como ajudar essas
empresas a usá-las da melhor forma – está disponível para ajudar neste esforço. Dentre as
várias ferramentas analíticas de dados, existe a técnica conhecida como análise de grupos, ou
agrupamento de dados, a qual pode ser subdividida em agrupamento de dados estáticos e
agrupamento de dados variantes no tempo. Essa técnica é utilizada para determinar e qualificar grupos ou agrupamentos em uma base de dados. Uma vez identificados, esses agrupamentos permitem às organizações tomar decisões direcionadas com base nas necessidades e/ou
características dos grupos e melhorar a efetividade de suas operações.
Apesar de derivadas de um mesmo conceito, as análises de dados estáticos e variantes no
tempo apresentam diferenças importantes. Na análise de dados estáticos o algoritmo é executado em uma base em que os dados disponíveis não são alterados ao longo de sua execução,
ou seja, o algoritmo utiliza os mesmos dados do início ao fim de sua aplicação. Já na análise
de dados variantes no tempo, além de aplicar as técnicas de agrupamento, o algoritmo precisa
ser capaz de perceber mudanças ou atualizações aplicadas nos dados e refletir imediatamente
estas mudanças no agrupamento, caso necessário. Estas atualizações podem incluir desde a
alteração de um ou mais atributos de um objeto do banco de dados, até o desaparecimento ou
inclusão de um grupo inteiro na base. O algoritmo precisa, portanto, em todos os instantes de
sua execução, ser capaz de interpretar as variações nos dados e fazer com que as mesmas sejam refletidas corretamente nos agrupamentos. Dessa forma, algumas de suas principais características são:
1) Ser capaz de atuar em bases com alterações de natureza contínua, uma vez que qualquer
atualização dos objetos representados pelos Boids influencia diretamente seu voo;
2) Ser capaz de lidar bem com classes desbalanceadas, uma vez que o bando não é fortemente influenciado pelo seu tamanho, mas sim pelas afinidades entre seus Boids
constituintes; e
3) Ser uma ferramenta de visualização, que fornece um feedback em tempo real para o
usuário ou espectador do algoritmo sobre a conformação dos grupos da base.
16
Assim sendo, tendo como base o problema descrito e os desafios propostos pela Sociedade
Brasileira de Computação, este trabalho visa o estudo e implementação computacional de um
algoritmo baseado em vida artificial para resolver problemas de agrupamento de dados, com
particular ênfase nos dados variantes no tempo. Problemas desta natureza incluem aplicações
na área financeira, recuperação de informação, detecção de anomalias, recuperação de imagens, visualização de dados, bioinformática, análise de séries temporais e muitas outras. Apesar desta grande relevância prática, agrupamento de dados em ambientes dinâmicos ainda não
é uma tarefa amplamente estudada na literatura, sendo este outro fator motivador para a realização deste trabalho.
1.2 OBJETIVOS
Sob o ponto de vista de pesquisa e desenvolvimento de ferramentas bioinspiradas, essa dissertação tem como objetivo geral investigar e desenvolver técnicas de agrupamento de dados
baseadas no algoritmo de simulação de comportamentos coletivos em vida artificial denominado de Boids. Mais especificamente, será investigada e adaptada uma técnica chamada de
cBoids (DAVID, 2009), a qual corresponde a um algoritmo de agrupamento baseado no modelo de Boids para que ela possa ser aplicada a dados variantes no tempo. Os objetivos específicos desta dissertação incluem:
1) Propor uma versão modificada de um algoritmo bioinspirado, aplicado em tarefas de
agrupamento de dados, de modo que ele seja capaz de trabalhar com o agrupamento de
dados variantes no tempo; e
2) Avaliar o desempenho desse algoritmo em relação à qualidade dos agrupamentos gerados.
1.3 CONTRIBUIÇÕES
Neste trabalho, é proposto um algoritmo de vida artificial que pode ser utilizado para resolver
o problema de agrupamento de dados variantes no tempo. Essa proposta é derivada de um
trabalho inicial (DAVID, 2009) que utiliza o algoritmo de Boids para realizar agrupamento de
dados estáticos. As principais vantagens do algoritmo a ser proposto aqui são:
1) Ser inerentemente capaz de atuar em ambientes variantes no tempo;
2) Ser capaz de determinar automaticamente o número de grupos ou classes de objetos da
base de dados;
17
3) Implementar um processo auto-organizado, através do qual apenas as informações acessíveis pelos Boids são utilizadas para promover a formação de grupos.
4) Ser uma ferramenta de visualização de dados. O algoritmo permite uma visualização
em tempo real da formação dos grupos em um ambiente 2D, mesmo que os objetos estejam em um espaço com dimensão superior.
Este projeto contribui também com a computação bioinspirada, pela proposição de um novo
algoritmo auto-organizado para agrupamento de dados.
1.4 ORGANIZAÇÃO DO DOCUMENTO
Essa dissertação está organizada em cinco capítulos. O Capítulo 2 apresenta o referencial teórico, introduzindo os conceitos de Mineração de Dados, Agrupamento de Dados; Agrupamento de Dados Variantes no Tempo e Índices de Validação de Agrupamentos. Ainda no Capítulo
2, são introduzidos alguns conceitos de Computação Natural, Vida Artificial e o modelo original do algoritmo de Boids. No Capítulo 3, são apresentadas as modificações aplicadas ao
modelo de Boids, a fim de tornar o algoritmo capaz de realizar o agrupamento de dados variantes no tempo. O Capítulo 4 apresenta a metodologia experimental, os experimentos, as medidas de avaliação utilizadas e os resultados obtidos com a aplicação do dcBoids, bem como a
comparação com o algoritmo k-médias. A dissertação é concluída no Capítulo 5, com conclusões gerais e propostas de trabalhos futuros.
18
2 REFERENCIAL TEÓRICO
Este capítulo faz uma revisão conceitual sobre os principais temas pesquisados na dissertação.
O capítulo começa introduzindo a área de mineração de dados, com particular ênfase na tarefa
de agrupamento, problemas variantes no tempo e medidas de avaliação. Na sequência, o capítulo apresenta conceitos sobre computação natural, enfocando vida artificial e o algoritmo de
Boids. O capítulo é concluído com uma seção descrevendo trabalhos relacionados.
2.1 MINERAÇÃO DE DADOS
Coletar e armazenar imensas quantidades de dados é algo que atualmente pode ser feito com
muita facilidade e baixo custo. Além disso, estas capacidades são ainda facilmente expansíveis, de modo que, se um dispositivo de armazenamento se aproximar de seu limite, basta
adicionar outro e continuar o processo. Apesar de resolver temporariamente o problema, esta
ação acaba adiando a tarefa de decidir o que fazer com os dados armazenados.
Esses avanços da tecnologia têm produzido um problema de superabundância de dados, pois
nossas capacidades de coletar e armazenar dados tem superado nossa habilidade de analisar e
extrair conhecimento dos mesmos (LAHANE et al., 2012). Assim sendo, é necessária a aplicação de técnicas e ferramentas que transformem, de maneira inteligente e automática, os dados disponíveis em informações úteis, que representem conhecimento.
A mineração de dados consiste em uma área que surgiu a partir do interesse em obter informações e conhecimentos intrínsecos a grandes conjuntos de dados. Pode-se definir a descoberta de conhecimento em bancos de dados (do inglês Knowledge Discovery from Databases
- KDD) como sendo o processo não trivial de identificação de padrões válidos, novos, potencialmente úteis e compreensíveis em grandes bancos de dados (FAYYAD, SHAPIRO e
SMYTH, 1996b). A mineração de dados, por sua vez, é a extração de informações implícitas,
previamente desconhecidas e potencialmente úteis a partir de uma base de dados (WITTEN e
FRANK, 20011). A ideia é construir algoritmos capazes de analisar automaticamente bases de
dados, procurando por padrões.
Ao se iniciarem os estudos relacionados à mineração de dados, questões que podem vir à tona
são, por exemplo, “Qual o real ganho das técnicas de mineração de dados em relação às consultas SQL normais?”, ou ainda, “O que uma ferramenta de mineração de dados pode fazer
19
que uma consulta SQL não pode?”. Primeiramente, é importante perceber que as linguagens
de consulta e a mineração de dados são complementares entre si. Uma ferramenta de mineração de dados não substitui uma ferramenta de consulta, porém, dá ao usuário um grande adicional de possibilidades. Tendo como suposição uma base de dados contendo milhões de registros que descrevem compras de clientes ao longo de dez anos, é possível esperar que haja
uma riqueza de conhecimento potencialmente útil intrínseco a ela. Muito deste conhecimento
pode ser recuperado utilizando-se consultas normais, por exemplo, “Quem comprou qual produto em qual data?”, “Qual o volume médio de compras em certa região no mês de julho”, e
assim sucessivamente. Porém, em uma base tão rica como esta, existem informações escondidas que são muito mais difíceis de serem encontradas utilizando linguagens de consulta. Exemplos clássicos disso seriam as respostas para questões do tipo “Qual é uma segmentação
dos meus clientes de acordo com seus perfis?”, ou seja, como encontrar os mais importantes
perfis de clientes, ou ainda “Quais são as tendências mais importantes no comportamento dos
clientes?”.
De fato, estas questões poderiam, com certo empenho, ser respondidas utilizando-se uma linguagem de consulta. Seria possível, por tentativa, encontrar critérios para a definição de perfis
de clientes e consultar a base para ver se eles funcionam ou não. Em um processo de tentativa
e erro, seria possível desenvolver intuições sobre a importância de determinados atributos e
suas inter-relações. Entretanto, a linguagem SQL é muito mais utilizada quando se sabe exatamente o que está sendo procurado, enquanto a mineração de dados é mais utilizada quando
não se sabe, ou tem-se apenas uma ideia vaga, sobre o que se procura (ADRIAANS e
ZANTINGE, 1996).
Existem diversas maneiras de se classificar ferramentas de mineração de dados e mesmo estudiosos da área ainda divergem em relação a estas classificações (GROTH, 1997). Dentre as
tarefas mais importantes (GROTH, 1997; WESTPHAL e BLAXTON, 1998) pode-se citar:
1. Predição: consiste em inferir o valor de um dado objeto usando para isso dados históricos ou um modelo criado a partir desses dados históricos. Pode ser dividida em Classificação (caso discreto) e Estimação (caso contínuo).
2. Agrupamento ou Segmentação: consiste em agrupar objetos que compartilham tendências ou características similares. As técnicas de agrupamento recebem as bases de
dados e buscam segmentá-las em grupos, de modo que cada grupo contenha apenas
objetos similares entre si e dissimilares a objetos de outros grupos.
20
3. Descrição: a mineração de dados também pode ser utilizada para fornecer aos analistas uma visão mais descritiva do que está acontecendo com os dados. Técnicas de sumarização e visualização permitem observar algumas inter-relações e características
da base.
De um modo mais formal, pode-se dizer que a mineração de dados se refere a um conjunto
de métodos utilizados em alguns passos do processo de descoberta de conhecimento em bancos de dados (KDD). Este termo, cunhado em 1989, se refere ao processo, interativo e iterativo, de descoberta de conhecimento em conjuntos de dados, incorporando conhecimento de
domínio e interpretação de resultados, com ênfase na aplicação dos métodos de mineração
de dados (FAYYAD, SHAPIRO e SMYTH, 1996b). O processo de descoberta de conhecimento em bases de dados é útil em vários domínios da ciência (e.g., bioinformática), bem
como em várias aplicações de mercado, como marketing e finanças (KLÖSGEN e ZYTKOW,
1996). Nesse contexto, os bancos de dados representam depósitos de conhecimento em potencial, que podem ser explorados para se descobrir relações, padrões e regras adequados.
2.1.1 AGRUPAMENTO DE DADOS
Grande parte da intuição sobre o mundo à nossa volta envolve a ideia básica de agrupamento.
Por exemplo, diferentes ondas acústicas que correspondem a uma mesma sílaba (duas pessoas
diferentes pronunciando a mesma palavra); diversas imagens diferentes que correspondem a
uma mesma classe de objetos (fotos de diferentes tipos de cadeiras); e assim por diante. A
ideia de organizar coisas similares em categorias é bastante antiga e reflete a capacidade de
identificar características similares em alguns objetos, como forma, cor, cheiro, posição, altura, etc. Análise de grupos ou clustering é um termo genérico usado para designar um amplo
espectro de métodos numéricos de análise de dados multivariados com o objetivo de descobrir grupos ou clusters de objetos (EVERITT, LANDAU e LEESE, 2001).
É importante deixar claro que, diferentemente de predição, através da qual a análise dos dados
é feita com base em objetos rotulados, as técnicas de agrupamento analisam os objetos sem
consultar rótulos pré-definidos. Em geral, os rótulos de classes não são apresentados ao algoritmo, simplesmente pelo fato de que eles não são conhecidos à priori. As técnicas de agrupamento podem então ser utilizadas para possibilitar a definição destes rótulos (HAN e
KAMBER, 2000; EVERITT, LANDAU e LEESE, 2001).
21
Os objetos são agrupados com o objetivo de maximizar a distância interclasse e minimizar a
distância intraclasse, ou, dito de outra forma, maximizar a similaridade intraclasse e minimizar a similaridade interclasse. Portanto, um grupo (cluster) é uma coleção de objetos similares
uns aos outros e dissimilares aos objetos de outros grupos (AMIGÓ, GONZALO, et al.,
2009).
A aplicação de uma grande diversidade de técnicas para a realização de mineração, mais especificamente agrupamento, de dados é algo bastante comum, visto que esta é uma área de
pesquisa em expansão (JAIN, et al., 1999; CHEN, et al., 2000; BERKHIN, 2005).
Métodos de agrupamento são utilizados em diversos domínios científicos como um instrumento prático para avaliar a estrutura de dados complexos. O interesse no estudo das técnicas
de agrupamento tem aumentado recentemente devido às novas áreas de aplicação, tais como a
própria mineração de dados, além de áreas como processamento de imagens, processamento
de fala e bioinformática (STILL e BIALEK, 2004).
Bases de dados diferentes possuem características diferentes, podendo as mesmas conter objetos com valores numéricos, binários, simbólicos ou qualquer outro tipo de atributo. Sendo
assim, um fator muito importante a ser observado na escolha de um algoritmo de agrupamento
diz respeito ao tipo de objeto contido na base de dados a ser analisada (GAN, MA e WU,
2007)
Cada cluster formado pode ser visto como uma classe de objetos. Como os rótulos das classes
dos dados de treinamento não são conhecidos, este processo é denominado de treinamento
não-supervisionado (ou aprendizagem não-supervisionada) (MITCHELL, BUCHANAN, et
al., 1990). A análise de grupos normalmente envolve as seguintes etapas:
1.
Pré-processamento dos dados: correspondente à preparação dos dados para agrupamento, podendo envolver limpeza, transformação, seleção de atributos,
etc.;
2.
Definição da medida de proximidade: normalmente avaliada indiretamente por
uma função de distância entre pares de objetos e que tem por objetivo avaliar o
grau de similaridade entre objetos;
3.
Agrupamento: pode ser efetuado por diferentes métodos e os grupos são hard
(cada objeto pertence a um único grupo) ou fuzzy (cada objeto possui um grau de
pertinência ,medido no intervalo [0, 1], à um ou mais grupos);
22
4.
Abstração dos dados: é o processo de extrair uma representação simples e
compacta do conjunto de dados. Por exemplo, uma abstração típica dos dados é
a descrição dos clusters através de protótipos, ou vetores representativos dos
clusters, como seu centroide;
5.
Avaliação da saída: a avaliação da saída de um algoritmo de agrupamento depende do contexto e dos objetivos da análise. Por exemplo, em uma análise exploratória de uma base de dados de imóveis, objetos pertencentes ao mesmo
grupo podem permitir a identificação de perfis de moradores de um determinado
bairro. A saída do algoritmo de agrupamento também pode ser avaliada em relação à validade do agrupamento; o que pode ser feito por meio de uma avaliação
externa, ou seja, os grupos encontrados são comparados com uma estrutura conhecida a priori; uma avaliação interna, ou seja, tenta-se determinar se a estrutura encontrada pelo algoritmo é apropriada aos dados; ou uma avaliação relativa,
que compara duas estruturas avaliando o mérito relativo de cada uma delas.
É importante salientar ainda que nenhuma técnica de agrupamento é universalmente aplicável
e, além disso, diferentes técnicas podem permitir a extração de diferentes informações de uma
mesma base de dados. Isso é consequência do fato de que muitos algoritmos consideram, implicitamente, características específicas para as bases de dados.
A Figura 1 apresenta dois possíveis agrupamentos para uma mesma base de dados fictícia.
Analisando-se os agrupamentos resultantes (a) e (b), pode-se notar que ambos possuem diferenças entre si, porém as duas configurações são aceitáveis e podem ser consideradas corretas.
Basicamente, a diferença está relacionada ao grau de generalização ou granularidade das duas
configurações. Enquanto uma delas possui um nível maior de generalização, criando apenas
dois subgrupos maiores, a outra subdivide os dados em um número maior de subgrupos, cada
um contendo um número menor de objetos.
23
Figura 1: Classificações diferentes para uma mesma base de dados.
2.1.2 AGRUPAMENTO DE DADOS VARIANTES NO TEMPO
O agrupamento de dados é uma operação fundamental utilizada na descoberta automática e
não-supervisionada de informações úteis em bases de dados. Apesar disso, a maioria das técnicas de agrupamento é limitada pelo fato de trabalhar apenas em ambientes estáticos, ou seja,
com dados invariantes no tempo (CUI e POTOK, 2006). Bases de dados dinâmicas consistem
em coleções de objetos que são alteradas ou atualizadas ao longo do tempo. Esta atualização
de dados pode ser imaginada como a modificação sequencial dos valores dos dados (por exemplo, preço de ações no mercado financeiro) em uma determinada janela de tempo (por
exemplo, ao longo de um dia) de um objeto específico (por exemplo, uma empresa qualquer)
(MOERE, 2004).
Nestas circunstâncias, o algoritmo deve ser capaz de perceber as modificações na base de dados e reagir baseado nestas modificações. Ou seja, um objeto pode, em um instante de tempo
t, pertencer a um grupo k1, porém, ao longo do tempo, este mesmo objeto pode sofrer alterações que façam com que ele se torne mais similar aos objetos do grupo k2. Sendo assim, o
algoritmo deve ser capaz de perceber esta atualização e, no decorrer da execução, rotular o
objeto corretamente como pertencente ao grupo k2. A forma mais simples e rápida para se
resolver este problema seria reclassificar a base toda vez que um objeto for atualizado. Esta
solução, porém, faz com que o algoritmo seja executado várias vezes em sua totalidade, o que,
dependendo da quantidade de atualizações, pode exigir um custo computacional tão elevado
que torne toda a técnica ineficiente.
No contexto de agrupamento de dados variantes no tempo, a ser realizado pelo algoritmo de
vida artificial proposto nesta dissertação, são criados grupos de agentes móveis que se posi-
24
cionam e se movimentam no espaço de forma a representar os grupos naturais dos dados existentes na base. Assim, o presente trabalho se concentra em métodos que envolvam a obtenção
de partições de dados em k clusters.
Em relação ao valor de k, nota-se que a maioria dos algoritmos descritos na literatura considera que este é fornecido pelo usuário (KAUFMAN e ROUSSEEUW, 1990; MILIGAN, 1996).
Dessa forma, estes algoritmos se concentram em obter k grupos de objetos semelhantes de
acordo com algum critério pré-estabelecido. Liu (1968) define que o número de possibilidades
de se classificar n objetos em k grupos é dado por:
Ao considerar que o valor de k é desconhecido, o número total de maneiras de se agrupar n
objetos em k grupos é:
Portanto, o problema de se encontrar uma solução ótima para a separação de n objetos em k
grupos é NP-hard (FALKENAUER, 1998) e, devido ao fato de que o número de separações
possíveis desses n objetos em k grupos aumenta aproximadamente na razão kn/k!, a tentativa
de se encontrar uma solução ótima global é usualmente inviável sob o ponto de vista computacional, usando-se métodos exatos de busca (ARABIE, HUBERT e DE SOETE, 1996). Conforme observado por KAUFMAN e ROUSSEEUW (1990), a maioria das abordagens encontradas na literatura, e que busca definir automaticamente o valor de k, adota critérios numéricos que determinam o número de grupos baseando-se em partições obtidas para diversos valores de k.
Exemplos de problemas que possuem bases variantes no tempo incluem mercado financeiro
(WITTMAN, 2002), transações comerciais, recuperação de informação (ZAMIR e ETZIONI,
1999), recuperação de imagens (PARK, BAEK e LEE, 2002), detecção de intrusos em redes
de computadores (OLDMEADOW, RAVINUTALA e LECKIE, 2004), bases de dados de
redes sociais, informações meteorológicas, bioinformática (YIN e CHIANG, 2008) e séries
temporais de maneira geral (ALONSO et al., 2006; CORDUAS e PICCOLO, 2008).
25
A introdução de dinâmica nas bases de dados pode promover diversas alterações nas mesmas,
como:
1.
Alterações nos grupos: o surgimento ou desaparecimento de grupos da base
(VAN
VAERENBERGH,
ESTÉBANEZ
e
SANTAMARÍA,
2007;
VARVELLO, BIERSACK e DIOT, 2007);
2.
Movimentações no espaço: a movimentação de objetos pelo espaço devido à
variação de alguns ou todos os seus atributos simultaneamente (ABRANTES e
MARQUES, 1998). Este problema também é bastante comum em visualização
de dados e volumes dinâmicos (JI e SHEN, 2006; SHEN, 2006; JOSHI e
RHEINGANS, 2008); e
3.
Alteração no número de objetos: A adição ou remoção de objetos da base que
pode, eventualmente, ocasionar o surgimento ou desaparecimento de grupos
(ZAMIR e ETZIONI, 1999; ELMORE, REED e POTOK, 2005).
2.1.3 AVALIAÇÃO DE AGRUPAMENTOS
No processo de agrupamento de dados, informações pré-definidas sobre as classes não estão
disponíveis e tampouco são fornecidos exemplos que mostram o tipo de relação que se deseja
encontrar com a exploração dos dados disponíveis. Por estas razões, este é um processo nãosupervisionado. A validação de agrupamentos, por si só, já constitui um problema complexo,
pois um processo de agrupamento pode resultar em diferentes particionamentos para uma
mesma base de dados, dependendo dos critérios específicos utilizados. Esta ausência de um
consenso pode ser ocasionada por vários fatores. Algoritmos diferentes podem resultar em
agrupamentos distintos, mas, além disso, existem técnicas não determinísticas de agrupamento, ou seja, ao aplicar o mesmo algoritmo mais de uma vez para uma mesma base de dados, é
possível obter resultados distintos em cada uma das execuções. Outro fator que também pode
influenciar são os parâmetros configuráveis dos algoritmos, que têm forte influência no funcionamento das técnicas e, portanto, uma simples alteração dos parâmetros do algoritmo pode
produzir agrupamentos resultantes distintos em cada uma das execuções.
Diferentes agrupamentos podem, inclusive, gerar resultados contraditórios, pois em duas saídas diferentes um mesmo objeto pode ser alocado a clusters distintos. Isso dificulta a avaliação dos resultados, já que, teoricamente, as classes corretas não são conhecidas previamente.
Ao observar a Figura 1, vemos que, apesar de não serem iguais, as duas classificações diferem
26
apenas em relação ao grau de generalização das soluções. Porém, ao analisarmos um caso
como o apresentado na Figura 2, vemos que se trata de um exemplo de resultado contraditório. Ou seja, se a única informação disponível para avaliação dos resultados for a própria saída
do algoritmo, sem informações sobre as classes corretas, como podemos dizer qual dos agrupamentos é o mais indicado?
Figura 2: Exemplo de agrupamentos contraditórios.
Para responder esta pergunta, são utilizados os índices de validação (ARABIE, HUBERT e
DE SOETE, 1996). Estes índices estão inseridos na categoria de medidas internas, ou seja,
medidas que avaliam a qualidade de um agrupamento utilizando apenas o resultado fornecido
pelo algoritmo, sem utilizar informações externas sobre o agrupamento. Uma vez que as medidas externas já conhecem os agrupamentos ótimos ideais, elas são utilizadas com mais frequência em testes de validação de algoritmos. Na seção de resultados desta dissertação, são
apresentadas medidas internas e externas para avaliar o algoritmo a ser proposto. As medidas
externas foram utilizadas para validar o resultado dos agrupamentos propostos pelo dcBoids,
uma vez que são conhecidos agrupamentos ótimos para todas as bases testadas.
Entretanto, em aplicações do mundo real, normalmente os agrupamentos ótimos não são conhecidos. Nestes casos, apenas as medidas internas são aplicadas e, portanto, precisam ser
utilizadas com certa cautela, devendo ser consideradas apenas como uma ferramenta à disposição de especialistas que sejam capazes de realmente avaliar os resultados obtidos com as
técnicas de agrupamento. Em muitos casos, os especialistas na área em que a aplicação é utilizada precisam integrar os resultados dos algoritmos de agrupamento com outras evidências
experimentais, a fim de chegar a conclusões relevantes.
27
Como o objetivo do agrupamento é fazer com que objetos de um mesmo cluster sejam parecidos entre si e diferentes de objetos de outros clusters, as medidas de validação internas são
normalmente baseadas nos seguintes critérios:
1. Compactação: mede o quão perto objetos de um mesmo cluster estão entre si. Existem várias formas de calcular esta medida, como distância média entre os pontos, ou a
distância média ao centro do grupo.
2. Separação: mede o quão separado um grupo está do(s) outro(s) grupo(s). Por exemplo, a distância média entre os objetos de cada grupo, a distância entre os centros dos
grupos, ou, ainda, a menor distância entre dois objetos de grupos distintos.
Para avaliação dos resultados do dcBoids foram utilizadas as seguintes medidas de avaliação:
1. Internas: Índice de Dunn.
2. Externas: Índice de Jaccard, Acurácia, Pureza e Entropia.
Todas estas medidas serão descritas em detalhes no Capítulo 4, que descreve a metodologia
experimental utilizada.
2.2 COMPUTAÇÃO NATURAL
A computação natural é um campo novo e amplo de investigação, que não apenas une estas
duas palavras, mas também dois tópicos que, por muito tempo, foram considerados como
sendo mutuamente exclusivos: natureza e computação. Alguns problemas das ciências exatas
desafiam os pesquisadores devido à dificuldade em se obter soluções (factíveis) com um custo
computacional razoável. Estes problemas muitas vezes não podem ser resolvidos utilizando
técnicas convencionais de computação e resolução de problemas. Eles estimulam o pensamento e a busca por soluções alternativas. A computação natural é caracterizada, dentre outras, por metáforas e inspirações. A natureza pode servir como inspiração para a computação,
a computação pode ser utilizada para entender melhor a natureza e a própria natureza pode ser
usada para computar. A computação natural permite a criação de universos completos, com
reino animal, vegetal e mineral, tudo dentro do ambiente digital. Vai muito além, permitindo a
solução de problemas complexos do cotidiano das pessoas, das empresas e das indústrias (DE
CASTRO, 2010). Um aspecto importante de novas disciplinas ou campos de investigação é
que eles devem ser capazes de fornecer soluções e modelos de sucesso para problemas antigos, ainda não resolvidos, mas também para problemas novos. Esse é um dos benefícios da
28
computação natural. Ela também fornece uma nova forma de entender e interagir com a natureza; novos métodos de síntese e até mesmo de percepção para os fenômenos naturais (DE
CASTRO, 2006).
Se reconhecermos o fato de que a computação pode precisar de uma mudança de paradigma
em breve, quando a tecnologia atual de computação atingir o seu limite de poder de processamento e armazenamento de informação, então a computação natural fechou seu ciclo e
completou todos os seus três ramos principais (DE CASTRO, 2006):
1.
Computação inspirada na natureza: a utilização da natureza para inspirar o desenvolvimento de novas ferramentas computacionais (algoritmos) para resolução
de problemas.
2.
Síntese computacional de fenômenos naturais: o uso de computadores para recriar fenômenos e organismos naturais.
3.
Computação com novas matérias primas da natureza: a utilização de materiais
naturais (por exemplo, biomoléculas) para computar.
O foco deste trabalho é intermediário entre a primeira e a segunda grande área da computação
natural. Da primeira grande área, esse trabalho se apoia no uso de um algoritmo inspirado na
natureza para a solução de um problema complexo de engenharia. Por outro lado, o algoritmo
a ser investigado e adaptado aqui para o contexto de agrupamento de dados variantes no tempo foi originalmente proposto como uma abordagem computacional para a síntese de comportamentos coletivos de animais em movimento, originalmente estudado em Vida Artificial
(REYNOLDS, 1987).
2.2.1 VIDA ARTIFICIAL
As palavras “Vida” e “Artificial” são, por si só, difíceis de serem formalmente definidas. Sendo assim, definir “Vida Artificial” também não é uma tarefa trivial.
O que faz viver os seres vivos? Esta é uma questão que vem sendo discutida desde que contemplamos o mundo a nossa volta e, apesar dos avanços expressivos nas áreas da física, química e biologia nas últimas décadas, esta ainda é uma questão que não possui uma resposta
definitiva. A vida é algo tão diversificado e complexo que parece impossível extrair princípios
genéricos que possam governar todo e qualquer sistema vivo (ADAMI, 1998).
29
Por sua vez, artificial pode ser definido por aquilo que é produzido não pela natureza, mas sim
por uma técnica, ou ainda, aquilo que é produzido por arte ou pela indústria.
Com base nestes dois conceitos, várias definições sobre vida artificial estão presentes na literatura, vejamos algumas das principais:
“A Vida Artificial é o estudo de sistemas feitos pelo homem, os quais exibem comportamentos característicos dos sistemas vivos naturais. Ela complementa as ciências
biológicas tradicionais, preocupadas com a análise de organismos vivos por meio da
tentativa de sintetizar comportamentos referentes à vida, dentro de computadores e
outros meios artificiais. Ao estender o alicerce empírico em que a biologia é baseada
além da vida em cadeias de carbono que evoluíram na Terra, a Vida Artificial pode
contribuir com a biologia teórica localizando a vida-como-nós-a-conhecemos dentro
de um contexto maior da vida-como-ela-poderia-ser.” (LANGTON, 1988).
“Vida Artificial é o empreendimento da compreensão da biologia por meio da construção de fenômenos biológicos a partir de componentes artificiais. É a abordagem
sintética ao invés da abordagem reducionista.” (RAY, 1994).
“Vida Artificial é um esforço construtivo: alguns pesquisadores buscam evoluir padrões em um computador; alguns procuram obter comportamentos sociais em robôs
do mundo real. Outros desejam estudar fenômenos relacionados com a vida em um
ambiente mais controlável; enquanto outros ainda estão interessados na síntese de
novos sistemas que se comportam como sistemas vivos nas áreas da química, eletrônica, mecânica e outras mídias artificiais. Vida Artificial é uma disciplina experimental, fundamentalmente consistindo em observações de comportamentos em tempo
de execução, aquelas interações complexas geradas quando populações de criaturas
artificiais, feitas pelo homem, são imersas em ambientes reais ou simulados”
(RONALD, SIPPER e CAPCARRÈRE, 1999).
As principais ideias que fundamentam a vida artificial são (DE CASTRO, 2007):
30
1.
A Vida é vista como um processo dinâmico com algumas características universais que independem da matéria. Assim, a Vida é uma propriedade emergente da
organização da matéria e não uma propriedade da matéria propriamente dita;
2.
A Vida Artificial (ALife) emprega uma abordagem sintética para o estudo e criação da vida;
3.
A vida artificial envolve o estudo de fenômenos sintetizados por humanos e não
pela natureza, independentemente do meio usado para esta síntese.
Em resumo, a vida artificial será entendida aqui como a abordagem sintética ou virtual para
o estudo de padrões, formas, comportamentos, sistemas e organismos que se assemelhem à
vida como nós a conhecemos ou à vida como poderia ser (DE CASTRO, 2006).
Não existe uma estrutura fechada de projeto para a vida artificial. Se o objetivo é reproduzir
algum fenômeno natural conhecido, o primeiro passo é identificar os elementos, mecanismos,
processos, propriedades e princípios que fundamentam o sistema natural em estudo. O segundo passo envolve a incorporação de tudo isso em um sistema computacional, no qual apenas
instruções de baixo nível (regras locais) são explicitadas, de forma que novos padrões e comportamentos sejam propriedades emergentes. É preciso ser cuidadoso para não incorporar no
projeto aspectos comportamentais intrínsecos ao fenômeno; apenas leis físicas gerais, regras
locais, princípios de seleção natural, interações de elementos, etc., devem ser considerados.
Algumas características essenciais de simulações de vida artificial (DE CASTRO, 2006) são:
1.
Baseada em população: algoritmos de vida artificial operam com agregados ou
conjuntos de programas, agentes, ou especificações;
2.
Distributividade: não há um único agente ou programa que direciona os outros
agentes;
3.
Reatividade local: cada agente reage localmente e individualmente;
4.
Descentralização: não há regras globais;
5.
Emergência: qualquer fenômeno em um nível superior ao individual deve ser
emergente.
Especificamente, esta pesquisa propõe o estudo e adaptação de um algoritmo de vida artificial, conhecido como Boids, que tem como objetivo modelar a movimentação coordenada de
bandos de animais, como pássaros e peixes, de forma bastante realista (REYNOLDS, 1987).
31
2.2.2 O MODELO DE BOIDS
A observação de pássaros é um passatempo praticado por milhares de pessoas ao redor do
mundo. As revoadas de pássaros consistem em um belo fenômeno natural, que normalmente
agrada aos olhos de quem vê. Ao observar o comportamento destes animais, intuitivamente,
pode-se pensar que sempre existe um líder, responsável por guiar os demais indivíduos e, assim, promover a formação do bando. Na verdade, isto não é exatamente o que ocorre, pois,
aparentemente, o comportamento coordenado e sincronizado de uma revoada é uma propriedade emergente de um conjunto de pássaros seguindo algumas poucas regras básicas de comportamento (DE CASTRO, 2010).
Gerar computacionalmente uma animação gráfica que simule uma revoada de pássaros, um
cardume de peixes ou uma manada de animais terrestres não é uma tarefa fácil, principalmente se a solução encontrada para este problema for obtida a partir de um script individual, que
representa um caminho pré-determinado que cada indivíduo do grupo deve percorrer. Esta
abordagem soluciona o problema de movimentação dos pássaros, porém gera novos problemas, talvez mais desafiadores do que o original. Primeiramente, o custo computacional desta
solução pode crescer demasiadamente ao se aumentar o número de pássaros no ambiente.
Além disso, a criação de caminhos específicos através dos scripts para cada um dos agentes é
uma tarefa braçal e repetitiva, que demanda um tempo considerável e, além disso, requer uma
reestruturação caso seja necessário modificar o trajeto percorrido pelos agentes. E, por fim, ao
se especificar manualmente o caminho para cada indivíduo, perde-se a naturalidade e suavidade observadas nos movimentos do fenômeno natural.
Buscando uma solução geral para este problema, Reynolds (1987) estudou este fenômeno e
demonstrou que o comportamento centralizado e aparentemente intencional de alguns grupos
de animais pode ser descrito por uma pequena quantidade de regras que governam apenas o
comportamento individual dos agentes, atuando somente baseado em informações e percepções locais.Na abordagem proposta por Reynolds, o comportamento coletivo do bando é o
resultado das interações dos comportamentos de pássaros individuais. Para um pássaro participar em um bando, ele deve ter comportamentos que o permitam coordenar seus movimentos
com os de seus companheiros de bando. Estes comportamentos não são particularmente exclusivos; todos os pássaros o possuem em algum grau. Bandos naturais parecem consistir de
dois comportamentos opostos balanceados: o desejo de permanecer perto do bando e o desejo
de evitar colisões com outros membros do bando. Reynolds também percebeu que bandos de
32
pássaros possuem comportamentos sincronizados de grupo, similares aos cardumes de peixes
e manadas de animais terrestres e, assim, chamou os agentes virtuais genéricos de Boids. Esta
é uma terminologia largamente utilizada em Vida Artificial para designar agentes simulando o
comportamento coletivo de pássaros, animais terrestres e peixes(DE CASTRO, 2006).
Para criar um comportamento de bando, um Boid deve estar consciente de si mesmo e de seus
vizinhos mais próximos, sugerindo que este pode se reunir com qualquer número de companheiros de bando. O modelo básico consiste em três comportamentos simples de direcionamento (REYNOLDS, 1987)que podem ser chamados de regras comportamentais, que descrevem como um Boid individual manobra com base nas posições e velocidades dos seus vizinhos mais próximos. As três regras comportamentais dos Boids (Figura 3) resumem-se a:
1. Separação: esta regra tem o objetivo de evitar colisão entre os Boids, fazendo com
que o Boid analisado se mantenha a uma distância adequada de seus vizinhos, como
ilustrado na Figura 3(a).
2. Alinhamento: esta regra tem o objetivo de aproximar a velocidade do Boid analisado
com a de seus vizinhos, além de alinhar o Boid na direção média para a qual os seus
vizinhos apontam, como ilustrado na Figura 3(b).
3. Coesão: o objetivo desta regra é fazer com que o Boid analisado se mantenha próximo
ao ponto médio de seus vizinhos, mantendo o bando coeso, como ilustrado na Figura
3(c).
(a)
(b)
(c)
Figura 3: Regras comportamentais dos Boids. (a) Separação. (b) Alinhamento. (c) Coesão.
33
A utilização destas regras de comportamento não permite dizer a priori qual será o trajeto exato percorrido por cada Boid. Porém, o comportamento emergente individual e do bando pode
ser observado conforme o algoritmo é executado. Desta forma, mesmo com regras simples,
capazes apenas de analisar condições locais, o algoritmo consegue, após diversas iterações,
promover a realização de tarefas complexas no cenário global. Boids solitários e grupos menores de Boids tendem a se agrupar formando grupos maiores e, na presença de obstáculos,
grupos maiores podem temporariamente se dividir em grupos menores(DE CASTRO, 2006;
MUNOZ e DE CASTRO, 2009).
Sendo assim, para simular uma revoada, basta criar alguns Boids no ambiente que, através das
regras de movimentação devidamente calibradas, os indivíduos apresentarão um comportamento emergente coordenado, evitando colisão e promovendo a formação de bandos. Em seu
artigo original, Reynolds (1987) não descreve um algoritmo exato, com pseudocódigos ou
instruções específicas de programação para o modelo dos Boids. Porém, a descrição do funcionamento das três regras básicas fornece um nível de abstração suficiente para que todas
sejam codificadas de acordo com a proposta conceitual definida no artigo. Deste modo, cada
autor utiliza sua própria interpretação e adapta o algoritmo de forma a atender suas necessidades específicas.
As regras de movimentação dos Boids podem ser utilizadas tanto em ambientes 2D, como em
ambientes 3D. O algoritmo dcBoids (dynamic clustering Boids), a ser proposto nesta dissertação, funciona em um ambiente toroidal 2D e cada Boid k é modelado de acordo com a seguinte estrutura de dados:
1. bk: vetor de coordenadas do Boid k;
2. vk: vetor velocidade do Boid k.
O algoritmo é implementado de modo a exibir um funcionamento no qual o processamento
computacional de todos os Boids seja executado paralelamente. A cada iteração do algoritmo,
cada um dos Boid analisa o ambiente à sua volta e decide qual posição assumirá na iteração
seguinte. Deste modo, a cada iteração do algoritmo, todos os Boids analisam o ambiente ao
seu redor, utilizando as regras detalhadas a seguir e, somente após esta análise ser completada
por todos, é que os valores de suas variáveis são atualizados. As regras gerais de atualização
dos Boids são dadas por:
bk(t + 1) = bk(t) + bk(t);
(3)
34
(4)
vk(t + 1) = vk(t) + vk(t);
onde bk(t + 1) é a posição do Boid k na iteração t + 1, bk(t) é o ajuste a ser imposto ao vetor
bk na iteração t, vk(t + 1) é a velocidade do Boid k na iteração t + 1 e vk(t) é o ajuste a ser
imposto ao vetor vk na iteração t.
O valor dos ajustes a serem incorporados nas Equações (3) e (4) será calculado usando uma
variável aleatória sorteada entre 0 e um limitante superior,
ou
, a ser definido de
acordo com a regra (separação, alinhamento ou coesão) e o algoritmo (Boids ou dcBoids):
bk(t) = rand(0,
);
(5)
vk(t) = rand(0,
).
(6)
A Figura 4 apresenta uma visão dos principais elementos utilizados pelo algoritmo de Boids.
Cada Boid possui uma área de percepção e todos os Boids dentro desta área são considerados
seus vizinhos. Sempre que um ou mais Boids estiverem dentro da área de percepção de outro,
as regras de movimentação serão aplicadas.
Boid analisado
Boids fora da
área de percepção
Área de percepção
Vizinhos do Boid
analisado
Figura 4: Um Boid e sua vizinhança.
A Figura 5(a) representa uma possível configuração inicial para um conjunto de Boids. O objetivo do algoritmo é que, a partir de um dado número de iterações, a configuração assumida
pelos Boids se assemelhe, por exemplo, àquela apresentada na Figura 5(b), na qual todos os
indivíduos voam, aproximadamente, para uma mesma direção, com alinhamento e velocidades parecidas.
35
(a)
(b)
Figura 5: Tendência de alinhamento dos Boids ao longo do tempo. (a) Início da simulação. (b) Após algumas
iterações.
2.2.2.1 Regra de Separação
Toda vez que um ou mais Boids estiverem dentro da área de percepção do Boid analisado, a
regra de separação é ativada. Esta regra faz com que Boids voando muito próximos se afastem, evitando assim uma possível colisão. Para aplicar esta regra são utilizados os valores das
posições bi, i = 1, ..., n, i k, de todos os n vizinhos do Boid k:
.
(7)
A nova posição do Boid é dada pela regra de atualização da Equação (3). Ao calcular esta
nova posição para o Boid k é possível reduzir a chance de uma colisão. A Figura 6 representa
uma situação na qual a regra de separação é ativada. Esta regra faz com que os Boids que estão muito próximos voltem a se separar, assumindo uma posição de maior distância entre si.
Figura 6: Exemplo de aplicação da regra de separação.
36
2.2.2.2 Regra de Alinhamento
Quando um Boid percebe outros em sua área de percepção, este tenta voar com uma velocidade e alinhamento semelhantes aos destes vizinhos. Para aplicar esta regra são utilizados os
valores das velocidades vi, i = 1,..., n, i k, de todos os n vizinhos do Boid k:
.
(8)
A nova posição do Boid é dada pela regra de atualização da Equação (4). Ao calcular esta
nova posição para o Boid k é possível fazer com que ele voe para uma mesma direção e sentido de seus vizinhos. A Figura 7 representa uma possível situação na qual um Boid deve se
alinhar com seus vizinhos a fim de evitar uma colisão.
Figura 7: Exemplo de regra de alinhamento.
2.2.2.3 Regra de Coesão
A regra de coesão busca aproximar o Boid k de um grupo. Portanto, para manter o bando coeso, o Boid k precisa alterar sua posição, dirigindo-se em direção à posição média de seus vizinhos. Para aplicar esta regra são utilizados os valores das posições bi, i = 1,..., n, i k, de todos
os n vizinhos do Boid k:
.
(9)
A nova posição do Boid é dada pela regra de atualização da Equação (3). Ao calcular esta
nova posição para o Boid k é possível fazer com que o mesmo voe de maneira coesa com seu
grupo.
A Figura 8 representa uma possível situação na qual o Boid k deve se aproximar de seus vizinhos a fim de manter o bando coeso.
37
Figura8: Exemplo da regra de coesão.
A Figura 9 apresenta a visão geral do algoritmo de Boids em formato de pseudocódigo.
Para cada Boid k faça:
//Regra de separação
Calcule o ajuste de separação. [Eq. (7)]
Atualize a posição:
bk = bk
//Regra de alinhamento
Calcule o ajuste de velocidade. [Eq. (8)]
Atualize a velocidade:
vk = vk+
//Regra de coesão
Calcule o ajuste de coesão.
Atualize a posição:
k
[Eq. (9)]
k
b = b
Fim para
Figura 9: Pseudocódigo do algoritmo original dos Boids.
2.3 TRABALHOS RELACIONADOS
Partindo-se das regras básicas de formação de bandos, é possível modificar o algoritmo de
Boids a fim de torná-lo capaz tanto de promover a formação de bandos, como também de realizar agrupamento de dados (CUI e SHI, 2000; YOUSSEF, et al., 2007; FOLINO e SPEZZANO, 2002; VEENHUIS & KÖPPEN, 2006). Estas bases de dados podem ser exclusivamente numéricas, mas também baseadas em documentos textuais (CHARLES, et al., 2008;
ZHAO e KARYPIS, 2002; ZHAO e KARYPIS, 2004). Algumas técnicas estão interessadas
não apenas no agrupamento de dados em si, mas também em melhorar a interpretação das
informações obtidas pelos algoritmos de agrupamento, utilizando-se de técnicas de visualização de dados (MOERE e LAU, 2007). Além de aplicar a modificação das regras no algoritmo
clássico de Boids, é possível também mesclá-lo com outras técnicas, como algoritmos genéti-
38
cos (CONLEY, 2005; CHEN, et al., 2006) ou lógica fuzzy (BAJEC, et al., 2003), com o objetivo de aperfeiçoar ainda mais a qualidade do agrupamento dos dados.
A maior parte das técnicas de agrupamento é limitada a coleções estáticas de dados. Entretanto, muitas bases de dados de problemas do mundo real se mantêm em constante atualização, e
ainda existe grande carência por ferramentas efetivas que funcionem de forma satisfatória
com esse tipo de dado. Exemplos de técnicas utilizadas incluem métodos baseados em centroides (ABRANTES e MARQUES, 1998), subgrafos (ASLAM, PELEKHOV e RUS, 1999),
enxames de partículas (LI e YANG, 2009), sistemas imunológicos artificiais (NEAL, 2002) e
abordagens visuais (CHITTARO, COMBI e TRAPASSO, 2003).
O trabalho desenvolvido por David (2009) pode ser considerado como um antecessor para
esta dissertação. O autor inicia as investigações a respeito da utilização de uma versão modificada do algoritmo de Boids para realizar a tarefa de agrupamento de dados. Este trabalho apresenta resultados iniciais motivadores, os quais sugerem que a continuação da pesquisa e
maior exploração da técnica podem melhorar os resultados já obtidos. Neste trabalho, foram
apresentados alguns resultados preliminares com três bases de dados de benchmark consolidadas na literatura. Porém, este trabalho apresentou resultados ainda bastante iniciais em relação aos dados variantes no tempo, os quais devem ser melhor explorados a fim de fornecerem
uma discussão mais conclusiva.
As principais diferenças entre essa dissertação e o trabalho de David (2009) estão relacionadas à adaptação das regras do modelo Boids para a realização do agrupamento. No trabalho de
David (2009), são criados centroides que passam a voar no ambiente e se juntam ou se separam fazendo com que dois Boids se tornem apenas um na junção, ou um Boid volte a ser dois
na separação. Estas regras são probabilísticas e, ao se aproximarem em seu voo, dois Boids
possuem chances de se juntar ou se separar com base no valor da afinidade entre eles. No dcBoids, entretanto, as regras foram ajustadas para funcionarem de maneira mais suavizada,
quando um Boid voa próximo de outro, ao invés de ambos passarem a seguir exatamente o
mesmo trajeto, a afinidade entre eles irá influenciar suas movimentações, criando uma ideia
de campo de força que interfere no trajeto percorrido. Por exemplo, quando um Boid se aproxima de um grupo e o valor entre suas afinidades é alto, o Boid isolado será atraído para o
grupo, simulando uma força de atração. De forma análoga, se a afinidade entre os Boids tiver
um valor baixo, o efeito será de repulsão, fazendo com que cada Boid ou conjunto de Boids
voe em trajetos distintos. Desta forma, ao contrário do cBoids, no dcBoids é realmente possí-
39
vel observar a formação dos “bandos”, uma vez que, no cBoids, sempre que ocorre a junção
entre dois Boids, apenas um deles continua voando no ambiente. No cBoids, o objetivo final é
fazer com que apenas um objeto por grupo (o centroide) voe no ambiente. Dessa forma, se em
uma base qualquer com 100 objetos existirem 5 grupos distintos, o cBoids iniciará sua execução com 100 Boids voando no ambiente e tenderá a reduzir este número para o valor 5, que é
a quantidade ideal de grupos a serem encontrados. Já no dcBoids, os 100 objetos estarão presentes no ambiente durante toda a sua execução, favorecendo assim a visualização do funcionamento do algoritmo. No Capítulo 3 dessa dissertação, o funcionamento do dcBoids será
apresentado em detalhes.
O Agrupamento de Múltiplas Espécies (Multiple Species Flocking – MSF) (CUI e POTOK,
2006b) propõe um modelo de Boids com o objetivo de realizar agrupamento de dados. O MSF
utiliza as três regras originais do modelo Boids e propõe ainda uma quarta regra (regra de similaridade de características) com o objetivo de influenciar o movimento dos Boids. Esta regra faz com que Boids similares tendam a voar próximos uns dos outros, enquanto Boids dissimilares tendam a se afastar. Aqueles Boids que voam próximos uns dos outros são considerados de mesma espécie. Após diversas iterações, Boids de uma mesma espécie tendem a voar
em uma mesma região, mantendo-se afastados de bandos (espécies) diferentes. A força de
atração entre os Boids é inversamente proporcional à distância entre eles e ao nível de similaridade entre seus dados. Após diversas iterações, as três regras originais do modelo Boids,
associadas à quarta regra proposta, fazem com que os Boids formem grupos contendo indivíduos similares. As características deste modelo permitem utilizá-lo em ambientes dinâmicos.
Uma vez que um objeto é alterado, este pode se afastar de um grupo e passar a fazer parte de
outro, modificando a configuração dos grupos. O algoritmo MSF utiliza as três regras originais do modelo proposto por Reynolds e cria uma nova regra comportamental, baseada em
afinidades, que tem o objetivo de promover a formação de bandos. A informação de quantos
grupos foram formados é exclusivamente visual, ou seja, para se definir o número de grupos
identificados é necessário definir um critério que identifique quando um grupo está isolado de
outro, como, por exemplo, uma distância mínima entre esses dois grupos.
O SPARROW (FOLINO e SPEZZANO, 2002) é um algoritmo de agrupamento de dados no qual
objetos similares são agrupados de acordo com a distância, conectividade, ou densidade relativa
no espaço. Os autores apresentam o algoritmo SPARROW (SPAtial ClusteRing AlgoRithm thrOugh SWarm Intelligence), o qual é baseado no algoritmo clássico de formação de bandos de
40
Reynolds. O SPARROW é um algoritmo multiagentes no qual cada um destes agentes utiliza
regras modificadas do algoritmo original de Reynolds, fazendo com que os agentes se transformem em “caçadores de bandos”. Ou seja, pássaros voando isoladamente aumentam suas velocidades e varrem o ambiente em busca de grupos já formados, com os quais eles podem se unir e
passar a fazer parte dos mesmos. Além disso, os agentes possuem características específicas como
cor e velocidade, que indicam para os agentes vizinhos onde existem áreas de interesse. Por exemplo, a cor vermelha indica uma região de alta densidade e que, provavelmente, possui padrões
de interesse. Portanto, os pássaros desta cor reduzem sua velocidade de modo que o bando tenha
chances menores de ser desfeito. Experimentos realizados pelos autores em duas bases de dados
sintéticas mostraram que o algoritmo conseguiu obter um nível satisfatório de acurácia.
No trabalho de YOUSSEF, RIZK e EL-SHERIF (2007), é proposto um novo algoritmo chamado de PSBC (Particle Swarm-Based Clustering). Cada indivíduo representa um objeto da
base de dados. Inicialmente o algoritmo gera uma população aleatória de indivíduos. Em seguida, encontra quais são seus vizinhos, aplica regras de decisão e, assim, calcula qual será a
nova posição de cada agente. A população decide parar sua movimentação no espaço de solução quando a variação máxima da sua posição é inferior a um limiar pré-definido. Ou seja,
quando os agentes estiverem estabilizados e com pouca movimentação. A cada iteração, o
valor de fitness é medido, a fim de decidir se a população gerou uma solução aceitável ou se
uma nova população deve ser criada para obter melhores resultados.
41
3 dcBoids: BOIDS PARA AGRUPAMENTO DE DADOS
VARIANTES NO TEMPO
Neste capítulo, são apresentadas as propostas de modificações das regras básicas do modelo
de Boids, transformando-o no algoritmo dcBoids (Dynamic Clustering Boids, ou Boids Para
Agrupamento Dinâmico), a fim de permitir sua aplicação na tarefa de agrupamento de dados
variantes no tempo. No dcBoids, cada Boid corresponde a um objeto da base de dados. Esses
Boids são dispostos em um ambiente bidimensional, no qual se movimentam, de modo similar
a uma formação de bando de aves, com o objetivo de realizar o agrupamento dos objetos que
representam. Ao longo do tempo, os Boids irão interagir seguindo um conjunto de regras locais de movimentação pré-definidas. Para que o algoritmo dcBoids possa ser aplicado ao agrupamento de dados variantes no tempo, será necessária a modificação das regras básicas do
modelo Boids para que estas se tornem capazes de modelar e solucionar o problema de agrupamento de dados. Estas novas regras são baseadas na medida de afinidade entre os Boids,
tornando o algoritmo capaz de identificar padrões nas bases de dados e permitindo que grupos
com Boids similares sejam formados.
3.1 OS BOIDS E O AMBIENTE
No algoritmo dcBoids, os Boids são dispostos em um ambiente 2D toroidal de tamanho limitado. Cada Boid presente no ambiente representa um registro ou objeto da base de dados.
Sendo assim, para uma base de dados com n objetos, serão criados inicialmente n Boids voando pelo ambiente. Durante a execução do algoritmo, estes Boids se movimentarão pelo ambiente e a formação de bandos poderá ser observada. Cada Boid funciona como um ponteiro
para o objeto que ele representa, pois, embora o Boid esteja em um ambiente 2D, os objetos
podem estar contidos em um espaço vetorial de qualquer dimensão e, além disso, os valores
dos dados deste objeto não influenciam diretamente na posição do Boid, mas sim em sua posição relativa aos demais Boids.
3.2 CÁLCULO DE AFINIDADE
O cálculo da medida de afinidade entre dois Boids é uma das etapas mais importantes na execução do algoritmo, pois ela indicará quantitativamente a similaridade (afinidade) entre os
objetos representados pelos Boids. É importante salientar que a afinidade medida entre os
42
Boids considera os objetos representados em seu espaço original e não a sua projeção no espaço bidimensional no qual os Boids se movimentam. Nesse trabalho, a distância euclidiana é
utilizada como medida de afinidade entre os objetos. A principal razão pela escolha da distância euclidiana é sua ampla aplicabilidade em problemas de agrupamento de dados numéricos
(EVERIT et al., 2001). Embora outras medidas sejam conhecidas, o foco deste trabalho não é
o estudo da influência da medida de afinidade no processo de agrupamento, mas sim a investigação da influência da variação dos dados no tempo no processo de agrupamento do algoritmo dcBoids.
3.3 NOVAS REGRAS DE MOVIMENTAÇÃO
No algoritmo dcBoids,a movimentação dos agentes é probabilística e baseada nas três regras
básicas do modelo original de Boids, com suas devidas modificações para o problema de agrupamento. As regras gerais de atualização do dcBoids seguem o mesmo padrão das regras
dos Boids, conforme Equações (3) e (4), com a diferença de que os ajustes a serem impostos
consideram a afinidade entre os Boids.
3.3.1 NOVA REGRA DE SEPARAÇÃO
No algoritmo dcBoids a intensidade da força de separação dos Boids é inversamente proporcional à afinidade entre eles, ou seja, quanto mais diferentes dois Boids forem entre si, mais
longe um voará do outro.
Na aplicação da regra de separação, quanto menor a afinidade entre o Boid k e seus vizinhos,
maior será a distância do passo de separação dado pelo Boid k. Esta regra faz com que Boids
voando muito próximos se afastem, levando em consideração a afinidade que possuem entre
si. Para aplicar esta regra são utilizados os valores das posições bi, i = 1, ..., n, i k, de todos os
n vizinhos do Boid k, bem como a afinidade entre os Boids i e k, i = 1, ..., n:
,
onde
(10)
é a posição do objeto k, correspondente ao Boid k, no espaço original dos dados,
= 1, ..., n, é a posição de todos os outros objetos na vizinhança de k, e
,i
é a afinidade
entre os Boids, calculada pelo inverso da distância euclidiana normalizada entre eles.
43
A nova posição do Boid é dada pela regra de atualização da Equação (3). Ao calcular esta
nova posição para o Boid k é possível afastá-lo de um grupo com o qual tenha uma baixa afinidade.
3.3.2 NOVA REGRA DE ALINHAMENTO
O alinhamento entre diferentes Boids será definido com base na afinidade com seus vizinhos:
quanto maior a afinidade com um grupo, maior o alinhamento com ele. Para um Boid se alinhar com outro, o vetor que representa a nova posição é construído com base nas velocidades
dos Boids vizinhos, ponderado pelos valores de afinidade. Para aplicar esta regra são utilizados os valores das velocidades vi, i = 1,..., n, i k, de todos os n vizinhos do Boid k, bem como
a afinidade entre os Boids i e k, i = 1, ..., n:
.
onde
(11)
é a posição do objeto k, correspondente ao Boid k, no espaço original dos dados,
= 1, ..., n, é a posição de todos os outros objetos na vizinhança de k, e
,i
é a afinidade
entre os Boids, calculada pelo inverso da distância euclidiana normalizada entre eles.
A nova velocidade do Boid é dada pela regra de atualização da Equação (4). Ao calcular esta
nova velocidade para o Boid k é possível fazer com que ele voe para uma mesma direção e
sentido de seus vizinhos de maior afinidade.
3.3.3 NOVA REGRA DE COESÃO
Assim como as duas regras anteriores, a regra de coesão também considera o valor de afinidade entre os Boids para ser aplicada. A nova regra proposta é similar à descrita na Seção
2.2.2, porém a intensidade da coesão aplicada depende do valor da afinidade entre o Boid analisado e os Boids de um dado grupo: quanto maior a afinidade, mais o Boid analisado se aproximará da posição média de seus vizinhos. Para aplicar esta regra são utilizados os valores das
posições bi, i = 1, ..., n, i k, de todos os n vizinhos do Boid k, bem como a afinidade entre os
Boids i e k, i = 1, ..., n:
.
(12)
44
onde
é a posição do objeto k, correspondente ao Boid k, no espaço original dos dados,
= 1, ..., n, é a posição de todos os outros objetos na vizinhança de k, e
,i
é a afinidade
entre os Boids, calculada pelo inverso da distância euclidiana normalizada entre eles.
A nova posição do Boid é dada pela regra de atualização da Equação (3). Ao calcular esta
nova posição para o Boid k é possível fazer com que o mesmo voe de maneira coesa com o
grupo que possuir maior afinidade.
3.4 INCLUSÃO DE UM COMPORTAMENTO ALEATÓRIO
Para não deixar o comportamento dos Boids ligado exclusivamente às regras de movimentação e visando incluir um comportamento mais variável, foi adicionada uma aleatoriedade no
dcBoids. Durante a aplicação das regras de movimentação dos Boids, existe uma probabilidade, Pa = 10%, de um Boid incluir um passo aleatório em sua movimentação pelo ambiente.
Entretanto, o comportamento aleatório não pode ter grande influência na movimentação, servindo apenas para perturbar levemente a movimentação, deixando-a um pouco mais realista.
3.5 JUNÇÃO E SEPARAÇÃO DE OBJETOS
A junção e separação de objetos no algoritmo dcBoids ocorre apresentando características de
auto-organização, uma vez que os Boids tendem a formar grupos automaticamente, sem a
necessidade de um treinamento prévio do algoritmo. Grupos formados por objetos similares
tenderão a voar pelo ambiente seguindo um trajeto similar, enquanto objetos dissimilares tenderão a seguir seus caminhos específicos. Se um Boid passa a voar juntamente com um grupo
por um determinado número de iterações, então todos os Boids são marcados com uma mesma identificação para sinalizarem ao algoritmo que já fazem parte do mesmo grupo. De forma
similar, se os Boids se separaram novamente durante o voo, cada um volta a ter sua identificação original para sinalizar que não fazem mais parte de um mesmo grupo.
3.6 VOO ISOLADO
No início da execução do algoritmo, todos os Boids são dispostos no ambiente em posições
aleatórias. Dessa forma, a configuração inicial normalmente consiste em uma grande quantidade de Boids voando isoladamente pelo ambiente. O funcionamento do algoritmo permanece
o mesmo, porém, como cada Boid ainda não tem vizinhos para influenciar seu movimento, ele
basicamente voa em trajetórias quase lineares, com algumas perturbações causadas pelo comportamento aleatório.
45
Após algumas iterações, os Boids começam a se encontrar e o movimento passa a simular
melhor o movimento de um bando de pássaros, com os Boids se aproximando, se afastando,
invertendo posições, etc., enquanto os grupos se movem como um todo para frente e para os
lados. Da mesma forma, se um Boid estiver voando isoladamente pelo ambiente, mesmo que
outros grupos já estejam formados, este irá novamente descrever uma trajetória mais linear,
como se estivesse varrendo o ambiente em busca de um grupo ao qual ele possa se tornar parte.
3.7 VISÃO GERAL DO ALGORITMO
As seções anteriores tiveram o objetivo principal de detalhar as partes mais importantes do
algoritmo dcBoids, discutindo as características e as técnicas propostas para a dinâmica do
algoritmo. A Figura 10 apresenta um pseudocódigo com o resumo do algoritmo dcBoids.
Para cada Boid k faça:
//Regra de separação
Calcule o ajuste de separação.[Eq. (10)]
k
Atualize a posição:b =
bk
//Regra de alinhamento
Calcule o ajuste de velocidade.[Eq. (11)]
Atualize a velocidade:
vk = vk
//Regra de coesão
Calcule o ajuste de coesão.[Eq. (12)]
k
k
Atualize a posição: b = b
Fim para
Calcule as medidas de avaliação
Figura 10: Pseudocódigo do algoritmo dcBoids.
.
46
4 METODOLOGIA, RESULTADOS E DISCUSSÃO
4.1 METODOLOGIA
Para avaliar o desempenho do algoritmo proposto nesta dissertação foram escolhidas seis
bases de dados da literatura e o algoritmo das k-médias para comparação de desempenho. As
bases foram apresentadas ao algoritmo tanto de forma estática (formato original), quanto
introduzindo algumas dinâmicas específicas e projetadas para avaliar diferentes propriedades
do algoritmo. Esta seção detalha a metodologia experimental adotada na dissertação, as bases
de dados e resultados obtidos, e traz, por fim, uma discussão dos resultados.
4.1.1 BASES DE DADOS
Foram selecionadas seis bases de dados da literatura, a partir do repositório de aprendizado de
máquina da Universidade da Califórnia em Irvine, Estados Unidos (UCI, 2011). As bases
escolhidas possuem classes conhecidas a priori e essa informação será utilizada apenas para o
cálculo de algumas das medidas de avaliação a serem utilizadas na comparação de
desempenho. Cabe ressaltar que as informações de classe não serão usadas durante o processo
adaptativo dos algoritmos, apenas para avaliação de desempenho. As bases selecionadas e
suas principais características estão resumidas na Tabela 1. Estas bases foram escolhidas, pois
todas elas possuem agrupamentos considerados corretos, fornecidos pela própria UCI. Sendo
assim, estes agrupamentos conhecidos à priori podem ser utilizados para verificar o quão
próximo deles o dcBoids é capaz de chegar.
Tabela 1: Bases de dados selecionadas para análise de desempenho do dcBoids.
Nome da base
Objetos
Atributos
Classes
1. Animais
16
13
2
2. Ruspini
75
2
4
3. Yeast
205
20
4
4. Wine
178
13
3
5. Diabetes
768
8
2
6. Ecoli
336
7
8
47
4.1.2 ANÁLISES A SEREM EFETUADAS
Para comparação do resultado dos agrupamentos, será utilizado o algoritmo k-médias,
bastante conhecido na literatura de agrupamento de dados e amplamente usado para validar o
desempenho de novos algoritmos. As seis bases descritas na Tabela 1 são intrinsecamente
estáticas, ou seja, sem atualização em seus dados ao longo do tempo. Nas análises a serem
apresentadas aqui, inicialmente serão feitos experimentos com as bases estáticas e, em
seguida, serão inseridos diferentes tipos de dinâmica para análise de desempenho com dados
variantes no tempo. Para a inclusão de dinâmica, serão aplicadas as seguintes técnicas:
1) Surgimento ou desaparecimento de grupos da base: como os Boids representam
os objetos da base, serão efetuadas remoções ou inserções de todos os Boids
pertencentes a um determinado grupo, escolhido aleatoriamente.
2) Movimentação de objetos pelo espaço: seleção aleatória de um ou mais Boids e
promoção de variação de todos seus atributos simultaneamente. Para isto, será
somado um valor aleatório no intervalo [ 0.1, 0.1] em seus atributos já
normalizados.
3) Adição ou remoção de objetos da base: seleção probabilística de um Boid a ser
adicionado ou removido da base (probabilidades iguais para cada objeto).
Com base na descrição destas dinâmicas, espera-se observar nos agrupamentos um nível de
interferência muito maior na aplicação da dinâmica 1 – surgimento ou desaparecimento de
grupos – do que na aplicação das dinâmicas 2 e 3. Isto ocorre porque as dinâmicas 2 e 3 agem
em objetos isolados e, portanto, a influência destes objetos em relação ao grupo será muito
menor se comparada à dinâmica 1, por meio da qual um grupo inteiro poderá aparecer ou
desaparecer em uma única iteração, causando assim uma perturbação muito maior na
execução do algoritmo.
4.1.3 SENSIBILIDADE PARAMÉTRICA
A análise de sensibilidade paramétrica consiste em um método útil para estimar a influência
dos parâmetros definidos pelo usuário no comportamento do algoritmo. A configuração dos
parâmetros em algoritmos bioinspirados normalmente tem papel importante no desempenho e
operação do algoritmo e, portanto, a avaliação dos mesmos contribui para uma aplicação mais
efetiva da técnica proposta.
48
No caso particular do dcBoids, os principais parâmetros a serem avaliados são:
1) Área de percepção do Boid: define o tamanho do raio dentro do qual um Boid é
capaz de perceber e interagir com seus vizinhos. Quanto maior este raio, maior a
abrangência da área de percepção, impactando assim em como as regras de
movimentação são ativadas.
2) Velocidade do Boid: a velocidade dos Boids varia ao longo da execução do
algoritmo, mas está compreendida em um intervalo pré-determinado. Sendo assim,
este parâmetro também precisa ser avaliado a fim de se identificar como a
velocidade dos Boids influencia a qualidade dos agrupamentos.
3) Tamanho do ambiente: o tamanho do ambiente pode influenciar ou não o voo dos
Boids. Uma análise de sensibilidade em relação a esse parâmetro permitirá observar
se há relação entre o tamanho do ambiente e a distância de voo entre os clusters,
bem como facilidade de dispersão dos Boids ainda não agrupados.
4.1.4 MEDIDAS DE AFINIDADE
Um elemento central na tentativa de identificar clusters de objetos que podem estar presentes
em bases de dados é o conhecimento de quão próximos ou distantes os objetos estão entre si.
Muitas técnicas de agrupamento têm como ponto de partida uma matriz n
n a qual reflete
uma medida quantitativa de proximidade. Dois indivíduos estão próximos quando sua
dissimilaridade ou distância é pequena, ou, dito de outra forma, sua similaridade é alta. A
medida de afinidade utilizada neste trabalho será a distância euclidiana, amplamente utilizada
na literatura.
4.1.5 MEDIDAS DE AVALIAÇÃO
As medidas de avaliação aplicadas em tarefas de agrupamento de dados podem ser dividas em
dois tipos (ARABIE, HUBERT e DE SOETE, 1996): internas e externas. As medidas
internas são aquelas baseadas em alguma função de similaridade entre os objetos e que visam
avaliar os agrupamentos através das distâncias inter e/ou intragrupos, ou seja, elas não
assumem conhecimento algum sobre os grupos existentes na base. As medidas externas
avaliam os agrupamentos através da comparação com um agrupamento ideal, ou seja, os
grupos de todos os objetos são conhecidos a priori.
49
4.1.5.1 Medidas Internas
Nas medidas internas não existe um agrupamento conhecido para os dados, sendo que a
análise do agrupamento é feita utilizando apenas as informações intrínsecas aos dados e,
normalmente, estas medidas são utilizadas como funções objetivo em algoritmos baseados em
busca por agrupamentos ótimos de dados. No caso particular dessa dissertação, será utilizada
uma única medida interna para a avaliação de desempenho, o Índice de Dunn (1974).
O índice de Dunn é baseado na ideia de se identificar clusters como regiões compactas e bem
separadas de dados. Para cada conjunto de grupos, onde ci representa o centroide do i-ésimo
grupo deste conjunto, o índice de Dunn, D, é calculado por meio da seguinte fórmula:
onde
é a distância entre os grupos
intragrupo do grupo
e
(distância intergrupo),
é a distância
e n é o número de grupos. O objetivo do índice de Dunn é descobrir a
razão entre a menor distância entre dois objetos de grupos distintos e a maior distância entre
objetos de um mesmo grupo. O índice de Dunn é limitado ao intervalo [0, ∞] e deve ser maximizado. Para efeitos de visualização, nos gráficos que representam os experimentos, o índice aparece normalizado no intervalo [0, 1] para cada bateria de execução dos testes.
4.1.5.2 Medidas Externas
Estas medidas avaliam o quão correto está um agrupamento proposto em relação a um
agrupamento ótimo conhecido a priori, ou seja, os objetos estão previamente rotulados e o
agrupamento proposto pelo algoritmo é analisado de forma a se determinar o quão próximo
ele está dos grupos rotulados. Muitas vezes, estas medidas são utilizadas para avaliar
diferentes agrupamentos de uma mesma base de dados, a fim de determinar qual é o melhor
deles. As principais medidas externas de agrupamento são a Acurácia, a Entropia, a Pureza e
o Índice de Jaccard:
a) Acurácia: indica a porcentagem de objetos que foram agrupados corretamente. Para que o
resultado de um agrupamento tenha acurácia 100%, todos os objetos devem ter sido
agrupados exatamente da forma como o agrupamento correto dos dados indica. Para
50
calcular a acurácia, basta dividir o número correto de classificações pelo número total de
classificações:
onde ncc é o número correto de classificações e ntc é o número total de classificações.
b) Entropia: mede a homogeneidade dos grupos, ou seja, o número de objetos agrupados em
relação à classe correta. Baixa entropia indica clusters mais homogêneos. O cálculo da
entropia é feito para cada grupo de forma isolada, e depois é calculada a entropia global
através do somatório das entropias obtidas para cada grupo, ponderado pelo tamanho de
cada grupo:
onde
é um grupo com tamanho
e
é o número de objetos da i-ésima classe presen-
te no cluster
c) Pureza: indica a razão da classe dominante no grupo em relação ao tamanho do próprio
grupo. Assim como a entropia, a pureza deve ser calculada para cada grupo
individualmente e, em seguida, obtém-se o valor da pureza global realizando o somatório
das purezas ponderadas pelo tamanho cada grupo:
onde
é um grupo com tamanho
e
é o número de objetos da i-ésima classe pre-
sente no cluster
d) Índice de Jaccard: aplicado para avaliar a similaridade entre partições diferentes de um
mesmo conjunto de dados. O nível de concordância entre um conjunto de rótulos C e um
resultado de agrupamento K é determinado pelo número de pares de pontos atribuídos ao
mesmo grupo em ambas as partições:
51
onde a é o número de pares de pontos com o mesmo rótulo em C e atribuído ao mesmo
grupo em K; b é o número de pares de pontos com o mesmo rótulo, porém em grupos diferentes, e c é o número de pares em um mesmo grupo, porém com rótulos diferentes. Este
índice produz um resultado no intervalo [0, 1], onde o valor 1 indica que os clusters C e K
são idênticos.
4.2 SENSIBILIDADE PARAMÉTRICA
Esta seção possui o objetivo de analisar e discutir a sensibilidade do algoritmo dcBoids em
relação aos seus principais parâmetros de entrada. Em particular é estudada a influência dos
seguintes parâmetros:
A = {120,240,360,480,600,720}: representa o diâmetro em pixels da área de percepção
de cada Boid;
T = {400,600,800,1000,1200}: representa o tamanho em pixels do lado do quadrado
que constitui o ambiente de voo dos Boids;
V = {5,10,15,20,30,40,50}: representa a velocidade máxima (pixels) com a qual os
Boids se movimentam pelo ambiente.
Em todos os testes desta seção será utilizada a base de dados Animais, pela sua simplicidade e
capacidade do algoritmo em resolvê-la com 100% de acurácia para dois grupos (aves e mamíferos).
4.2.1 TAMANHO DO AMBIENTE
Nesta seção é apresentado o número de iterações necessárias para se atingir a estabilidade do
agrupamento, para cada uma das possíveis configurações do ambiente. A Tabela 2 mostra as
combinações possíveis entre os parâmetros A e T e a quantidade de iterações para atingir a
estabilidade nestas configurações.
52
Tabela 2: Relação entre o tamanho do ambiente e o número de iterações até a estabilização do algoritmo dcBoids para a base de dados Animais.
T
A
400
600
800
1000
1200
120
180
240
380
410
840
240
60
180
220
180
430
360
20
80
100
130
220
20
40
70
160
20
30
80
20
40
480
600
720
Como pode observado na Tabela 2 (média arredondada de 10 execuções), existe uma relação
direta entre o tamanho do ambiente e a área de percepção, com a quantidade de iterações necessárias para se atingir a estabilidade no algoritmo. Com base apenas nestes valores não se
pode afirmar que existe uma relação exata entre a área de percepção e esta quantidade de iterações. Porém, a tabela deixa claro que o número de iterações diminui conforme o tamanho da
área de percepção se aproxima do tamanho lado do quadrado. Cabe ressaltar que apesar do
aumento da área de percepção diminuir a quantidade de iterações, nem sempre essa é uma boa
estratégia. Em bases com muitos objetos o efeito pode ser contrário, pois quanto maior a área
de percepção, mais custoso computacionalmente o algoritmo ficará, uma vez que quanto mais
vizinhos um Boid enxergar em uma dada iteração, mais cálculos terão de ser feitos a fim de se
encontrar a próxima posição a ser ocupada por este Boid.
4.2.2 VELOCIDADE DOS BOIDS
Nesta seção é avaliada a influência da velocidade dos Boids em relação ao número de iterações necessárias para se atingir a estabilidade. Para a execução dos testes o ambiente foi configurado com 1000 pixels de lado e a área de percepção com 120 e depois 240 pixels.
53
Tabela 3: Relação entre a velocidade dos Boids e o número de iterações até a estabilização do algoritmo para a
base de dados Animais.
A
V
120
240
5
660
540
10
440
360
15
300
250
20
420
190
30
470
340
40
530
620
50
750
950
Observando os dados da Tabela 10, nota-se que a velocidade dos Boids não segue um comportamento monotônico, ou seja, o aumento da velocidade pode promover aumento do tempo
de estabilização ou redução, dependendo dos valores. Isso ocorre, pois os Boids podem adquirir velocidades tão altas que não conseguem alinhar seus voos em tempo, passando muito rápido uns pelos outros.
4.3 RESULTADOS EXPERIMENTAIS
Esta seção descreve os experimentos realizados com as bases de dados apresentadas na Tabela
1, juntamente com os resultados obtidos na execução do algoritmo dcBoids. Estes resultados
são comparados com os obtidos pelo algoritmo k-médias. Para a definição do valor de k do kmédias, utilizou-se o número de grupos fornecido pela UCI.
Todos os resultados a serem apresentados foram obtidos a partir de dez execuções de cada
algoritmo para cada base de dados. Nas tabelas a seguir, os resultados são apresentados da
seguinte forma: média
desvio padrão (mínimo, máximo), ou seja, a média das dez execu-
ções, seguida do desvio padrão e, entre parênteses, os valores mínimo e máximo dos experimentos, respectivamente. Cada coluna contém o desempenho de cada um dos dois algoritmos
avaliados. Também serão apresentados gráficos com o comportamento do algoritmo ao longo
das iterações, incluindo número de grupos e valor de cada uma das medidas avaliadas.
54
4.3.1 BASE ANIMAIS
A base de dados Animais (Tabela 4) contém 16 objetos, cada um com 13 atributos binários.
Esta base é amplamente utilizada para testar redes neurais do tipo auto-organizáveis (HAYKIN, 1999), além de outros algoritmos de agrupamento de dados.
É
Tem
Gosta
de
Pequeno
Médio
Grande
Duas
4Patas
Patas
Cabelo
Casco
Crina
Penas
Caçar
Correr
Voar
Nadar
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
Vaca
Zebra
Cavalo
Leão
Tigre
Gato
Lobo
Cachorro
Raposa
Águia
Falcão
Coruja
Ganso
Pato
Pomba
Galinha
Tabela 4: Base de dados Animais.
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
4.3.1.1 Caso Estático
Para validar o algoritmo dcBoids, a primeira bateria de testes consistiu em agrupar as bases de
dados sem a inserção das características dinâmicas de atualização, inclusão e exclusão de objetos ou grupos. Na Tabela 5 são apresentados os resultados obtidos (após a estabilização)
para a base de dados Animais e medidas de desempenho utilizadas.
Tabela 5: Desempenho dos algoritmos dcBoids e k-médias quando aplicados a base de dados Animais.
dcBoids
k-médias
k
2
0 (2, 2)
2
0 (2, 2)
Índice de Dunn
1
0 (1, 1)
1
0 (1, 1)
Acurácia (%)
100
0 (100, 100)
100
0 (100, 100)
Pureza
1
0 (1, 1)
1
0 (1, 1)
Entropia
0
0 (0, 0)
0
0 (0, 0)
Índice de Jaccard
1
0 (1, 1)
1
0 (1, 1)
55
Os valores apresentados na Tabela 5 mostram que ambos os algoritmos são capazes de efetuar
o agrupamento com 100% de acerto em todos os casos, considerando que a base é composta
por dois grupos: aves e mamíferos. O índice de Dunn, Acurácia, Pureza, Entropia e índice de
Jaccard atingem seus valores ótimos, indicando que o agrupamento foi realizado com 100%
de acerto em ambos os casos. A Figura 11 apresenta uma configuração inicial e final típica do
algoritmo dcBoids. Como os grupos são conhecidos previamente, os Boids de cada um destes
grupos recebem diferentes cores a fim de facilitar a visualização da qualidade dos agrupamentos. Neste exemplo, os animais foram divididos em dois grupos: aves (vermelhos) e mamíferos (azuis).
Figura 11: Iterações inicial e final para o agrupamento da base Animais.
4.3.1.2 Caso Dinâmico
Nessa seção são apresentados os resultados dos algoritmos ao se introduzir as características
dinâmicas na base de dados. Na Figura 13 é possível observar o comportamento do algoritmo
para todas as medidas de avaliação propostas.
Dinâmica 1 - Surgimento ou Desaparecimento de Grupos
Neste experimento um grupo é escolhido aleatoriamente e então removido. Após 50 iterações
o grupo removido é novamente inserido no ambiente. Em todos os casos, a adição ou remoção
de um grupo não interfere na qualidade do outro agrupamento. Independentemente de o grupo
removido ser o grupo das aves ou o grupo dos mamíferos, os resultados das medidas de avaliação se mantiveram os mesmos da Tabela 5. Quando um grupo é removido e readicionado na
sequência, a configuração do ambiente segue o padrão apresentado na tela à direita da Figura
56
12. Isto ocorre, pois quando os Boids são readicionados eles são inseridos em posições aleatórias para verificar se serão capazes de se agrupar novamente. O resultado final segue o padrão
da tela à direita da Figura 11, com os dois grupos voando isoladamente.
Figura 12: Exclusão seguida de reinclusão de um grupo no ambiente.
A Figura 13 apresenta a variação ao longo das iterações do número de grupos propostos pelo
algoritmo e também das cinco medidas de avaliação de desempenho analisadas. Nas primeiras
iterações, o número de grupos é 16, que é a quantidade de objetos presentes na base de dados.
Em seguida, este número cai rapidamente para aproximadamente 50% do valor inicial. A execução continua até que apenas dois grupos se mantenham e, então, o algoritmo estabiliza em
relação ao número de grupos. Diz-se que o algoritmo está estabilizado quando se passam 50
iterações sem que haja modificações nos grupos criados. Após certo número de iterações com
os dois grupos estabilizados, um grupo é completamente removido e o número de grupos cai
imediatamente para um. O valor 1 se mantém estabilizado até que os Boids do grupo removido sejam reinseridos no ambiente. Como estes Boids são colocados em posições aleatórias, o
número de grupos volta a subir e o algoritmo continua a buscar os agrupamentos corretos, até
que o número de grupos chegue novamente a dois.
Dinâmica 2 - Movimentações no Espaço
O teste de movimentação de objetos no espaço consiste em alterar os atributos dos objetos
conforme a dinâmica proposta no Capítulo 3. Os resultados da movimentação nesta base de
dados não geraram impactos suficientemente significativos a ponto de desestruturar os grupos
já formados. Algumas poucas perturbações podem ser observadas nos gráficos das medidas de
desempenho (Figura 13), porém o algoritmo demonstrou-se suficientemente robusto ao não
57
desfazer os grupos, uma vez que as alterações não foram tão significativas para esta base de
dados. Este comportamento pode ser observado nos gráficos da Figura 13, onde após a estabilização e consequente aplicação das regras de movimentação, não são notadas grandes variações nas medidas de avaliação.
Figura 13: Dinâmica do algoritmo dcBoids ao longo das iterações para a base Animais.
58
Dinâmica 3 - Inclusão e Exclusão de Objetos
Os experimentos envolvendo inclusão e exclusão de objetos da base tiveram um comportamento relativamente similar aos experimentos anteriores. Mesmo com a inclusão e exclusão
de objetos na base de dados, o algoritmo continuou sendo capaz de ajustar seus grupos da
maneira esperada. Objetos inseridos na base de dados começam a voar pelo ambiente e, em
poucas iterações, encontram seu grupo correto. Objetos excluídos da base não desestruturam
seus grupos ao deixar de voar com eles.
Os gráficos da Figura 13 apresentam o comportamento das medidas de avaliação utilizadas,
para cada uma das dinâmicas aplicadas. Ao observar os trechos centrais dos gráficos (~200
iterações), é possível notar que o algoritmo alcança uma estabilização, pois as linhas atingem
e mantêm seus pontos máximos ou mínimos por um número considerável de iterações. Após
este período de estabilidade (50 iterações), são ativadas, uma a uma, as técnicas de atualização
da base de dados, com o objetivo de simular o comportamento de uma base com dados variantes no tempo. Após a aplicação destas técnicas, podem-se observar perturbações nos gráficos,
que sugerem alterações nas formações dos grupos.
A atualização que mais influencia nas medidas é a inclusão/exclusão de grupos. Na Figura
13(a) é possível observar que, na iteração 250, o número de grupos cai rapidamente para 1,
após passar por um longo período de estabilidade com o valor 2. Em seguida, na iteração 300,
este número sobe novamente, pois os objetos antes excluídos são reapresentados para o algoritmo. Após esta reapresentação, o número de grupos volta a cair até atingir novamente o valor esperado, ou seja, 2 grupos. Ao inserir um grupo na base, o algoritmo posiciona os Boids
em regiões aleatórias e, portanto, o mesmo efeito observado na Figura 13(a) também ocorre
nos gráficos da Figura 13(b)-(f), onde os picos e/ou vales ocorrem justamente no momento da
reinclusão dos objetos no ambiente.
Nos gráficos da Figura 13(b)-(f) é possível observar que, diferentemente da Figura 13(a), não
ocorrem perturbações no intervalo entre as iterações 250 e 300. Isto ocorre, pois a remoção de
um grupo não influencia diretamente no outro grupo já formado, o qual continua voando com
a mesma formação até aquele momento e, portanto, as medidas de avaliação não são perturbadas até que o grupo seja novamente reincluído no ambiente.
Em todos os gráficos, as dinâmicas de alteração e inclusão/exclusão de objetos isolados não
causam grandes impactos na formação dos bandos. No momento exato das atualizações dos
59
atributos, os objetos se distanciam levemente de seus grupos, mas em poucas iterações voltam
a se estabilizar e voar de acordo com os seus centroides corretos. A aplicação destas dinâmicas ocorre entre as iterações 300 e 400, onde é possível observar pequenas variações. Em todos os casos, no intervalo entre as iterações 400 e 450 os Boids, convergem novamente para a
estabilidade.
A solução de agrupamento mais comumente proposta pelo dcBoids para esta base de dados
foi: Grupo 1: cão, vaca, raposa, lobo, zebra, leão, cavalo, tigre e gato; e Grupo 2: pato, galinha, águia, pombo, coruja, falcão e ganso.
4.3.1.3 Resultados K-Médias
Na Figura 14 é possível observar os resultados obtidos para o agrupamento proposto pelo algoritmo k-médias, com k = 2. Na Figura 14(a), que representa a variação do número de grupos
ao longo do tempo, é possível observar uma linha reta do início ao fim da execução do algoritmo. Este padrão se repete em todos os testes com o algoritmo k-médias, pois a base de seu
funcionamento está relacionada com o valor de k, que é um parâmetro de entrada do algoritmo e não um parâmetro adaptativo. Em todos os outros gráficos, é possível observar uma estabilização bastante rápida do algoritmo em resposta às dinâmicas inseridas na base.
No algoritmo k-médias, os centroides iniciais são criados e, em seguida, todos os objetos são
comparados a estes centroides. Após a comparação, os objetos são alocados ao centroide mais
próximo dentre os disponíveis. Assim, já a partir da segunda iteração, todos os objetos estarão
alocados a um dos centroides disponíveis. Estes centroides são, em seguida, recalculados de
modo a representar o valor médio de todos os objetos alocados a ele e, então, uma nova iteração é iniciada. Este processo se repete até a estabilização do algoritmo.
Seguindo um comportamento similar ao do dcBoids, o algoritmo k-médias sofre a maior perturbação na exclusão/inclusão de grupos na base de dados. É possível observar, porém, que o
nível de perturbação (Figura 14 (b)-(f)) é maior neste algoritmo. No algoritmo k-médias todos
os objetos devem ser alocados única e exclusivamente a um dos k centroides disponíveis. No
momento da exclusão, tem-se uma queda acentuada de desempenho (iteração 300). Já na reinclusão (iteração 350) um novo centroide é criado aleatoriamente e, portanto, o algoritmo volta
a convergir novamente para o agrupamento ótimo. Esta peculiaridade do algoritmo k-médias
de alocar os objetos a apenas um dos k grupos disponíveis não existe no dcBoids.
60
Figura 14: Dinâmica do algoritmo k-médias ao longo das iterações para a base Animais.
No dcBoids, cada objeto é inicialmente um novo centroide e, sendo assim, ele pode, por algumas iterações, representar seu próprio cluster, não sendo contabilizado como erro nas medidas de avaliação. Ou seja, no dcBoids se um objeto está voando isoladamente no ambiente
ele ainda não pertence a um dos centroides pré-conhecidos e, portanto, não é contabilizado
como erro. Este erro só será contabilizado se o objeto se agrupar incorretamente a um dos
grupos pré-conhecidos. Da mesma forma, o acerto só será contabilizado quando o objeto se
61
agrupar com o grupo esperado. Sendo assim, no k-médias, objetos podem estar alocados de
maneira correta ou incorreta, enquanto no dcBoids podem ser corretos, incorretos ou não alocados (neutros).
Da mesma forma que no algoritmo dcBoids, as dinâmicas de alteração e inclusão de objetos
isolados não causam grandes perturbações, como pode ser observado na Figura 14(b) até (f), à
partir da iteração de número 300.
4.3.2 BASE RUSPINI
A base Ruspini consiste em um conjunto de 75 objetos, onde cada um contem dois atributos
inteiros que indicam posições nas coordenadas (x,y) do espaço
2
(Ruspini, 1970). Na Figura
15 pode-se observar a distribuição espacial dos objetos que constituem essa base de dados.
Figura 15: Base de dados Ruspini.
4.3.2.1 Caso Estático
Na Tabela 6 são apresentados os resultados do agrupamento em ambiente estático para a base
de dados Ruspini. Similarmente à base animais, os resultados para a base Ruspini parecem ser
determinísticos, uma vez que a separação dos objetos desta base é bastante clara, facilitando a
tarefa de agrupamento pelo algoritmo.
62
Tabela 6: Desempenho dos algoritmos dcBoids e k-médias quando aplicados à base de dados Ruspini.
dcBoids
k-médias
k
4
0 (4, 4)
4
0 (4, 4)
Índice de Dunn
1
0 (1, 1)
1
0 (1, 1)
Acurácia (%)
100
0 (100, 100)
100
0 (100, 100)
Pureza
1
0 (1, 1)
1
0 (1, 1)
Entropia
0
0 (0, 0)
0
0 (0, 0)
Índice de Jaccard
1
0 (1, 1)
1
0 (1, 1)
Os resultados apresentados na Tabela 6 para o índice de Dunn, Acurácia, Pureza, Entropia, e
índice de Jaccard atingem seus valores ótimos, indicando que o agrupamento foi realizado
com 100% de acerto por ambos algoritmos.
A Figura 16 apresenta uma configuração inicial e final típicas para esta base de dados, colorida de acordo com o agrupamento conhecido previamente.
Figura 16: Iterações inicial e final para o agrupamento da base Ruspini.
4.3.2.2 Caso Dinâmico
Na Figura 18 é possível observar o comportamento do algoritmo para todas as medidas de
avaliação propostas.
Surgimento ou Desaparecimento de Grupos
Os resultados dos testes de surgimento e desaparecimento de grupos resultaram no comportamento esperado, ou seja, ao se eliminar um grupo inteiro os grupos restantes não são impactados e os agrupamentos já formados continuam voando sem apresentar variações. Quando
63
um grupo surge novamente há um rápido impacto, pois vários Boids são incluídos em uma
única iteração. Em poucas iterações, os Boids recém incluídos passam a voar em grupo estabilizando o resultado como um todo.
Movimentação no Espaço
Apesar da base Ruspini ter seus grupos claramente isolados, existem alguns poucos objetos
que, com as devidas atualizações em seus atributos, podem mudar de grupo ao longo da execução do algoritmo. Apesar de raro para esta base, este comportamento pôde ser observado
esporadicamente, quando após a atualização de seus atributos alguns objetos passaram a voar
ao lado de outro grupo. Os objetos com maiores chances de alteração de grupos são os contidos dentro da área em destaque na Figura 17. Devido à proximidade entre eles na distribuição
no plano 2D, é possível que seus atributos sejam suficientemente alterados a ponto de trocarem de grupo.
Figura 17: Objetos com maiores chances de alteração de grupo durante as iterações.
Inclusão/Exclusão de Objetos
Os resultados de inclusão e exclusão de objetos também ocorreram conforme o esperado: ao remover um objeto da base o restante dos grupos não sofre impactos significativos, mantendo os agrupamentos já existentes. Ao se incluir novamente um objeto, este passa a voar isoladamente no ambiente até encontrar seu grupo correto. É possível que um objeto voe temporariamente ao lado de um
grupo incorreto se este grupo for o primeiro a ser percebido durante o voo do Boid recém incluído.
Porém, ao se encontrar com o grupo correto o Boid abandona o grupo incorreto e passa a fazer parte
do grupo correto.
64
Figura 18: Dinâmica do algoritmo dcBoids para a base de dados Ruspini ao longo das iterações.
Os gráficos das medidas de avaliação para a base de dados Ruspini mostram, em todos os
casos, uma estabilização que antecede a aplicação das técnicas de atualização da base de da-
65
dos. O algoritmo responde adequadamente às atualizações, sendo capaz de manter a estrutura
já encontrada para os grupos sem grandes perturbações pelos objetos que têm seus atributos
atualizados. Em todas as execuções o desaparecimento/surgimento de grupos é a atualização
que mais interfere nas medidas de avaliação gerando os picos e vales que podem ser observados na Figura 18(b)-(f) a partir da iteração de número 350, quando ocorre a reinclusão dos
objetos no ambiente. Conforme discutido, esta perturbação ocorre pelo fato de que os objetos
são reinseridos em posições aleatórias no ambiente e isto faz que o cálculo das medidas de
atualização sofra interferências até que o algoritmo volte a se estabilizar. Na Figura
18Figura(a) é possível observar uma pequena variação no número de grupos na iteração de
número 300. Nesta iteração ocorre a exclusão de um grupo inteiro, o que reduz o número de
grupos de quatro para três. Esta exclusão não causa perturbações nos outros gráficos, pois os
três grupos restantes continuam voando na formação alcançada até o momento.
4.3.2.3 Resultados K-Médias
Na Figur é possível observar os resultados obtidos para o agrupamento proposto pelo algoritmo k-médias, k = 4. Estes resultados também mostram uma estabilização bastante rápida de
todas as medidas de avaliação. Como esta base contém quatro classes claramente separadas,
os centroides também representam bem seus grupos, fazendo com que as variações introduzidas na base não gerem interferências nas medidas de avaliação. Na Figur(a) observa-se uma
linha reta, que indica que o algoritmo sempre terá k grupos presentes em sua execução. Na
Figur(b)-(f) observa-se uma queda nas medidas de desempenho a partir da iteração 300,
quando um grupo é excluído. Após a iteração 350, quando os objetos do grupo são devolvidos
à base, o algoritmo reinicia a estabilização até atingir novamente o agrupamento ótimo. Os
resultados finais para o dcBoids e para o k-médias foram os mesmos em relação à qualidade
dos agrupamentos. O dcBoids consegue atingir o mesmo número de clusters que o k-médias,
mesmo sem conhecer esta informação à priori e, além disso, responde bem às atualizações dos
objetos, mostrando uma resposta em tempo real e evidenciando que as alterações nos objetos
são percebidas pelos Boids imediatamente após sua ocorrência.
66
Figura 19: Dinâmica do algoritmo k-médias para a base Ruspini ao longo das iterações.
4.3.3 BASE YEAST
A base Yeast consiste em um conjunto de dados de expressão gênica formado por 205 objetos
que representam proteínas de leveduras, contendo vinte atributos cada um. Estes 205 objetos
estão alocados em quatro clusters distintos de acordo com a localização das proteínas.
67
4.3.3.1 Caso Estático
Na Tabela 7 são apresentados os resultados do agrupamento em ambiente estático para a base
de dados Yeast. Diferentemente das duas primeiras bases, esta base apresenta algumas classificações incorretas e é possível perceber que para todas as medidas de avaliação, o desempenho do dcBoids foi superior, em termos absolutos, do que o k-médias.
Tabela 7: Desempenho dos algoritmos dcBoids e k-médias quando aplicados a base de dados Yeast.
dcBoids
k
Índice de Dunn
Acurácia (%)
4.3
0.81
80.1
k-médias
0.67 (4, 6)
4
0 (4, 4)
0.03 (0.76, 0.84)
0.76
0 (0.76, 0.76)
1.59 (78, 82)
76.5
0 (76.5, 76.5)
Pureza
0.95
0.02 (0.91, 0.97)
0.92
0 (0.92, 0.92)
Entropia
0.12
0.01 (0.11, 0.16)
0.15
0 (0.15, 0.15)
Índice de Jaccard
0.66
0.02 (0.63, 0.69)
0.62
0 (0.62, 0.62)
A Figura 20 apresenta uma configuração inicial e final típica para a base de dados Yeast.
68
Figura 20: Iterações inicial e final para o agrupamento da base Yeast.
4.3.3.2 Caso Dinâmico
A Figura 21 apresenta o comportamento do algoritmo dcBoids para a base Yeast.
69
Figura 21: Dinâmica do algoritmo dcBoids para a base Yeast ao longo das iterações.
Os resultados obtidos para a base de dados Yeast evidenciam que o algoritmo proposto é capaz de convergir e encontrar os quatro grupos na maioria de suas execuções. Porém, apesar de
convergir para o número correto de grupos, os resultados para esta base, diferentemente das
duas primeiras, apresentam algumas classificações incorretas. Estas classificações incorretas
podem ser observadas na Figura 20, pois as cores dos Boids são definidas antes do início da
execução com base nos clusters corretos. Assim, grupos com mais de uma cor indicam que
classificações incorretas foram realizadas. Figura 21(a) é possível observar que o número de
grupos chega muito próximo a quatro, mas a estabilização não é tão evidente quanto nas bases
Ruspini e Animais. Na Figura 21(b)-(f) pode-se perceber também que os valores das medidas
de avaliação não conseguem alcançar seus valores máximos, como ocorre nas duas primeiras
bases de dados. Os resultados, porém, são consistentes com o que é mostrado na Figura 20,
onde, por meio da coloração dos Boids, percebe-se que algumas classificações são feitas incorretamente.
Apesar de o algoritmo não conseguir alcançar a classificação com 100% de acerto, o funcionamento geral do algoritmo se mantém no mesmo padrão das bases apresentadas anteriormente. Ou seja, a exclusão/inclusão de grupos continua sendo a dinâmica que causa maiores perturbações nas medidas de avaliação, enquanto a atualização de objetos isolados promove poucas variações no funcionamento do algoritmo. Os picos e vales observados na iteração 350
representam o momento exato em que os grupos são reapresentados ao algoritmo e as iterações seguintes mostram a convergência do mesmo.
70
4.3.3.3 Resultados K-Médias
A Figura 22 apresenta o comportamento do algoritmo k-médias para a base Yeast, k = 4.
Figura 22: Dinâmica do algoritmo k-médias para a base Yeast ao longo das iterações.
Os resultados para o algoritmo k-médias seguem o mesmo padrão dos testes anteriores em
relação à estabilidade. Na Figura 22(a) observa-se que o número de grupos se mantém em
71
quatro por toda a execução do algoritmo. Na Figura 22(b)-(f) observa-se o mesmo padrão
comportamental já apresentado para as bases anteriores, ou seja, o algoritmo estabiliza e, após
isso, as dinâmicas são aplicadas, causando a variação nos resultados, a qual é seguida por um
novo período de estabilização. A aplicação das dinâmicas ocorre na iteração de número 300.
Nesta iteração percebe-se os maiores picos e vales para exclusão e inclusão de grupos, os
quais se mantêm até a iteração 350, quando os grupos são novamente inseridos na base. Ambos algoritmos atingem resultados similares, porém, de acordo com os valores apresentados
na Tabela 7 e com os gráficos da Figura 22, é possível perceber que o dcBoids obteve resultados ligeiramente superiores ao k-médias em relação às medidas de avaliação.
4.3.4 BASE WINE
A base Wine é formada por dados resultantes da análise química de vinhos produzidos em
uma mesma região da Itália, porém derivados a partir de três cultivares diferentes. A análise
determinou as quantidades de diversos componentes encontrados em cada tipo de vinho. Esta
base de dados possui 178 objetos com 13 atributos e está dividida em três grupos.
4.3.4.1 Caso Estático
Na Tabela 8 são apresentados os resultados médios fornecidos pelos algoritmos para a base de
dados Wine.
Tabela 8: Desempenho dos algoritmos dcBoids e k-médias quando aplicados a base de dados Wine.
dcBoids
k
Índice de Dunn
Acurácia (%)
3.2
0.79
94.8
0.42 (3, 4)
k-médias
3.0
0 (3, 3)
0.02 (0.76, 0.82)
0.76
0 (0.76, 0.76)
1.13 (93, 96)
95.5
0 (95.5, 95.5)
Pureza
0.96
0.01 (0.93, 0.97)
0.94
0 (0.94, 0.94)
Entropia
0.12
0.01 (0.11, 0.14)
0.13
0 (0.13, 0.13)
Índice de Jaccard
0.9
0.01 (0.88, 0.92)
0.89
0 (0.89, 0.89)
Os resultados dessa tabela mostram que os algoritmos possuem desempenho praticamente
idêntico para a base de dados Wine. Em valores absolutos, as médias atingidas pelo dcBoids
foram melhores, porém esta diferença não é estatisticamente significativa. A Figura 23 apresenta uma configuração inicial e final típica do dcBoids aplicado à base Wine.
72
Figura 23: Iterações inicial e final para o agrupamento da base Wine.
73
4.3.4.2 Caso Dinâmico
A Figura 24 apresenta o comportamento das medidas de avaliação do algoritmo dcBoids para
a base Wine.
Figura 24: Dinâmica do algoritmo dcBoids para a base Wine ao longo das iterações.
Os resultados apresentados nas tabelas e gráficos para a base Wine mostram que o algoritmo
foi capaz de identificar os grupos com alto percentual de acerto. A Figura 23 apresenta algu-
74
mas classificações incorretas, porém é possível ver claramente que três grandes grupos foram
identificados.
Apesar de apresentar comportamentos que não são completamente estáveis, a Figura 24 apresenta picos e vales que seguem o mesmo padrão comportamental das bases apresentadas até o
momento. Na Figura 24(a) pode-se observar que o número de grupos chega muito próximo do
valor três já a partir da iteração 250. Após a iteração 350, observa-se um vale, que indica que
um grupo foi reinserido pelo algoritmo. Na Figura 24(b)-(f) pode-se constatar que o mesmo
comportamento apresentado nas demais bases se repete, ou seja, os picos e vales representam
a exclusão/inclusão de grupos e as perturbações menores ficam por conta da atualização dos
objetos isolados. Além disso, é possível observar nestes gráficos que o nível de classificação
correta chega bastante próximo ao que seria o ideal para esta base.
4.3.4.3 Resultados K-Médias
A Figura 25 apresenta o comportamento do algoritmo k-médias aplicado à base Wine, k = 3.
75
Figura 25: Dinâmica do algoritmo k-médias para a base Wine ao longo das iterações.
Os resultados para o algoritmo k-médias são bastante similares aos resultados obtidos pelo
dcBoids. A estabilização do algoritmo é atingida rapidamente, até que na iteração de número
300 são aplicadas as dinâmicas de atualização da base. Na Figura 25(a) observa-se que o número de grupos se mantém em três durante toda a execução do algoritmo. Na Figura 25(b)-(f)
tem-se comportamentos similares aos do dcBoids, com as perturbações mais evidentes ocorrendo na exclusão e reinclusão de grupos na base de dados. Comparando aos gráficos e à tabelas de resultados do dcBoids e do k-médias, verifica-se que ambos algoritmos apresentam praticamente o mesmo desempenho, com diferenças muito pequenas nas medidas de avaliação.
4.3.5 BASE DIABETES
A base de dados Pima Indians Diabetes, ou simplesmente Diabete, tem como origem trabalhos realizados no National Institute of Diabetes and Digestive and Kidney Diseases (Instituto
Nacional de Diabetes e Doenças Digestivas e do Rim) dos Estados Unidos e foi consolidada
no ano de 1990. A base possui um total de 768 objetos, cada um com oito atributos. A base
possui dois clusters, um para os pacientes positivos para o diabetes e ou para os negativos.
4.3.5.1 Caso Estático
Na Tabela 9 são apresentados os resultados do agrupamento em ambiente estático para a base
de dados Diabetes.
76
Tabela 9: Desempenho dos algoritmos dcBoids e k-médias quando aplicados a base de dados Diabetes.
dcBoids
k
Índice de Dunn
Acurácia (%)
2.1
0.69
80.8
k-médias
0.31 (2, 3)
0.2 (0.67, 0.72)
1.84 (79, 84)
2
0.68
67
0 (2, 2)
0 (0.68, 0.68)
0 (67, 67)
Pureza
0.77
0.01 (0.75, 0.79)
0.64
0 (0.64, 0.64)
Entropia
0.29
0.01 (0.27, 0.31)
0.41
0 (0.41, 0.41)
Índice de Jaccard
0.76
0.04 (0.67, 0.81)
0.59
0 (0.59, 0.59)
A Figura 26 apresenta uma configuração inicial e final, respectivamente, para a base Diabetes.
Figura 26: Iterações inicial e final para o agrupamento da base Diabetes.
77
4.3.5.2 Caso Dinâmico
A Figura 27 apresenta o comportamento do dcBoids aplicado a base Diabetes.
Figura 27: Dinâmica do algoritmo dcBoids para a base Diabetes ao longo das iterações.
Os resultados para a base Diabetes mostram estabilização e bons resultados das medidas de
avaliação. Esta foi a base de dados avaliada com a maior quantidade de objetos e, na maioria
dos casos, o algoritmo convergiu para o número ideal de dois grupos. Para esta base de dados
observou-se resultados do dcBoids superiores aos obtidos pelo k-médias. Para todas as medidas de avaliação o dcBoids atingiu melhores valores, tanto para as médias quanto para os va-
78
lores mínimos e máximos. A inclusão/exclusão de grupos continua tendo o maior impacto nas
medidas de avaliação, gerando perturbações que podem ser observadas nos picos e vales existentes nos gráficos da Figura 27. Como visto na Figura 27(a), o algoritmo estabiliza no número ótimo de grupos já a partir da iteração 250, a qual se mantém até a iteração 350, na qual um
grupo recém excluído é devolvido ao algoritmo. A Figura 27(b)-(f) apresenta perturbações
dentro do padrão para as dinâmicas aplicadas.
4.3.5.3 Resultados K-Médias
Na Figura 28 estão apresentados os resultados do algoritmo k-médias para a base Diabetes,
k = 2.
79
Figura 28: Dinâmica do algoritmo k-médias para a base Diabetes ao longo das iterações.
O algoritmo k-médias possui estabilização rápida para a base de dados Diabetes, porém atinge
valores bem abaixo do ótimo para esta base de dados e um pouco abaixo dos valores obtidos
pelo dcBoids. A aplicação das dinâmicas de atualização gera perturbações que seguem o
mesmo padrão das outras bases já apresentadas. Na Figura 28(a) observa-se o que o número
de grupos se mantém em dois durante toda a execução do algoritmo. A Figura 28(b)-(f) apresenta estabilização até a iteração de número 300, quando é feita a aplicação das dinâmicas.
Mais uma vez a exclusão/inclusão dos grupos gera as maiores perturbações, enquanto a atualização isolada causa pequeno impacto no desempenho do algoritmo.
4.3.6 BASE ECOLI
A base de dados Ecoli contem dados sobre a localização celular proteínas. Os 336 objetos que
constituem esta base possuem um total de sete atributos. A base está separada em oito clusters
diferentes.
4.3.6.1 Caso Estático
Na Tabela 10 são apresentados os resultados do agrupamento em ambiente estático para a base
de dados Ecoli.
80
Tabela 10: Desempenho dos algoritmos dcBoids e k-médias quando aplicados a base de dados Ecoli.
dcBoids
k
Índice de Dunn
Acurácia (%)
5.2
0.78
66
k-médias
0.63 (5, 7)
0.02 (0.75, 0.82)
1.7 (63, 68)
8
0.75
61
0 (8, 8)
0 (0.75, 0.75)
0 (61, 61)
Pureza
0.86
0.01 (0.84, 0.87)
0.81
0 (0.81, 0.81)
Entropia
0.26
0.03 (0.23, 0.32)
0.34
0 (0.34, 0.34)
Índice de Jaccard
0.68
0.01 (0.66, 0.69)
0.59
0 (0.59, 0.59)
A Figura 29 apresenta uma configuração inicial e final típica para o dcBoids aplicado à base
de dados Ecoli.
Figura 29: Iterações inicial e final para o agrupamento da base Ecoli.
81
4.3.6.2 Caso Dinâmico
A Figura 30 apresenta o comportamento do dcBoids ao longo do tempo para a base Ecoli.
Figura 30: Dinâmica do algoritmo dcBoids para a base Ecoli ao longo das iterações.
82
O algoritmo dcBoids consegue convergir para valores ligeiramente melhores que o algoritmo
k-médias, porém, ambos ficam com uma acurácia em torno de 60%. Para esta base de dados,
o dcBoids teve os piores resultados em relação ao número de grupos. Na maioria dos casos,
foram identificados seis grupos ao invés de oito. Dos oito grupos desta base, existem três grupos consideravelmente pequenos (contendo 2, 2 e 5 objetos, respectivamente). Como estes
grupos não são suficientemente diferenciados dos demais, eles acabam sendo absorvidos pelos grupos maiores e o algoritmo estabiliza em cinco grupos ao invés de oito. O valor oito é
sempre obtido para algoritmo k-médias, pois este é o valor inserido para o parâmetro k. Figura
30(a) observa-se que para o algoritmo dcBoids o valor dos grupos chega muito próximo ao
ideal, que seria 8, partindo do valor inicial de 336. Porém, devido à grande discrepância de
tamanho entre os grupos, os três menores grupos acabam sendo absorvidos pelos maiores.
Como pode ser observado na Figura 30(b)-(f), a evolução das medidas continua seguindo o
mesmo padrão de todas as bases apresentadas anteriormente. As dinâmicas aplicadas a objetos
isolados causam um impacto bastante pequeno no agrupamento, enquanto a inclusão/exclusão
continua gerando as maiores perturbações observadas.
4.3.6.3 Resultados K-Médias
A Figura 31 apresenta o comportamento do algoritmo k-médias aplicado à base Ecoli, k = 8.
83
Figura 31: Dinâmica do algoritmo k-médias para a base Ecoli ao longo das iterações.
O algoritmo k-médias tem uma rápida estabilização para a base de dados Ecoli, porém em
valores bem abaixo do ótimo para esta base de dados. A base Ecoli foi a base com o maior
número de grupos testada, mas estes grupos têm uma quantidade desbalanceada de objetos:
enquanto o maior grupo possui 143 objetos, dois grupos possuem apenas dois objetos cada.
Os resultados para o algoritmo k-médias seguem o mesmo padrão comportamental dos testes
anteriores em relação à convergência. Na Figura 31(a) observa-se que o número de grupos se
mantém em oito por toda a execução do algoritmo. Na Figura 31(b)-(f) observa-se o mesmo
padrão já apresentado nas bases anteriores, ou seja, o algoritmo atinge um ponto de estabilidade, após o qual as dinâmicas são aplicadas causando perturbação nos resultados seguida por
um novo período de estabilização. A aplicação das dinâmicas ocorre na iteração de número
300. Nesta iteração percebe-se os picos e vales característicos que representam a exclusão e a
inclusão de grupos, os quais se mantêm até a iteração 350, quando os grupos são novamente
inseridos na base. Após a reinserção, a convergência volta a acontecer, até que se atinja uma
nova estabilização. Apesar de ambos os algoritmos não terem atingido o ótimo, suas soluções
foram bastante próximas.
84
5 CONCLUSÕES E TRABALHOS FUTUROS
A mineração de dados é uma linha de pesquisa bastante ampla, envolvendo tarefas como agrupamento, classificação, estimação, associação e detecção de anomalias. Dentre essas, o
agrupamento de dados vem recebendo grande atenção ao longo dos últimos anos devido ao
grau de complexidade envolvido nesta tarefa e à sua ampla aplicabilidade prática. A maior
parte dos algoritmos que vêm sendo investigados em agrupamento enfatiza a determinação
correta dos agrupamentos da base de dados, considerando, normalmente, que se conhece a
priori o número de grupos da base. Além disso, o foco de aplicação destes algoritmos tem
sido em dados estáticos, ou seja, dados invariantes no tempo.
Dentre os novos algoritmos para agrupamento de dados, muitos são desenvolvidos com alguma inspiração em fenômenos naturais, como redes neurais, sistemas imunológicos e inteligência de enxame. Estes algoritmos apresentam como vantagens, de maneira geral, um processamento paralelo e distribuído, robustez a pequenas perturbações e a realização de atualizações
no processo de busca que seguem heurísticas independentes de informações mais sofisticadas
sobre a função objetivo.
Essa dissertação propôs um algoritmo de agrupamento de dados variantes no tempo baseado
na técnica de Vida Artificial denominada algoritmo de Boids e originalmente proposta para
simular o comportamento de agentes, como pássaros e peixes, se movimentando em um espaço de dimensão 2D ou 3D. O algoritmo proposto aqui foi denominado de dcBoids (Dynamic
Clustering Boids) e possui como características centrais a capacidade de resolver problemas
de agrupamento de dados em ambientes variantes no tempo, a determinação automática do
número de grupos existentes na base, a visualização das relações entre os objetos, e a quantização vetorial da base. O dcBoids explora as propriedades inerentes ao algoritmo de Boids e
modifica as regras de atualização dinâmica da posição dos Boids para que elas incorporem
naturalmente a capacidade dos agentes em representar e agrupar os objetos da base.
O desempenho do dcBoids foi comparado ao clássico algoritmo das k-médias em seis bases de
dados distintas da literatura, tanto em ambientes estáticos, quanto em ambientes dinâmicos.
Neste segundo caso foram testadas dinâmicas envolvendo a inserção e remoção de grupos
inteiros da base, a movimentação de objetos pelo espaço e a inserção e remoção de objetos da
base. Pôde-se observar a competência do algoritmo em resolver os problemas investigados,
85
sendo ele quase insensível as dinâmicas de movimentação, remoção e inserção de objetos da
base. Apenas nos casos em que grupos inteiros são removidos ou inseridos o algoritmo requereu um pouco mais de tempo para se auto-organizar, mas mesmo assim ele foi bem sucedido.
Também foi feita uma análise de sensibilidade paramétrica que verificou, essencialmente, a
influência dos principais parâmetros ajustáveis do dcBoids no tempo de estabilização dos
Boids.
É possível observar que o algoritmo k-médias em geral converge mais rapidamente do que o
dcBoids. Uma das razões para que isso ocorra é o fato de que, a cada iteração, o k-médias analisa cada objeto da base em relação a todos os demais, enquanto no dcBoids cada objeto da
base (Boid) analisa apenas seus vizinhos, a cada iteração. Essa forma de operação do dcBoids
reduz a complexidade do algoritmo a cada passo e insere uma operação local em sua dinâmica, necessária para que o processo auto-organizado de agrupamento considere de forma efetiva a distribuição dos objetos em seu espaço original.
Dentre as muitas frentes de pesquisa que este trabalho abre, podemos destacar a necessidade
de projetar técnicas capazes de identificar automaticamente os grupos propostos pelo dcBoids,
pois, mesmo tendo como saída a visualização 2D ou 3D dos Boids, é necessária a observação
da saída para posterior determinação da quantidade de grupos proposta pelo algoritmo. Além
disso, mais experimentos precisam ser realizados para validar, de forma mais refinada, o desempenho do algoritmo. As dinâmicas de dados testadas aqui também foram poucas e restritas, merecendo um estudo mais aprofundado. Também é necessário tornar o algoritmo mais
escalável, permitindo que um Boid represente múltiplos objetos, reduzindo a necessidade por
recursos computacionais.
86
6 REFERÊNCIAS BIBLIOGRÁFICAS
ABRANTES, A. J.; MARQUES, J. S. A Method for Dynamic Clustering of Data. British
Machine Vision Conference. Southampton: [s.n.]. 1998. p. 155-163.
ADAMI, C. Introduction to artificial life. Pasadena: Springer, 1998.
ADRIAANS, P.; ZANTINGE, D. Data Mining. [S.l.]: Addison-Wesley, 1996.
ALONSO, A. M. et al. Time Series Clustering Based on Forecast Densities. Computational
Statistics & Data Analysis, p. 762-776, 2006.
AMIGÓ, E. et al. A comparison of extrinsic clustering evaluation metrics based on formal
constraints. Information Retrieval, Dordrecht, p. 461-486, 2009.
ARABIE, P.; HUBERT, L. J.; DE SOETE, G. Clustering and Classification. Singapore:
World Scientific, 1996.
ASLAM, J.; PELEKHOV, K.; RUS, D. A practical clustering algorithm for static and
dynamic information organization. Proceedings of the tenth annual ACM-SIAM
symposium on Discrete algorithms. Philadelphia: Society for Industrial and Applied
Mathematics. 1999. p. 51-60.
BABCOCK, B. et al. Models and issues in data stream systems. In: ______ Proceedings of
the twenty-first ACM SIGMOD-SIGACT-SIGART symposium on Principles of
database systems. [S.l.]: ACM, 2002. p. 1-16.
BAJEC, I. L.; MRAZ, M.; ZIMIC, N. Boids With a Fuzzy Way of Thinking. Artificial
Intelligence and Soft Computing, 2003.
BERKHIN, P. A Survey of Clustering Data Mining Techniques. San Jose: Accrue, 2005.
CHARLES, J. S. et al. Flocking-based Document Clustering on the Graphics Processing Unit.
In: ______ Nature Inspired Cooperative Strategies for Optimization (NICSO 2007).
[S.l.]: Springer Berlin / Heidelberg, 2008. p. 27-37.
CHEN, M. S.; HAN, J.; YU, P. S. Data Mining: An Overview from Database Perspective.
IEEE Transactions on Knowledge and Data Engineering, p. 866-883, 1996.
87
CHEN, Y.-W. et al. Genetic Algorithms for Optimization of Boids Model. In: ______
Knowledge-Based Intelligent Information and Engineering Systems. [S.l.]: Springer
Berlin / Heidelberg, 2006. p. 55-62.
CHITTARO, L.; COMBI, C.; TRAPASSO, G. Data mining on temporal data: a visual
approach and its clinical application to hemodialysis. Journal of Visual Languages &
Computing, 2003. 591-620.
CONLEY, J. F. Evolving Boids: Using a Genetic Algorithm to Develop Boid. Proceedings of
the GeoComputation2005: 8yh Conference on GeoComputation. Arbor: [s.n.]. 2005.
CORDUAS, M.; PICCOLO, D. Time Series Clustering and Classification by the
Autoregressive Metric. In: ______ Computational Statistics & Data Analysis. [S.l.]: [s.n.],
2008. p. 1860-1872.
CUI, X.; GAO, J.; POTOK, T. E. A flocking based algorithm for document clustering
analysis. J. Syst. Archit., New York, 52, 2006. 505-515.
CUI, X.; POTOK, T. E. A Bio-inspired Clustering Approach for Dynamic Document
Distributed Analysis. International Journal of Computational Intelligence Theory and
Practice, 2006.
CUI, X.; POTOK, T. E. A Distributed Agent Implementation of Multiple Species Flocking
Model for Document. In: ______ Lecture Notes in Computer Science. [S.l.]: Springer
Berlin / Heidelberg, 2006. p. 124-137.
CUI, Z.; SHI, Z. Boid Particle Swarm Optimization. Int. J. of Innovative Computing and
applications, v. 2, n. 2, p. 77-85, 2000.
DAVID, M. F. Um Algoritmo Bioinspirado para Agrupamento de Dados Dinâmicos. 55
f. Mestrado em Engenharia Elétrica (Escola de Engenharia) - Universidade Presbiteriana
Mackenzie. São Paulo. 2009.
DAVID, M. F.; DE CASTRO, L. N.; SANTOS, D. G. Um Algoritmo de Vida Artificial
para Agrupamento de Dados. XVIII Congresso Brasileiro de Automática - CBA 2010.
Bonito - MS: [s.n.]. 2010.
88
DE CASTRO, L. N. Fundamentals of Natural Computing: Basic Concepts, Algorithms and
Applications. [S.l.]: CRC Press LLC, 2006.
DE CASTRO, L. N. Fundamentals of Natural Computing: An Overview. Physics of Life
Reviews, v. 4, p. 1-36, 2007.
DE CASTRO, L. N. Computação Natural: Uma Jornada Ilustrada. 1ª Edição. ed. São Paulo:
Livraria da Física, 2010. 258 p.
ELMORE, M. T.; REED, J. W.; POTOK, T. E. Real-Time Document Cluster Analysis for
Dynamic Data Sets. In: ______ IPSI-Amalfi. [S.l.]: [s.n.], 2005.
EVERITT, B. S.; LANDAU, S.; LEESE, M. Cluster Analysis. London: Arnold Publishers,
2001.
FALKENAUER, E. Genetic Algorithms and Grouping Problems. Sussex: John Wiley and
Sons Ltd., 1998.
FAYYAD, U. et al. ―Preface‖. Advances in Knowledge Discovery. [S.l.]: MIT Press. 1996a. p. xiii-xiv.
FAYYAD, U.; SHAPIRO, G.; SMYTH, P. From Data Mining to Knowledge Discovery:
An Overview. [S.l.]: MIT Press. 1996b. p. 1-37.
FOLINO, G.; SPEZZANO, G. An Adaptative Flocking Algorithm for Spatial Clustering. In:
______ Parallel Problem Solving from Nature — PPSN VII. [S.l.]: Springer Berlin /
Heidelberg, v. Vol. 2439, 2002. p. 924-933.
GAN, G.; MA, C.; WU, J. Data Clustering: Theory, Algorithms, and. [S.l.]: Society for
Industrial and Applied Mathematics, 2007.
GROTH, R. Data Mining: a hands-on approach for business professionals. [S.l.]: Prentice Hall, 1997.
HAN, J.; KAMBER, M. Data Mining: Concepts and Techniques. [S.l.]: Morgan Kaufman, 2000.
HAYKIN, S. Neural Networks: A Comprehensive Foundation. Old Tappan: Prentice-Hall, 1999.
HULTEN, G.; SPENCER, L.; DOMINGOS, P. Mining time-changing data streams. In:
______ Proceedings of the seventh ACM SIGKDD international conference on
Knowledge discovery and data mining. San Francisco: ACM, 2001. p. 97-106.
89
JAIN, A. K.; MURTY, M. N.; FLYNN, P. J. Data Clustering: A Review. ACM Computing
Suveys, v. Vol. 31, Setembro 1999.
JI, G.; SHEN, H. W. Dynamic View Selection for Time-Varying Volumes. IEEE
Transactions on Visualization and Computer Graphics, 2006. 1109-1116.
JOSHI, A.; RHEINGANS, P. Evaluation of Illustration-Inspired Techniques for
Visualizing Time-Varying Data. Computer Graphics Forum. [S.l.]: [s.n.]. 2008. p. 9991006.
KAUFMAN, L.; ROUSSEEUW, P. J. Finding Groups in Data – An Introduction to Cluster
Analysis. Wiley Series in Probability and Mathematical Statistics, 1990.
KLÖSGEN, W.; ZYTKOW, J. M. Knowledge Discovery in Databases Terminology. In:
______ Advances in Knowledge Discovery and Data Mining. [S.l.]: MIT Press, 1996. p.
573-593.
LAHANE, P. S.; BEDI, R. K.; HALGAONKAR P. Data Stream Mining. International Journal of Advances in Computing and Information Researches. p. 6-10. 2012.
LANGTON, C. Artificial Life. [S.l.]: Addison-Wesley, 1988.
LI, C.; YANG, S. A clustering particle swarm optimizer for dynamic optimization.
Proceedings of the Eleventh conference on Congress on Evolutionary Computation.
Trondheim: IEEE Press. 2009. p. 439-466.
LIU, G. L. Introduction to combinatorial mathematics. [S.l.]: McGraw Hill, 1968.
MANYIKA, J. et al. Big data: The next frontier for innovation, competition, and
productivity. McKinsey Global Institute. [S.l.], p. 156. 2011.
MILIGAN, G. W. Clustering Validation: Results and Implications for Applied Analyses. In:
______ Clustering and Classification. [S.l.]: World Scientific, 1996. p. 341-373.
MITCHELL, T. et al. Machine Learning. Annual Review of Computer Science, 1990. 417433.
MOERE, A. V. Time-Varying Data Visualization Using Information Flocking Boids. IEEE
Symposium on Information Visualization, 2004. 97-104.
90
MOERE, A. V.; LAU, A. In-formation flocking: an approach to data visualization using
multi-agent formation behavior. Proceedings of the 3rd Australian conference on Progress in
artificial life. Gold Coast: Springer-Verlag. 2007. p. 292-304.
MUNOZ, Y. J.; DE CASTRO, L. N. Self-organisation and emergence in artificial life:
concepts and illustrations. Journal of Experimental and Theoretical Artificial Intelligence,
p. 1-20, 2009.
NEAL, M. An artificial immune system for continuous analysis of time-varying data.
Proceedings of the 1st International Conference on Artificial Immune Systems
(ICARIS), Aberystwyth, p. 76-85, 2002.
OLDMEADOW, J.; RAVINUTALA, S.; LECKIE, C. Adaptive Clustering for Network
Intrusion Detection. In: ______ Lecture Notes in Computer Science. [S.l.]: [s.n.], 2004. p.
255-259.
PARK, G.; BAEK, Y.; LEE. A Ranking Algorithm Using Dynamic Clustering for ContentBased Image Retrieval. In: ______ Lecture Notes in Computer Science. [S.l.]: [s.n.], 2002.
p. 328-337.
RAY, T. S. An Evolutionary Approach to Synthetic Biology. Artificial Life, v. 1, p. 179-209,
1994.
REYNOLDS, C. W. Flocks, Herds, and Schools: A Distributed Behavioral Model. ACM
Computer Graphics, v. Vol. 21, 1987.
RONALD, E. M. A.; SIPPER, M.; CAPCARRÈRE, M. S. Design, observation, surprise! A
test of emergence. Artificial Life, v. 5, p. 225-239, 1999.
SHEN, H. W. Visualization of Large Time-Varying Scientific Data. Journal of Physics,
2006. 535-544.
STILL, S.; BIALEK, W. How Many Clusters? An Information-Theoretic Perspective. Neural
Computing, Cambridge, 2004. 2483-2506.
VAN VAERENBERGH, S.; ESTÉBANEZ, E.; SANTAMARÍA, I. A Spectral Clustering
Algorithm for Decoding Fast Time-Varying BPSK MIMO. 15th European Signal
Processing Conference (EUSIPCO. Poznan, Poland: [s.n.]. 2007.
91
VARVELLO, M.; BIERSACK, E.; DIOT, C. Dynamic Clustering in Delaunay-Based P2P
Networked Virtual Environments. Proceedings of the 6th ACM SIGCOMM workshop on
Network and system support for games. [S.l.]: [s.n.]. 2007. p. 105-110.
VEENHUIS, C.; KÖPPEN, M. Data Swarm Clustering. In: ______ Swarm Intelligence in
Data Mining. [S.l.]: Springer Berlin / Heidelberg, 2006. p. 221-241.
WESTPHAL, C.; BLAXTON, T. Data Mining Solutions: Methods and Tools for Solving
Real-World Problems. [S.l.]: John Wiley & Sons, Inc., 1998.
WITTEN, I. H.; FRANK, E. Data Mining – Practical Machine Learning Tools and
Techniques. [S.l.]: Morgan Kaufmann Publishers, 2011.
WITTMAN, T. Time-Series Clustering and Association Analysis of Financial Data.
Trabalho de conclusão de curso (Data Mining) - University of Minnesota, Los Angeles, p.
21, 2002.
YIN, Z. X.; CHIANG, J. H. Novel Algorithm for Coexpression Detection in Time-Varying
Microarray Data Sets. In: ______ IEEE/ACM Transactions on Computational Biology
and Bioinformatics. [S.l.]: [s.n.], 2008. p. 120-135.
YOUSSEF, S. M.; RIZK, M.; EL-SHERIF, M. Dynamically Adaptative Data Clustering
Using Intelligent Swarm-like Agents. International Journal of Mathematics and
Computers in Simulation, Wiscosin, 2007. 213-219.
ZAMIR, O.; ETZIONI, O. Grouper: A Dynamic Clustering Interface to Web Search Results.
Proceeding of the eighth international conference on World Wide Web. [S.l.]: [s.n.]. 1999. p.
1361-1374.
ZHAO, Y.; KARYPIS, G. Criterion Function for Document Clustering. Dissertação de
Doutorado - (University of Minnesota). [S.l.]. 2002.
ZHAO, Y.; KARYPIS, G. Empirical and Theoretical Comparisons of Selected Criterion
Functions for Document Clustering. Machine Learning, Hingham, p. 311-331, 2004.
Download