Professional Documents
Culture Documents
de graduao apresentada ao de Cincia da Computao da Federal de Lavras como parte das curso de Cincia da Computao para ttulo de Bacharel em Cincia da
de graduao apresentada ao de Cincia da Computao da Federal de Lavras como parte das curso de Cincia da Computao para ttulo de Bacharel em Cincia da
Monografia de graduao apresentada ao Departamento de Cincia da Computao da Universidade Federal de Lavras como parte das exigncias do curso de Cincia da Computao para obteno do ttulo de Bacharel em Cincia da Computao.
Aprovada em 19/12/2007
Dedico esse trabalho aos meus pais, Catarina e Dilson; minha namorada, Juliana; e meu irmo, Armando.
Agradecimentos
Agradeo aos meus pais, Dilson e Catarina, por todo o apoio que me deram. Agradeo minha namorada, Juliana, pelas horas de descontrao e carinho. Agradeo a todos os professores por todo o conhecimento que me passaram. Agradeo especialmente o professor Ahmed, pela orientao nesse trabalho.
vi
SUMRIO
1 INTRODUO............................................................................................................... 1 1.1 Contextualizao e Motivao ................................................................................. 1 1.2 Objetivos................................................................................................................... 2 1.3 Tipo de Pesquisa....................................................................................................... 2 1.4 Procedimentos Metodolgicos ................................................................................. 3 2 CLUSTERIZAO ........................................................................................................ 4 2.1 Introduo................................................................................................................. 4 2.2 Clusterizao ............................................................................................................ 4 2.3 Definio Formal...................................................................................................... 5 2.4 Aplicaes ................................................................................................................ 5 2.5 Medidas de Similaridade .......................................................................................... 6 2.6 Mtodos de Clusterizao......................................................................................... 7 2.7 Concluso ............................................................................................................... 11 3 COMPUTAO EVOLUTIVA ................................................................................... 13 3.1 Introduo............................................................................................................... 13 3.2 Algoritmos Evolutivos............................................................................................ 13 3.3 Algoritmo Gentico ................................................................................................ 15 3.4 Estratgias de Evoluo.......................................................................................... 17 3.5 Programao Evolutiva........................................................................................... 18 3.6 Programao Gentica............................................................................................ 19 3.7 Concluso ............................................................................................................... 21 4 PARTICLE SWARM OPTIMIZATION (PSO) ........................................................... 22 4.1 Introduo............................................................................................................... 22 4.2 Origem .................................................................................................................... 22 4.3 Particle Swarm Optimization ................................................................................. 23 4.4 Classificao........................................................................................................... 24 4.5 Concluso ............................................................................................................... 25 5 MTODOS DE CLUSTERIZAO USANDO O PSO.............................................. 26 5.1 Introduo............................................................................................................... 26 5.2 Clusterizao com o PSO ....................................................................................... 26 5.3 O mtodo proposto por Merwe e Engelbrecht........................................................ 28 5.3.1 Introduo........................................................................................................ 28 5.3.2 O Algoritmo..................................................................................................... 28 5.3.3 A Funo de Avaliao e modificaes propostas .......................................... 29 5.4 Concluso ............................................................................................................... 30 6 RESULTADOS ............................................................................................................. 31 6.1 A Implementao.................................................................................................... 31 6.2 Resultados............................................................................................................... 34 6.3 Concluso ............................................................................................................... 39 7 CONCLUSO E TRABALHOS FUTUROS ............................................................... 40 8 REFERNCIAS BIBLIOGRFICAS .......................................................................... 41
vii
Lista de Figuras
Figura 3-1 Exemplo de representao em rvore ............................................................. 20 Figura 6-1 Parmetros do Algoritmo................................................................................ 31 Figura 6-2 Visualizao dos grupos criados pelo algoritmo ............................................ 32 Figura 6-3 Fitness da melhor partcula ao longo das iteraes ........................................ 32 Figura 6-4 Resultados do Algoritmo ................................................................................ 33 Figura 6-5 Interface do programa..................................................................................... 33 Figura 6-6 Agrupamentos encontrados pelas 3 funes de avaliao para o benchmark Iris........................................................................................................................................ 37 Figura 6-7 Agrupamentos encontrados pelas 3 funes de avaliao para o benchmark Wine. .................................................................................................................................... 37 Figura 6-8 Agrupamentos encontrados pelas 3 funes de avaliao para o benchmark Glass. ................................................................................................................................... 38 Figura 6-9 Convergncia do Algoritmo utilizando as 3 Funes..................................... 38
viii
Lista de Tabelas
Tabela 6-1 Caractersticas dos benchmarks...................................................................... 34 Tabela 6-2 Comparao entre o acerto mdio das execues utilizando as funes de fitness F1, F2 e F3 ............................................................................................................... 36 Tabela 6-3 Comparao entre a distncia intra-cluster das execues utilizando as funes de fitness F1, F2 e F3 ............................................................................................. 36 Tabela 6-4 Comparao entre a distncia inter-cluster das execues utilizando as funes de fitness F1, F2 e F3 ............................................................................................. 36
ix
1 INTRODUO
1.1 Contextualizao e Motivao
A quantidade de informao disponvel e coletada hoje em dia maior do que a capacidade humana de analisar e extrair conhecimento a partir dela. As grandes corporaes possuem uma quantidade imensa de dados inutilizados armazenados em seus bancos de dados, o conhecimento escondido nesses dados poderia ser muito til aos objetivos da empresa. O aumento dramtico na quantidade de dados necessitando de anlise levou ao desenvolvimento de novas tcnicas capazes de extrair conhecimento de modo automtico e eficiente (COHEN e CASTRO 2006). Data Mining o nome usado para descrever o esforo computacional para se processar grandes quantidades de dados armazenadas em bancos de dados, com a finalidade de se obter conhecimento valioso e em alto nvel (SOUZA et al., 2003). Segundo Cohen e Castro (2006), Clustering, tambm conhecido como Agrupamento ou Clusterizao, uma das principais tarefas de descoberta de conhecimento a partir de bancos de dados, e consiste em encontrar grupos em um certo conjunto de dados. Cada grupo contm objetos similares entre si e diferentes daqueles em outros grupos. Para Merwe e Engelbrecht (2003), Data Clustering o processo de reunir em grupos, vetores de dados multidimensionais similares. Desde o incio da infncia, aprende-se a distinguir entre gatos e cachorros, ou plantas e animais, melhorando continuamente esquemas de classificao subconscientes (HAN e KAMBER, 2001). Data Clustering tem aplicaes em diversas reas como Biologia, Pesquisa de Mercado, Processamento de Imagens, Reconhecimento de Padres, Geografia, e muitas outras. O Particle Swarm Optimzation (PSO) um mtodo de otimizao inicialmente proposto por Kennedy e Eberhart (1995) baseado no comportamento social de populaes. O mtodo foi descoberto atravs da simulao de um modelo social simplificado, onde a inteno original era simular graficamente a graciosa e imprevisvel coreografia de um bando de pssaros. O mtodo de otimizao consiste basicamente em vrias partculas, ou seja, solues potenciais, que se movimentam no espao de busca com base em sua melhor posio
e na melhor posio em sua vizinhana. O PSO pode ser usado para resolver uma vasta faixa de diferentes problemas de otimizao, incluindo a maioria dos problemas que podem ser resolvidos usando o Algoritmo Gentico (BERGH, 2001). Para Kennedy e Eberhart (1995), o algoritmo est obviamente relacionado Computao Evolutiva e posicionado em algum lugar entre os Algoritmos Genticos e a Programao Evolutiva. O algoritmo bastante novo e vem sendo modificado e aplicado com sucesso a diversos problemas de otimizao. Recentemente surgiram na literatura algumas abordagens do PSO na Clusterizao de Dados com resultados bastante satisfatrios. Sua aplicao na Clusterizao de Dados recente, assim suas abordagens ainda podem ser trabalhadas, contribuindo para melhores resultados.
1.2 Objetivos
Este trabalho tem como objetivo a analise o PSO na Clusterizao de Dados, dando uma descrio das principais tcnicas existentes para a soluo do problema. Alm disso, uma das tcnicas analisada e algumas melhorias so propostas. Para que seja possvel uma anlise e comparao da tcnica implementada e das melhorias, so feitos vrios testes e experimentos utilizando vrios benchmarks tradicionais da rea como Iris, Glass e Wine. Espera-se que esse trabalho possa contribuir a consolidao do PSO como uma importante ferramenta na otimizao e Clusterizao de Dados.
2 CLUSTERIZAO
2.1 Introduo
Nesse captulo, ser abordado o problema de Clustering, ou Clusterizao, no que consiste o problema, quais so suas aplicaes, como avaliar a semelhana entre os dados e quais as principais tcnicas para a soluo do problema.
2.2 Clusterizao
De um modo mais grosseiro, clusterizar corresponde ao processo de agrupar os elementos de um conjunto de modo que os elementos de um determinado grupo, ou cluster, sejam mais parecidos entre si do que com elementos dos outros grupos. Cole (1998) define Clusterizao como um procedimento exploratrio que busca uma estrutura natural dentro de um conjunto de dados. Os dados so arranjados com base na similaridade entre eles, sem nenhuma suposio sobre a estrutura dos dados. A Clusterizao uma tarefa prvia Classificao, pois antes de classificar, preciso ter as classes s quais os dados devem ser associados. Aps o agrupamento, possvel analisar os elementos de cada cluster, identificando assim as caractersticas semelhantes aos elementos do cluster, os clusters podem ento ser nomeados, dando origem classes. Com a existncia dessas classes somos capazes de classificar um novo elemento pertencente ao universo considerado ao receb-lo (CARLANTONIO, 2001). Clusterizao de Dados uma disciplina cientfica recente sob um vigoroso desenvolvimento. Existe uma grande quantidade de artigos espalhados em peridicos, a maioria na rea de Data Mining, Estatstica, Aprendizagem de Mquina, Bancos de Dados Espaciais, Biologia, Marketing, etc. Devido a grande quantidade de dados coletados e armazenados em bancos de dados, a Anlise de Cluster recentemente se tornou um tpico bastante ativo dentro da pesquisa em Minerao de Dados (HAN e KAMBER, 2001). Ankerst et al. (1999) identificam trs motivos que fazem com que a efetividade dos algoritmos de Clusterizao seja um problema. Primeiro, quase todos os algoritmos de Clusterizao precisam de valores de entrada que so difceis de se determinar, especialmente para conjunto de dados do mundo real que contm muitos atributos. Segundo, os algoritmos so muito sensveis a esses parmetros de entrada, e
frequentemente produzem particionamentos muito diferentes dos dados, mesmo para pequenos ajustes dos parmetros de entrada. Terceiro, conjuntos de dados
multidimensionais do mundo real tm uma distribuio muito complexa que pode no ser descoberta usando apenas um nico ajuste de parmetro global.
2.4 Aplicaes
A Clusterizao til nas mais diversas reas e com as mais diversas finalidades. Por Exemplo: Cole (1998) cita vrios trabalhos em que a Clusterizao j foi usada. Na Psiquiatria, a Clusterizao foi usada para o desenvolvimento de uma classificao para a depresso. Em Pesquisa de Mercado, para a identificao de conjuntos homogneos de mercados de teste. Na Arqueologia, Clusterizao foi aplicada ao problema de classificar machados de mo ingleses. No Reconhecimento de Padres, para segmentao de imagens. Na Medicina, como mtodo de aquisio de conhecimento para sistemas de diagnstico. Ng e Han (1994), dizem que a Clusterizao tem sido aplicada nos ltimos trinta anos em reas como Medicina, para classificao de doenas; na Qumica, para agrupamento de compostos; Estudos Sociais, para classificao de estatsticas. Ankerst et al. (1999), citam como exemplo a criao de mapas temticos em sistemas de informaes geogrficas; Clusterizao de um banco de dados de web-logs para descobrir grupos de padro de acesso similares que podem corresponder a diferentes perfis de usurios.
Han e Kamber (2001), dizem que a Clusterizao pode ser usada na rea de negcios para ajudar empresrios a descobrir grupos distintos em suas bases de clientes e caracterizar grupos de clientes baseado em padres de compra. Na Biologia, pode ser usado para derivar taxonomias de plantas e animais, categorizar genes com funcionalidades semelhantes e analisar melhor estruturas inerentes s populaes. Na Geografia, para a identificao de reas semelhantes em bancos de dados de observao da Terra e identificao de grupos de casas em uma cidade de acordo com tipo, valor e localizao geogrfica. Pode ajudar tambm na classificao de documentos na internet. Alm disso, tambm ressaltam que a Clusterizao pode servir como uma etapa de pr-processamento para outros algoritmos, como os de classificao e caracterizao, operando nos clusters identificados.
d(Xi, X j ) =
(X
t =1
it
X jt ) 2 ,
a distncia Euclidiana mede a distncia entre os pontos atravs de uma linha reta. Outro mtodo bastante utilizado a distncia Manhattan (ou City Block) definida por
d ( X i , X j ) = | X it X jt | .
t =1
d ( X i , X j ) = ( ( X it X jt ) n )1 / n .
t =1
Han e Kamber (2001) ainda ressaltam que nem todos os atributos devem ser includos na Clusterizao. Um atributo sem significncia pior do que intil, pois, pode
prejudicar o resultado final. Alm disso, podem ser atribudos pesos s variveis de acordo com sua importncia. A distncia Euclidiana ponderada pode ser calculada como,
d(Xi , X j ) =
w (X
t =1 t
it
X jt ) 2 ,
onde wt um peso atribudo varivel t. O mesmo pode ser feito com Manhattan e
Minkowski.
importante salientar que a unidade de medida pode afetar no Clustering. Por exemplo, a alterao de metros para quilmetros ou de gramas para quilos pode afetar o
Clustering. Para evitar esse problema com as unidades de medida, os dados deveriam ser
padronizados de modo que as variveis tivessem pesos iguais. Uma das solues transformar as medidas em variveis sem escala, o que pode ser feito da seguinte maneira: 1. Calcular o desvio absoluto mdio, sf:
sf = 1 (| x1 f m f | + | x 2 f m f | + K + | x nf m f |) , n
z if =
xif m f sf
1. Mtodos de Particionamento:
Dado um conjunto de dados de tamanho n e o nmero de clusters k, um algoritmo de Particionamento constri k parties de dados, onde k n. O mtodo consiste em criar um particionamento inicial que vai sendo refinado atravs de uma tcnica de recolocao iterativa que tenta melhorar o particionamento movendo
dados de uma partio para outra. O critrio geral de um bom particionamento que dados do mesmo cluster estejam prximos e dados de clusters diferentes estejam longe. Mtodos por particionamento tm sido bastante focados devido boa qualidade dos clusters produzidos (CARLANTONIO, 2001). Percorrer todas as parties possveis buscando pelo timo local invivel mesmo para bancos de dados de tamanho razovel, por isso mtodos heursticos so mais indicados. Os dois mtodos mais populares so os algoritmos k-means e o algoritmo k-medoids. Merwe e Engelbrecht (2003) explicam que o algoritmo k-means agrupa dados em um nmero de clusters pr-definido, e que os clusters so representados por um vetor centride, que representa o ponto central daquele cluster. O algoritmo
2. Mtodos Hierrquicos:
Karapys et al. (1999) explicam que algoritmos de Clusterizao Hierrquicos produzem uma seqncia aninhada de clusters, com um cluster que inclui todos os outros no topo e pequenos clusters de apenas um objeto no piso. Criando uma decomposio hierrquica do conjunto de dados. Essa decomposio hierrquica pode ser representada atravs de uma estrutura em rvore chamada Dendograma (CARLANTONIO, 2001). Baseado em como a estrutura criada, os mtodos de Clusterizao Hierrquicos podem ser classificados como Aglomerativos ou Divisivos (HAN e KAMBER, 2001).
Os mtodos Aglomerativos, tambm chamados de bottom-up, iniciam com cada objeto do conjunto de dados representando um cluster. A cada passo o algoritmo funde dois clusters que so mais similares. O algoritmo prossegue at que todos os clusters tenham sido fundidos em um cluster final, o nvel mais alto da hierarquia, ou at que um nmero total clusters desejado tenha sido alcanado ou a distncia entre os dois clusters mais prximos esteja acima de um limite estipulado (HAN e KAMBER, 2001; KARAPYS et al., 1999). Os clusters so fundidos baseados na similaridade, distncia entre eles, que geralmente calculada atravs da distncia entre os centros dos clusters, ou atravs da distncia do par de dados mais prximo, ou ainda atravs da mdia da distncia entre todos os pares de dados dos dois clusters. Os mtodos Divisivos, tambm chamados de top-down, partem do nvel mais alto da hierarquia, ou seja, um nico cluster que contm todos os objetos e vai dividindo esse cluster em clusters menores at que cada cluster contenha apenas um objeto ou algum outro critrio seja alcanado (HAN e KAMBER, 2001; CARLANTONIO, 1999). Han e Kamber (2001) afirmam ainda, que pode ser vantajoso combinar mtodos hierrquicos com recolocao iterativa. Primeiro o mtodo hierrquico usado e depois refinado utilizando a recolocao iterativa. Como algoritmos desse tipo citam BIRCH e CURE.
Ankerst et al. (1999), Han e Kamber (2001) citam o mtodo DBSCAN onde a idia bsica que para cada ponto em cluster sua vizinhana de raio () deve conter um nmero mnimo de pontos (MinPts), onde e MinPts so parmetros de entrada.
10
Segundo Yeung et al. (2001), algoritmos de Clusterizao Baseados em Modelos assumem que os dados so gerados atravs de uma mistura finita de distribuies de probabilidade subjacentes. Han e Kamber (2001) afirmam que os Mtodos Baseados em Modelos possuem duas abordagens principais: abordagem Estatstica e abordagem Rede Neural.
2.7 Concluso
Nesse captulo, foi apresentado o problema de Clusterizao, ou agrupamento, que consiste em encontrar grupos em um conjunto de dados. Na seo 2.2 o problema foi discutido, juntamente com sua importncia e dificuldades dos algoritmos de Clusterizao, como por exemplo encontrar o nmero correto de clusters. Na seo 2.3 foi apresentada a definio formal do problema. Foi visto, na seo 2.4, que o problema de Clusterizao tem aplicaes em diversas reas como Medicina, Biologia, Reconhecimento de Padres, geografia, etc. Na seo 2.5, foi demonstrado como medir a similaridade entre dois dados e como normalizar os dados para que a unidade de medida no tenha efeito durante o agrupamento. Finalmente, na seo 2.6, foi visto que os mtodos de Clusterizao podem ser divididos em: Mtodos de Particionamento, Hierrquicos, Baseados em Densidade,
11
Baseados em Grid e Baseados em Modelos. Alguns mtodos se encaixam em mais de um dos tipos.
12
3 COMPUTAO EVOLUTIVA
3.1 Introduo
Computao Evolutiva uma rea de pesquisa dentro da computao que se inspira no processo de evoluo natural. Bergh (2001) afirma que a Computao Evolutiva define vrios mtodos projetados para simular a evoluo, esses mtodos so todos baseados em populao e usam de uma combinao de variao aleatria e seleo para resolver problemas. Eiben e Smith (2003) explicam que no surpresa que cientistas da computao se inspirem no processo de evoluo natural, j que o poder da evoluo natural evidente nas diversas espcies que existem em nosso mundo. De modo simplificado, evoluo natural pode ser descrita da seguinte maneira: Um ambiente ocupado por uma populao de indivduos que lutam por sobrevivncia e reproduo. A aptido, ou fitness, desses indivduos est relacionada com sua capacidade de atingir seus objetivos, quanto melhor o indivduo estiver adaptado ao ambiente, mais chances ter de sobreviver e se multiplicar. No contexto de um processo estocstico de soluo de problemas por tentativa e erro, temos uma coleo de solues candidatas. Seu
fitness (ou seja, o quo bem resolve o problema) determina suas chances de serem
mantidas e usadas como base para a construo de novas solues candidatas (EIBEN e SMITH, 2003). O princpio fundamental por trs da evoluo o da otimizao, com o objetivo de sobrevivncia das espcies. Isso no significa porm, que os mtodos Evolutivos s possam ser aplicados a problemas de otimizao. Vrias categorias foram identificadas como prosperamente tratveis pelos mtodos evolutivos: Planejamento, Projeto, Simulao e Identificao, Controle, Classificao (BERGH, 2001).
escolhidos para dar origem a prxima gerao atravs da recombinao e/ou mutao. O processo repetido at que um candidato com a qualidade desejada seja encontrado ou um limite computacional pr-estabelecido seja alcanado. Nesse processo duas foras formam a base dos sistemas evolutivos:
Inicialize a populao com solues candidatas aleatrias Avalie cada candidato Repita at que a condio de trmino seja satisfeita Selecione os pais Recombine os pais Mute a descendncia gerada Avalie os novos candidatos Selecione os indivduos para a prxima gerao
Eiben e Smith (2003) explicam que possveis solues no contexto original do problema so chamados de fentipo, enquanto a sua codificao, sua representao dentro dos Algoritmos Genticos chamada de gentipo. A definio da representao dos indivduos, a estrutura de dados dos indivduos, o primeiro passo na definio de um Algoritmo Evolutivo. O papel da Funo de Avaliao, tambm conhecida com Funo Fitness, avaliar a qualidade dos indivduos. Tipicamente essa funo mede a qualidade dos gentipos baseada em seu fentipo, ou seja, mede a qualidade da representao do indivduo baseado em quo boa a soluo que ele representa.
14
Os Operadores de Variao, ou seja, Operadores de Mutao e Recombinao so os responsveis pela criao de novas solues a partir das existentes. O Operador de Mutao um operador que aplicado a somente um indivduo e seu papel o de introduzir diversidade populao, aumentando a rea efetiva do espao de busca que o algoritmo considera (BERGH, 2001). O Operador de Recombinao, ou Crossover, junta a informao contida em dois gentipos pais em um ou dois gentipos filhos. Atravs da Recombinao de duas solues com boas caractersticas podemos criar uma nova soluo que combine as boas caractersticas de suas solues pai. A Seleo responsvel por elevar a qualidade da populao. A Seleo dos Pais permite que melhores indivduos se tornem pais da prxima gerao, porm, indivduos de menor qualidade tambm possuem chance de se tornarem pais. A Seleo dos Sobreviventes, tambm conhecida como Substituio, responsvel por selecionar quais os indivduos estaro na prxima gerao. Ao contrrio da Seleo dos Pais, que estocstica, a Seleo dos Sobreviventes geralmente determinstica, por exemplo, selecionando os indivduos de maior qualidade entre os pais e filhos ou substituindo os pais pela nova gerao. O tipo de recombinao e mutao, tipo de seleo de pais e sobreviventes, representao dos indivduos determinam o tipo de Algoritmo Evolutivo: Algoritmo Gentico, Estratgias de Evoluo, Programao Evolutiva e Programao Gentica.
15
enfatiza uma recombinao geneticamente inspirada como meio de gerar novas solues candidatas (BERGH, 2001; EIBEN e SMITH, 2003). Embora o Algoritmo Gentico Clssico represente os indivduos atravs de strings de bits, elas podem no ser a que se encaixa melhor ao problema. Dependendo do problema podem tambm ser usadas representaes com inteiros, reais, permutaes, rvores e outras. Bergh (2001) aponta que a desvantagem das representaes no binrias que elas requerem operadores de recombinao e mutao especficos representao. Os operadores de recombinao aplicados s strings binrias mais populares so os operadores: Crossover de um Ponto e Crossover de n Pontos. Dois pais so selecionados para a recombinao e segmentos de suas strings de bits so trocados para que sejam formados dois novos filhos. No Crossover de um Ponto, um ponto das strings escolhido aleatoriamente e os bits aps esse ponto so trocados. No Crossover de n pontos,
16
indivduos da prxima gerao so escolhidos a partir dos pais e dos filhos, dentre esses mtodos temos o Elitismo, que consiste em inserir o melhor indivduo da atual gerao na nova gerao caso no exista nenhum indivduo na descendncia com um fitness maior (EIBEN e SMITH, 2003).
Z ~ N (0, I n )
multiplicado por um escalar > 0, onde In uma matriz identidade de tamanho n. O valor
X t +1 =
{X X
t t
+ t Zt
se f ( X t + t Z t ) > f ( X t ) seno
onde t denota a iterao e Zt uma seqncia de vetores aleatrios normalmente distribudos. O parmetro t , que controla a fora da mutao, ajustado conforme a regra de 1/5 de sucesso que define que a taxa de mutaes com sucesso deveria ser de 1/5. Assim, se a taxa for maior que 1/5 o valor deve ser aumentado para fazer uma busca maior no espao, se o valor for menor que 1/5 o valor deve ser diminudo pra concentrar mais a busca em volta da soluo atual (RUDOLPH, 1997; EIBEN e SMITH, 2003). Segundo Eiben e Smith (2003), as estratgias evolutivas so usadas para otimizao de parmetros contnuos, com nfase na mutao para a criao de filhos. A representao padro dos indivduos atravs de um vetor X n de valores reais bastante direta j que na otimizao de parmetros, o problema pode ser dado como uma funo objetivo n . Porm, nas Estratgias Evolutivas contemporneas os
17
indivduos contm tambm vrios parmetros que controlam sua mutao, parmetros de estratgia. Esses parmetros podem ser divididos em dois conjuntos, o conjunto , que so os tamanhos dos passos de mutao e o conjunto de ngulos que permitem a rotao da elipse no espao de busca. Os indivduos so mutados ento de acordo com uma distribuio normal com mdia zero e uma matriz de covarincia C, construda a partir de
18
mudar uma transio de estados, adicionar um estado, remover um estado existente ou mudar o estado inicial. Operadores de mutao so escolhidos de acordo com uma distribuio de probabilidade que pode ser uniforme ou no. O nmero de operaes de mutao aplicadas cada filho pode ser de acordo com uma distribuio de probabilidade ou definido previamente. Um filho criado para cada mquina da populao. As melhores mquinas so escolhidas entre os pais e filhos como membros da prxima gerao (PORTO, 1997). Por motivos histricos a Programao Evolutiva associada com tarefas de predio e o uso de mquinas de estado finitas como representao. Porm, a partir dos anos 90 surgiram diversas variantes para otimizao de parmetros de valores reais. A representao ento, deve ser derivada de acordo com o problema a ser tratado, e os operadores de mutao devem ser criados de acordo com a representao. Por ser geralmente mais utilizada na otimizao de funes da forma f : n , os indivduos assumem a forma x1 ,K, x n n . Atualmente freqentemente usada a auto-adaptao dos parmetros de mutao, por isso a representao padro dos indivduos da Programao Evolutiva tem a forma x1 ,K, x n , 1 ,K, n . Na variante com auto-adaptao dos parmetros de estratgia, a mutao transforma um cromossomo x1 ,K, x n , 1 ,K, n em x1 ' ,K , x n ' , 1 ' ,K, n ' , onde
i' = i (1 + N (0,1)),
xi' = xi + i' N i (0,1).
N(0,1) o resultado de um valor aleatrio retirado de uma distribuio normal com
media 0 e desvio padro 1, e 2 .
Na Programao Evolutiva no h recombinao, cada indivduo cria um filho atravs da mutao e a seleo dos sobreviventes ( + ) (PORTO, 1997; EIBEN e
SMITH, 2003).
19
atravs da evoluo por um programa, que quando executado produza o melhor fitness, no espao de programas possveis. A populao de indivduos da Programao Gentica constituda de vrios programas, os programas da populao inicial so gerados aleatoriamente. Operadores genticos so usados para criar novos programas a partir dos programas da gerao atual selecionados como pais. Os indivduos sobreviventes so selecionados e o processo se repete at que seja encontrado um programa correto ou algum outro critrio de parada (KINNEAR, 1997). Kinnear (1997) define que a Programao Gentica, em um nvel mais bsico, um Algoritmo Gentico com escolhas incomuns para a representao dos indivduos, operadores genticos para essa representao e as tcnicas de avaliao do fitness. Na Programao Gentica os indivduos so representados por programas. No existe uma forma nica que seja usada por todas as implementaes de Programao Gentica, mas a maioria das implementaes usam uma estrutura em rvore. Na Figura 3.2 pode ser visto um exemplo de representao em rvore para a expresso (4 - a) + (5 * (b + 5))
Os ns folhas so os Terminais, ou seja, variveis e constantes, enquanto os ns internos so Funes, que recebem entradas e produzem sadas, mas no somente isso, podem tambm ser loops e instrues condicionais (KINNEAR, 1997; EIBEN e SMITH, 2003). A representao do programa (Terminais e Funes) deve ser projetada juntamente com uma Mquina Virtual para interpretar os programas gerados. A recombinao na Programao Gentica cria duas rvores filhas a partir de duas rvores pais. Segundo Eiben e Smith (2003) a implementao mais comum o 20
Cruzamento de Sub-rvore, onde uma sub-rvore escolhida em cada rvore pai e as subrvores so trocadas uma pela outra para gerar os filhos. A mutao tpica substitui uma sub-rvore que comea em um n aleatrio por uma nova sub-rvore nova gerada aleatoriamente. Eiben e Smith (2003) explicam que os pais geralmente so selecionados proporcionalmente ao fitness. Porm, em grandes populaes usado um mtodo chamado
3.7 Concluso
A Evoluo natural talvez seja o mecanismo de soluo de problemas mais eficiente que exista, por isso a computao busca se inspirar nesse processo. Esse captulo tratou da Computao Evolutiva, rea da computao que se inspira na evoluo natural. Na seo 2.2 apresentado o processo bsico dos Algoritmos Evolutivos: a partir de populao de solues potenciais, so selecionadas algumas para dar origem s novas solues. Aps isso, so selecionadas as solues que continuaro a existir no algoritmo. O processo se repete at uma condio de trmino ser satisfeita. As novas solues so criadas utilizando-se operadores de recombinao e mutao e as selees so feitas com base na capacidade de cada soluo em resolver o problema. Os quatro tipos bsicos de Algoritmos Evolutivos so: Algoritmo Gentico, Estratgias de Evoluo, Programao Evolutiva e Programao Gentica, apresentados nas sees 3.3, 3.4, 3.5 e 3.6, respectivamente. Os algoritmos diferem nos tipos de recombinao, mutao, seleo, representao e finalidade.
21
4.2 Origem
O PSO foi criado por Kennedy e Eberhart (1995), o algoritmo nasceu da simulao de um ambiente social simplificado onde a inteno era simular a movimentao de um bando de pssaros. Kennedy e Eberhart (1995) notam que algumas simulaes propostas anteriormente se baseiam na distncia entre os indivduos, onde se imagina que a sincronia do comportamento do grupo est relacionada aos esforos dos indivduos em manter uma distncia tima entre si e seus vizinhos. Segundo os autores, sensato supor, com certa abstrao, que algumas das mesmas regras fundamentam o comportamento social animal, incluindo rebanhos, cardumes, bandos e at mesmo humanos. Alm disso, se afirma que o compartilhamento social de informaes oferece uma vantagem evolutiva, indivduos podem se beneficiar das descobertas e experincias passadas de outros indivduos. Ressalta-se tambm que os humanos tendem a ajustar crenas e atitudes conforme outros humanos e usam experincias passadas na tomada de decises e comportamentos.
xi Posio atual da partcula. vi Velocidade Atual da partcula. yi Melhor posio pessoal da partcula (Melhor posio em que a
partcula j esteve). A cada iterao a partcula tem sua velocidade ajustada de acordo com a seguinte equao:
(4.1) partcula.
-sima
A velocidade atualizada separadamente para cada dimenso k i..n. r1 e r2 so valores aleatrios, r1 ~ U(0,1) e r2 ~ U(0,1) que contribuem para a natureza estocstica do algoritmo. c1 e c2, 0 < c1,c2 2, so coeficientes de acelerao, c1 regula o passo mximo na direo da melhor posio pessoal e c2 na direo da posio global (gbest) ou da vizinhana (lbest) (BERGH, 2001). O termo c1r1,k(t)(yi,k(t) xi,k(t)) leva em conta as experincias passadas da partcula, associado a cognio. O termo c2r2,k(t)(k(t) xi,k(t)) o termo social, pois a partcula se inspira na melhor soluo ao seu redor (BERGH, 2001; COHEN e CASTRO, 2006). Na verso gbest do PSO, representa a melhor posio j encontrada por qualquer uma das partculas (global best), Bergh (2001) explica que essa verso oferece uma taxa de convergncia mais rpida, porm menos robusta. Na verso lbest, a populao dividida em vizinhanas, e j representa a melhor posio encontrada na vizinhana da partcula j (local best), para uma populao de tamanho s e vizinhana de tamanho l as equaes so atualizadas da seguinte maneira:
N i = { y i l (t ), y i l +1 (t ), K , y i (t ), K , y i +l 1 (t ), y y +l (t )}
(4.3)
23
Usando o smbolo f para denotar a funo objetivo, a melhor posio pessoal da partcula i calculada como:
yi(t + 1) = yi(t) se f(xi(t + 1)) >= f(yi(t) ) xi(t + 1) se f(xi(t + 1)) < f(yi(t) )
O algoritmo consiste de repetidas aplicaes das equaes de atualizao apresentadas:
i [1..s ] xi = yi
f ( xi ) < f ( y i )
Ento
Se yi < Ento = yi
xmax], para todo i 1..s e j 1..n . As velocidades vi,j geralmente tambm so inicializadas
aleatoriamente em um intervalo [-vmax, vmax], onde vmax = k x xmax, 0.1 k 1.0 . O critrio de parada pode ser um nmero determinado de iteraes ou outro critrio dependendo do problema (BERGH, 2001).
4.4 Classificao
Para Kennedy e Eberhart (1995), criadores do PSO, o algoritmo parece repousar em algum lugar entre o Algoritmo Gentico e a Programao Evolutiva. Assim como na Programao Evolutiva o algoritmo dependente de processos estocsticos. O ajuste da posio das partculas em relao sua melhor posio pessoal e melhor da vizinhana similar a operao de cruzamento no Algoritmo Gentico. Assim como na Computao Evolutiva, o conceito de fitness tambm usado. nico ao PSO o vo das solues potencias pelo espao de busca acelerando em direo s melhores solues. Bergh (2001) em seu trabalho, explica que o PSO claramente relacionado a alguns Algoritmos Evolutivos. Um dos motivos que o PSO mantm uma populao de indivduos, assim como os Algoritmos Evolutivos. Se as melhores posies individuais (yi)
24
forem tratadas como parte da populao ento existe um mecanismo fraco de seleo que se assemelha ao ( + ) das Estratgias de Evoluo, onde a descendncia substitui os pais caso seja mais adaptada (maior fitness). Bergh (2001) ainda afirma que se o termo
vi,j(t) for removido da equao de atualizao da velocidade, a mesma pode ser interpretada
como um operador de mutao onde a fora da mutao controlada pelos seus dois pais, a melhor posio j encontrada pelo indivduo e a posio do melhor indivduo da vizinhana. O PSO pode ser visto como um processo de adaptao ao invs de substituio das populaes anteriores. Bergh (2001) diz que isso deixa a diferena entre o PSO os Algoritmos Evolutivos mais clara, o PSO mantm informaes sobre a posio e velocidade, enquanto os Algoritmos Evolutivos tradicionais apenas rastreiam a posio.
4.5 Concluso
Esse captulo apresentou o PSO, mtodo de otimizao inspirado no comportamento social de bandos de pssaros. Os indivduos, ou partculas, buscam pela melhor soluo levando em conta a melhor posio em que j esteve e o melhor indivduo na vizinhana. A seo 4.2 fala sobre como o algoritmo foi descoberto, durante a simulao da movimentao de bandos de pssaros. Adiante, a seo 4.3 apresenta a definio formal do mtodo. Finalmente, a seo 4.4 diz que o PSO est relacionado aos Algoritmos Evolutivos e ocupa algum lugar entre o Algoritmo Gentico e a Programao Evolutiva.
25
esse problema, os autores propem um hbrido, onde o PSO executado por um tempo e aps isso o k-means usado para refinar a soluo encontrada. Atravs desse mtodo os autores tentam combinar a eficincia do PSO com a velocidade do k-means. Cohen e Castro (2006) propem o PSC (Particle Swarm Clustering), onde, ao contrrio do algoritmo PSO, em que cada partcula codifica uma soluo completa do problema, cada partcula corresponde ao prottipo de um nico cluster, representando apenas parte da soluo. As partculas no so avaliadas, elas apenas se movem buscando se posicionar em regies do espao que representem os clusters naturais. Para cada dado que apresentado ao swarm, a partcula mais prxima do dado se move em sua direo, sendo influenciada por sua melhor posio anterior em relao quele dado e pela melhor posio de uma partcula em relao quele dado. A cada iterao, todos os dados so apresentados ao swarm, caso alguma das partculas no tenha vencido nenhuma vez, ou seja, caso no tenha sido a mais prxima de nenhum dos dados, ela ajustada em direo partcula que mais venceu. Xiao et al. (2003) utilizam um hbrido entre Self-Organizing Maps (SOM) e o PSO. No mtodo proposto, o PSO usado para melhorar os pesos do SOM. No primeiro estgio, SOM utilizado para clusterizar o conjunto de dados e gera um grupo de pesos. No segundo estgio, o PSO inicializado com os pesos produzidos pelo SOM e ento usado para refinar esses pesos. Omran et al. (2005) Propem um mtodo hbrido, que utiliza o PSO binrio e kmeans, o mtodo chamado de Dynamic Clustering using a Particle Swarm Optimization algorithm (DBPSO) e capaz de encontrar o nmero de clusters correto. O PSO binrio
uma verso do PSO, adaptada para buscar no espao binrio. As posies das partculas so compostas de valores 0 ou 1 e a velocidade interpretada como a probabilidade de mudar um bit de 0 para 1 ou vice-versa. O DBPSO funciona da seguinte maneira: dado um conjunto de dados, um conjunto de Nc centrides escolhido dentre esses dados, Nc corresponde ao nmero mximo de centrides desejado. Cada partcula formada por um vetor de tamanho Nc, se a posio i desse vetor for 0, isso significa que o centride i no parte da soluo proposta pela partcula. Em cada iterao, O PSO binrio utilizado para encontrar o melhor subconjunto de centrides e ento o k-means utilizado para refinar os centrides escolhidos. Aps isso, os centrides que no foram escolhidos so substitudos por novos centrides aleatrios, os indivduos so novamente inicializados aleatoriamente e uma nova iterao comea.
27
O mtodo proposto por Merwe e Engelbrecht (2003) o mais simples e tambm aquele que mais se adequa as idias do PSO, onde cada indivduo representa uma soluo ao problema. Por isso, decidiu-se trabalhar sobre esse mtodo. Adiante, o mtodo ser discutido em mais detalhes.
5.3.2 O Algoritmo
No mtodo proposto por Merwe e Enbelbrecht (2003), uma partcula xi construda da seguinte maneira:
xi = (mi1, mi2, , mij, , miNc)
Onde Nc o nmero de clusters a serem criados e mij corresponde ao jsimo centride da isima partcula, isto , o centride do cluster Cij. Assim, uma nica partcula representa uma soluo candidata a uma dada instncia do problema de Clusterizao. Cada partcula avaliada atravs da seguinte equao:
Je
[ =
j =1
Nc
ZpCij
d ( zp.mij ) / | Cij |]
(F1)
Nc
Onde Zp denota o psimo dado, |Cij| o nmero de dados pertencentes ao cluster Cij e
d a distncia euclidiana entre Zp e mij.
Em seu trabalho, Merwe e Engelbrecht (2003), propem dois mtodos, ambos construdos sobre o PSO gbest padro. Um dos mtodos um hbrido com o k-means, onde o resultado do k-means usado como uma das partculas do PSO. O algoritmo de Clusterizao proposto pode ser descrito como:
28
Inicialize os centrides dos clusters de cada partcula aleatoriamente Para t = 1 at tmax Para cada particula i Para cada dado zp
Calcule d(zp, mij) para todos centrides mij Atribua zp ao cluster Cij tal que:
Alm disso, essa equao no recompensa solues homogneas, isto , solues onde quantidade de dados nos clusters homognea no so recompensadas. Para resolver esse problema, proposta a equao F2, onde o nmero de dados em cada cluster levado em conta no clculo da qualidade. A distncia mdia dos dados ao centride de cada cluster multiplicada pela porcentagem de dados que aquele cluster possui:
Nc
(F2)
Nc
(F3)
= 1,.., Nc
| Cik |= max j
= 1,.., Nc
{| Cij |} .
Mais adiante, resultados usando ambas as equaes e uma comparao com o mtodo de Merwe e Engelbrecht sero mostrados.
5.4 Concluso
Nesse captulo foram apresentados alguns mtodos de Clusterizao existentes que utilizam o PSO. Dentre esses mtodos, o mtodo proposto por Merwe e Engelbrecht, por ser aquele que mais se adequa as idias do PSO, foi escolhido e discutido mais a fundo na seo 5.3. Nesse mtodo, cada partcula representa uma soluo completa para o problema. Para avaliar as partculas, usada uma funo que no leva em conta o nmero de dados em cada grupo, podendo gerar alguns problemas. Assim, a seo 5.3.3 prope duas novas funes de avaliao, uma que leva em conta o nmero de dados em cada cluster e uma que busca criar clusters mais uniformes. Adiante, as funes propostas sero avaliadas utilizado benchmarks da rea.
30
6 RESULTADOS
6.1 A Implementao
O algoritmo, juntamente com as trs funes de avaliao, foi implementado utilizando a linguagem de programao c++, com o intuito de criar um programa capaz de executar mais rapidamente. O programa criado orientado a objetos, dando assim uma melhor estrutura ao cdigo, pois interessante que seja de fcil manuteno, ou seja, que suporte a introduo de novas idias e testes e que as mesmas classes possam ser reutilizadas em trabalhos futuros. O programa permite que os parmetros do algoritmo sejam alterados, permite a escolha da funo de avaliao e conjunto de dados que se deseja usar e nmero de vezes que se deseja executar o algoritmo (Figura 8.1). capaz de exibir, em duas dimenses que podem ser escolhidas, os dados e os grupos gerados pelo algoritmo, onde os dados pertencentes ao mesmo grupo possuem a mesma cor e forma (Figura 8.2). Tambm capaz de criar um grfico que mostra a evoluo do fitness da melhor partcula ao longo das iteraes (Figura 8.3). Ao final da execuo, o programa exibe a taxa de acerto mdia do algoritmo para o nmero de execues escolhido, juntamente com o desvio padro, exibe tambm as distncias intra-cluster e distncia inter-cluster mdia, para a melhor partcula no nmero de execues escolhido. Alm disso, exibe, para cada grupo criado, quantos dados de cada classe do conjunto de dados existem naquele grupo (Figura 8.4). A interface completa pode ser vista na Figura 8.5.
32
Foram criadas as classes: Particle, que representa uma partcula, juntamente com os mtodos e atributos para cada partcula; Swarm, que representa a populao de partculas como um todo e mtodos e atributos da populao em geral; Cluster, que representa o
cluster formado por um centride, e mtodos e atributos para o cluster; Algorithm,
responsvel pela execuo do algoritmo em si; DataSet, que representa o conjunto de dados e mtodos e atributos para trabalhar com o conjunto de dados; Instance, que representa um nico dado; File, para carregar os dados do arquivo; D3DX_Control, PSO_MFCDlg, responsveis pela interface com o usurio e PSO_MFC_Business, responsvel pela ligao entre a interface e as classes do algoritmo e de dados.
33
6.2 Resultados
Para avaliar e comparar os mtodos, foram usados trs benchmarks amplamente abordados na literatura: Iris, Glass e Wine. Todos podem ser encontrados no UCI
Repository of Machine Learning Databases.
O benchmark Iris apresenta cento e cinqenta instncias da flor Iris, divididas em trs classes com cinqenta instncias cada. A primeira classe corresponde ao tipo Setosa, a segunda ao tipo Versicolour e a terceira Virginica. As instncias possuem quatro atributos de valores reais, sepal length (comprimento da spala), sepal width (largura da spala),
petal length (comprimento da ptala), petal width (largura da ptala). Uma das classes
(Setosa) linearmente separvel das outras duas, que no so linearmente separveis entre si. O benchmark Wine possui cento e setenta e oito instncias de vinho. Esses dados so resultados de uma anlise qumica realizada em vinhos da mesma regio da Itlia, mas vindos de diferentes cultivares. Anlise determinou as quantidades de treze constituintes encontrados em cada um dos trs tipos de vinho. Os atributos so: alcohol , malic acid,
ash, alcalinity of ash, magnesium, total phenols, flavanoids, noflavanoid fenols, proanthocyanins, color intensity, hue, OD280/OD315 of diluted wines, praline. A primeira
classe contm cinqenta e nove instncias, a segunda classe contm setenta e uma e a terceira quarenta e oito. O benchmark Glass apresenta duzentas e quatorze instncias de vidros divididas em sete tipos. Setenta instncias em building windows float processed, dezessete em vehicle
windows float processed, setenta e seis em buiding windows non-float processed, nenhuma
em vehicle windows non-float processed, treze em containers, 9 em tableware, vinte e nove em headlamps. Os atributos dos dados so: refrative index, sodium, magnesium,
aluminium, silicon, potassium, calcium, barium, iron.
34
Para cada conjunto de dados, o programa foi executado por 30 vezes, com 200 iteraes, 10 partculas, w = 0,72; c1 = 1,49; c2 = 1,49; utilizando cada uma das funes de avaliao. Esses so os mesmos valores usados no trabalho de Merwe e Engelbrecht (2003), de acordo com eles, tais valores para w, c1 e c2 asseguram uma boa convergncia. O nmero de iteraes relativamente pequeno foi escolhido devido rpida convergncia do PSO. Cada execuo avaliada de acordo com sua taxa de acerto, ou seja, calculada a porcentagem de acertos obtida pelo algoritmo, de acordo com a frmula:
t= Nr No
Onde No o nmero de dados a serem clusterizados e Nr o nmero de dados clusterizados corretamente. Primeiramente, para saber se determinado dado foi agrupado corretamente, preciso saber a que classe do benchmark o grupo encontrado pelo algoritmo corresponde. Dado que:
G = {g1, g2, ..., gk} um conjunto com os grupos gerados pelo algoritmo. B= {b1, b2, ..., bk} o conjunto de classes do benchmark. ri a classe representada pelo grupo i. nij o nmero de dados da classe j no grupo i.
A distncia intra-cluster mede a densidade dos clusters criados, o quo compactos so esses clusters, j que dados no mesmo cluster devem ser similares. Esse dado foi medido atravs da mdia da distncia mdia entre os dados pertencentes a cada grupo.
35
A distncia inter-cluster mede a separao entre os clusters encontrados, os clusters devem estar o mais distante possvel uns dos outros. Esse dado foi medido atravs da distncia entre os centros de massa de cada grupo. A taxa de acertos mdia das 30 execues, para cada funo de avaliao e conjunto de dados, juntamente com o desvio padro apresentada na tabela 9.2. A distncia intra-cluster e a distncia inter-cluster mdia, nas 30 execues, para cada conjunto de dados e funo de avaliao, so dadas nas tabelas 9.3 e 9.4.
Benchmark F1 Iris Wine 66.6444% 9.6156% 68.9139% 6.4636% t
42.3053% 5.1697% 46.3396% 3.7626% 43,3178 3,4833 Glass Tabela 6-2 Comparao entre o acerto mdio das execues utilizando as funes de fitness F1, F2 e F3 Benchmark Distncia intra-cluster F1 Iris Wine 0,7727 135,5002 F2 0,8954 132,6602 F3 1.0126 133.6435
1,1903 1,8265 1.8334 Glass Tabela 6-3 Comparao entre a distncia intra-cluster das execues utilizando as funes de fitness F1, F2 e F3 Benchmark Distncia inter-cluster F1 Iris Wine 1,8253 378,2947 F2 2,2899 365,7352 F3 2.3515 345,8403
3,4512 5,2463 3.8923 Glass Tabela 6-4 Comparao entre a distncia inter-cluster das execues utilizando as funes de fitness F1, F2 e F3
Em Iris, onde os clusters tm tamanhos uniformes, a equao F3 produziu resultados muito bons, a equao F2 tambm produziu um bom resultado e a equao F1 produziu um resultado razovel. A equaes F1, F2 e F3 so capazes de encontrar
36
corretamente a classe Setosa, que linearmente separvel das outras duas. Porm, F1 tem mais dificuldades em separar as outras duas classes, j F2 e principalmente F3 conseguem chegar bem prximo da separao ideal. No conjunto de dados Wine, um conjunto um pouco mais difcil, as trs equaes produziram bons resultados. Porm, os resultados utilizando as equaes F2 e F3 so ligeiramente superiores. J em Glass, os resultados encontrados, tanto para F1, F2 e F3 so apenas razoveis, por se tratar de um benchmark onde as classes so difceis de separar, com sobreposies entre si. Ainda assim, os resultados encontrados por F2 e F3 so superiores. importante perceber que a equao F3 leva as partculas em direo a clusters com dados distribudos mais uniformemente, portanto, deveria ser usada em problemas onde se conhecido que os dados so uniformemente distribudos nos clusters. Caso contrrio, a equao F2 deve ser usada.
Figura 6-6 Agrupamentos encontrados pelas 3 funes de avaliao para o benchmark Iris.
Figura 6-7 Agrupamentos encontrados pelas 3 funes de avaliao para o benchmark Wine.
37
Figura 6-8 Agrupamentos encontrados pelas 3 funes de avaliao para o benchmark Glass.
Nas figuras 9.1, 9.2 e 9.3 podemos ver alguns exemplos de agrupamentos encontrados. Na figura 9.1 temos exemplos de agrupamento pra o conjunto de dados Iris, em (a) o algoritmo utilizando a funo F1 encontrou o grupo correto para 71,9% dos dados, em (b), F2 encontrou o grupo correto para 88,6% e em (c) F3 encontrou o grupo correto para 85,3%. Pode ser visto que F2 e F3 conseguiram distinguir totalmente a classe
setosa (representada por quadradinhos) das outras classes. Na figura 9.2 temos exemplos
de agrupamento para o conjunto de dados Wine, F1 acertou em 71,9% (a), F2 encontrou o grupo correto para 70,8% (b) e F3 para 71,3% (c). Na figura 9.3, com exemplos para Glass, F1 agrupou 41,8% dos dados corretamente (a), F2 48,5% (b) e F3 40,1% (c). Na figura 9.4, a convergncia para as trs funes exibida para o benchmark Iris. Podemos ver que, como uma caracterstica do PSO, todas possuem uma convergncia rpida. Geralmente, como podemos ver nesse trabalho, algoritmos que utilizam centrides no agrupamento, como essa verso do PSO, so capazes de encontrar clusters de forma esfrica com bastante facilidade e robustez, porm, no bons em clusters com formas complexas e sobreposies.
38
6.3 Concluso
No incio desse captulo, foi apresentada a soluo implementada para a avaliao do algoritmo de Clusterizao e das funes de avaliao propostas. O software foi programado em c++ e permite o ajuste de vrios parmetros do algoritmo. Adiante, na seo 6.2, primeiramente so apresentados os benchmarks utilizados para a avaliao: Iris,
Glass e Wine. Aps isso so apresentados os parmetros utilizados para a avaliao e so
definidas as medidas para a avaliao: Taxa de acerto mdia, distncia Intra-cluster e distncia Inter-cluster. Finalmente, os resultados foram apresentados e discutidos, mostrando que embora o algoritmo tenha dificuldades em clusters com formatos mais complexos, as funes propostas trouxeram boas melhoras aos resultados.
39
8 REFERNCIAS BIBLIOGRFICAS
ANKERST, M.; BREUNIG, M. M.; KRIEGEL, H.-P.; SANDER, J. OPTICS: Ordering Points to Identify the Clustering Structure. In: ACM SIGMOD International Conference on Management of Data, 1999, Philadelphia. Proceedings of the ACM SIGMOD International Conference on Management of Data. New York: ACM Press, 1999. ASUNCION, A.; NEWMAN, D.J. (2007). UCI Machine Learning Repository [http://www.ics.uci.edu/~mlearn/MLRepository.html]. Irvine, CA: University of California, Department of Information and Computer Science. COHEN BCK, T. Optimization by Means of Genetic Algorithms. In: 36th International Scientific Colloquium, n. 36, 1991, Technical University of Ilmenau. BERGH, F. van der. An Analysis of Particle Swarm Optimizers. 2001. 300 p. Tese (PhD in the Faculty of Natural and Agricultural Science) University of Pretoria, Pretoria. CARLANTONIO, L. M. di. Novas Metodologias Para Clusterizao de Dados. 2001. 257 p. Tese (Mestrado em Cincias em Engenharia Civil) Universidade Federal do Rio de Janeiro, Rio de Janeiro. COHEN, S. C. M.; CASTRO, L. N. de. Data Clustering with Particle Swarms. In: Congress on Evolutionary Computation, 2006. Proceedings of IEEE Congress on Evolutionary Computation 2006 (CEC 2006). Vancouver: IEEE Computer Society, 2006. p. 1792- 1798. COLE, R. M. Clustering with Genetic Algorithms. 1998. 110 p. Tese (Master of Science). University of Western Australia , Perth. CUI, X.; Potok, T. E.; Palathingal, P. Document Clustering using Particle Swarm Optimization. In: Swarm Intelligence Symposium, 2005. Proceedings of the 2005 IEEE Swarm Intelligence Symposium. Pasadena: IEEE Computer Society, 2005. p. 185-191. EIBEN, A. E.; SMITH, A. E. Introduction to Evolutionary Computing. Amsterdam: Springer, 2003. 299 p. (Natural Computing). ESMIN, A. A. A. ; LAMBERT-TORRES, G. ; SOUZA, A. C. Z. A Hybrid Particle Swarm Optimization Applied to Loss Power Minimization. IEEE Transactions on Power Systems, V. 20, n. 2, p. 859-866, 2005. ESTER, M; KRIEGEL, H; SANDER, J; XU, X A Density-Based Algorithm for Discovering Cluster in Large Spatial Databases with Noise. In: The Second International Conference of Knowledge Discovery and Data Mining, 2., 1996, Portland. Proceedings of the Second International Conference of Knowledge Discovery and Data Mining. Menlo Park: AAAI Press, 1996. HAN, J.; KAMBER, M. Data Mining: Concepts and Techniques. San Francisco: Morgan Kaufmann, 2001. 550 p.
HUANG, Z. Extensions to the k-Means Algorithm for Clustering Large Data Sets with Categorical Values. Data Mining and Knowledge Discovery, v. 2., n. 3, p. 283-304, 1998. KARYPIS, G.; HAN E. H.; KUMAR, V. Chameleon: A Hierarchical Clustering Algorithm Using Dynamic Modeling. Computer, v. 32, n. 8, p. 38-75, 1999. KENNEDY, J.; EBERHART, R. C. Particle Swarm Optimization. In: IEEE International Conference on Neural Networks, 1995, Perth. Proceedings of IEEE International Conference on Neural Networks. 1995, p. 1942- 1948. KINNEAR, K. E. J. Evolution Strategies. In: BCK, T.; FOGEL, D. B.; MICHALEWICZ, Z. .Handbook of Evolutionary Computation. 1. ed. Bristol: IOP Publishing, 1997.Cap. B1.5, p. 1-5. KOZA, J. R. Genetic Programming. Encyclopedia of Computer Science and Technology, v. 38, p. 29-43, 1998. MERWE, D. W. van der; ENGELBRECHT, A. P. Data Clustering using Particle Swarm Optimization . In: Congress on Evolutionary Computation, 2003. Proceedings of IEEE Congress on Evolutionary Computation 2003 (CEC 2003), Caribella: IEEE Computer Society, 2003. p. 215-220. MITCHELL, M.; FORREST, S. Genetic Algorithms and Artificial Life. Artificial Life, v. 1, n. 3, p. 267-289, 1994. NG, R. T.; HAN, J. Efficient and Effective Clustering Methods for Spatial Data Mining. In: International Conference on Very Large Data Bases, 20., 1994, Santiago. Proceedings of 20th International Conference on Very Large Data Bases. San Francisco: Morgan Kaufmann, 1994. p. 144-155. OMRAM, M. G. H.; Engelbrecht, A. P.; Salman, A. Dynamic Clustering using Particle Swarm Optimization with Application in Unsupervised Image Classification. Pattern Analysis & Applications, v. 8, n. 4, p.332-344, nov. 2005. PORTO, V. W. Evolutionary Programming. In: BCK, T.; FOGEL, D. B.; MICHALEWICZ, Z. .Handbook of Evolutionary Computation. 1. ed. Bristol: IOP Publishing, 1997.Cap. B1.4, p. 1-10. RUDOLPH, G. On Correlated Mutations in Evolution Strategies. In: Parallel Problem Solving from Nature, 2., 1992, Brussels. Proceedings of the 2nd PPSN Conference. New York: Elsevier Science Inc., 1992. RUDOLPH, G. Evolution Strategies. In: BCK, T.; FOGEL, D. B.; MICHALEWICZ, Z. .Handbook of Evolutionary Computation. 1. ed. Bristol: IOP Publishing, 1997.Cap. B1.3, p. 1-6.
42
SAN, O. M.; HUYNH V.; NAKAMORI, Y. An Alternative Extension of the k-Means Algorithm for Clustering Categorical Data. International Journal of Applied Mathematics and Computer Science, Zielona Gra, v. 14, n. 2, p. 241-247, 2004. SCHWEFEL, H.P.; RUDOLF, G.; RUDOLPH, G. Contemporary Evolution Strategies. In: Third International Conference on Artificial Life. 3., 1995, Granada. Proceedings of the 3rd European Conference on Artificial Life. Berlin: Springer, 1995, 893-907. SOUZA, T.; NAVES, A.; SILVA, A. Swarm Optimisation as a new tool for data mining. In: Parallel and Distributed Processing Symposium, 17., 2003. Proceedings of the 17th International Symposium on Parallel and Distributed Processing. Nice: IEEE Computer Society, 2003. XIANG XIAO; Dow, E. R.; Erberhart, R. Miled, Z. B. Oppelt, R. J. Gene Clustering Using Self-Organizing Maps and Particle Swarm Optimization. In: Parallel and Distributed Processing Symposium, 17., 2003. Proceedings of the 17th International Symposium on Parallel and Distributed Processing. Nice: IEEE Computer Society, 2003. WANG, W.; YANG, J.; MUNTZ, R; STING: A Statistical Information Grid Approach for Spatial Data Mining. In: 23rd International Conference on Very Large Data Bases, 23., 1997, Athens. Proceedings of the 23rd VLDB Conference. San Francisco: Morgan Kaufmann, 1997.p. 186-195.
43