You are on page 1of 52

DILSON LUCAS PEREIRA

ESTUDO DO PSO NA CLUSTERIZAO DE DADOS

Monografia Departamento Universidade exigncias do obteno do Computao.

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

LAVRAS MINAS GERAIS - BRASIL 2007

DILSON LUCAS PEREIRA

ESTUDO DO PSO NA CLUSTERIZAO DE DADOS

Monografia Departamento Universidade exigncias do obteno do Computao.

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

rea de Concentrao: Otimizao

Orientador: Ahmed Ali Abdalla Esmin

LAVRAS MINAS GERAIS - BRASIL 2007

DILSON LUCAS PEREIRA

ESTUDO DO PSO NA CLUSTERIZAO DE DADOS

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

__________________________________________ Prof. Dr. Wilian Soares Lacerda

__________________________________________ Prof. Dr. Andr Vital Sade

__________________________________________ Prof. Dr. Ahmed Ali Abdalla Esmin (Orientador)

LAVRAS MINAS GERAIS - BRASIL

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.

Estudo do PSO na Clusterizao de Dados


RESUMO
A quantidade de informao coletada atualmente muito maior do que a capacidade humana de process-la. Esse problema vem motivando o desenvolvimento de diversas tcnicas computacionais capazes de extrair conhecimento valioso desses dados de modo eficiente. O problema de Clustering, ou Clusterizao, consiste em encontrar grupos em certo conjunto de dados e uma das principais tarefas de descoberta de conhecimento a partir de bancos de dados. O Particle Swarm Optimization (PSO) uma tcnica baseada no comportamento social bastante nova que vem sendo aplicada com sucesso a diversos tipos de problemas. Recentemente, foram propostas algumas abordagens que modificam o PSO para o problema de Clusterizao, esses mtodos so recentes e ainda podem ser trabalhados. Este trabalho tem como objetivo a anlise do PSO na Clusterizao de Dados, implementao e a melhoria de um dos mtodos existentes. Palavras-Chave: Clusterizao, Particle Swarm Optimization, Otimizao, Minerao de dados

Study of the PSO on Data Clustering


ABSTRACT
The amount of information collected nowadays is much greater than the human capacity of processing it. This problem has motivated the development of several computer methods able to extract valuable knowledge from these data in an efficient way. The Clustering problem consists on finding groups on a certain data set and is one of the main tasks on knowledge discovery from data bases. The Particle Swarm Optimization is a rather new method based on social behavior that has been successfully applied to many kinds of problems. Recently, some approaches were proposed modifying the PSO to the Clustering problem, these methods are recent and still can be worked. This work aims to analyze the PSO on data clustering, implement and improve one of the methods. Keywords: Clustering, Particle Swarm Optimization, Optimization, Data Mining

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.

1.3 Tipo de Pesquisa


Trata-se de uma pesquisa Bsica ou Fundamental, pois visa gerao de novos conhecimentos, e para tal so estudadas e analisadas as tcnicas de Clusterizao existentes como meio de inspirao, para que se possa melhorar os mtodos baseados no PSO, e aps isso, a divulgao dos conhecimentos e resultados obtidos. tambm uma pesquisa Exploratria, pois visa o aprimoramento de idias j existentes e descoberta de novas informaes/conhecimentos. Por fim, pode ser classificada tambm como uma pesquisa Operacional, pois utiliza mtodos de otimizao para que se possa encontrar um meio mais adequando de se obter melhores resultados, ou seja, maximizao das distncias intercluster e minimizao das distncias intra-cluster.

1.4 Procedimentos Metodolgicos


Os mtodos de Clusterizao baseados no PSO foram estudados e um dos mtodos foi implementado entre julho e outubro de 2007 utlizando a linguagem de programao C++ e compilador Microsoft Visual C++ 6. O mtodo foi profundamente estudado e analisado juntamente com as principais tcnicas de Clusterizao existentes para que fosse possvel encontrar deficincias e melhorias pudessem ser sugeridas, experimentadas e testadas e os resultados pudessem ser gerados, analisados e comparados utilizando os principais benchmarks da rea.

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.3 Definio Formal


Cole (1998), define o problema de Clusterizao formalmente da seguinte maneira: O conjunto de n objetos X = {X1, X2, X3,..., Xn} deve ser clusterizado. Cada Xi p um vetor de p medidas reais que descrevem o objeto. Esses objetos sero agrupados em grupos disjuntos C = {C1, C2, C3,..., Ck} (C conhecido como Clustering), onde k nmero de clusters, C1 U C 2 U ...C k = X , C i , e C i I C j = para i j. Os objetos dentro de cada grupo deveriam ser mais similares entre si do que com objetos de outros grupos, e o valor de k pode ser desconhecido. Se k conhecido o problema chamado de problema de k-Clusterizao.

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.

2.5 Medidas de Similaridade


Para clusterizar objetos de acordo com sua similaridade, preciso que se defina a proximidade entre dois objetos ou como seus valores se comparam. Uma pequena distncia deve identificar alta similaridade, portanto a medida da distncia pode ser usada para quantificar a dissimilaridade (COLE, 1999). Cole (1999) identifica a distncia Euclidiana como a mais comum entre as medidas utilizadas,

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

Ambas os mtodos so generalizaes da distncia Minkowski,

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

onde x1f, x2f,..., xnf so medidas do atributo f e mf o valor mdio de f, mf = 1 ( x1 f + x 2 f + K + x nf ) . n

2. Calcular a medida padronizada, conhecida como z-score, da seguinte maneira:

z if =

xif m f sf

A padronizao pode ou no ser realizada, dependendo da aplicao.

2.6 Mtodos de Clusterizao


De acordo com Han e Kamber (2001), os principais mtodos de Clusterizao podem ser classificados nas seguintes categorias:

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

k-means eficiente em grandes conjuntos de dados, porm no consegue trabalhar


com dados categricos, apenas dados numricos (SAN et al. 2004). O mtodo k-medoids ao invs de centrides usa objetos (dados), do prprio conjunto de dados para representar os clusters. Dado um conjunto X de dados e um nmero k de clusters, o algoritmo busca por k medoids que possam minimizar a distncia mdia dos objetos aos seus medoids mais prximos (HUANG, 1998). Os mtodos de particionamento no trabalham bem em clusters de formas complexas e tamanhos diferentes (HAN e KAMBER, 2001; CARLANTONIO, 2001)

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.

3. Mtodos Baseados em Densidade


Como mencionado por Carlantonio (2001) e tambm por Han e Kamber (2001), a maioria dos mtodos de Clusterizao se baseia na distncia entre os objetos, esses mtodos conseguem encontrar apenas clusters de forma esfrica e tm dificuldades em encontrar clusters de forma arbitrria. De acordo com Ankerst et al. (1999), as abordagens baseadas em densidade aplicam um critrio de cluster local e so muito populares em Data Mining.

Clusters so considerados regies do espao de dados nas quais a distribuio de


objetos densa, e so separados por regies de baixa densidade de objetos (conhecidas como noise). Essas regies podem ter forma arbitrria e os dados em uma regio podem estar distribudos arbitrariamente.

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.

4. Mtodos Baseados em Grid


Um mtodo baseado em Grid divide o espao de dados em uma estrutura de dados em grid (grade) multidimensional. Aps isso todas as operaes de Clusterizao so realizadas sobre a estrutura em grid. A principal vantagem dessa abordagem a velocidade que independente da quantidade de dados e dependente apenas do nmero de clulas em cada dimenso do espao dividido. O mtodo STING, STatistical INformation Grid-based method, um mtodo criado por Wang et al. (1997) com o objetivo de solucionar problemas relacionados a clustering e consultas orientadas a regies. Trata-se de uma abordagem multi-resoluo baseada em grid onde o espao dividido em clulas. Essas clulas formam uma estrutura hierrquica onde cada clula, em um alto nvel, particionada de modo a formar um nmero de outras clulas no prximo nvel mais baixo. Dados estatsticos importantes associados com os valores dos atributos em cada clula como mdia, mximo, mnimo, desvio padro, etc, so prcomputados e armazenados antes de uma consulta ser realizada no sistema (HAN e KAMBER, 2001). A idia capturar informaes estatsticas associadas com as clulas de maneira que classes inteiras de consultas e problemas de clustering possam ser respondidos sem recorrer a objetos individuais.

5. Mtodos Baseados em Modelos


Para Han e Kamber (2001), um Mtodo Baseado em Modelos hipotetiza um modelo para cada um dos clusters e encontra o melhor ajuste dos dados para aquele modelo. Um algoritmo baseado em modelos pode encontrar clusters construindo uma funo de densidade que reflita a distribuio espacial dos dados. Tambm leva a um modo de determinar automaticamente o nmero de clusters, levando rudo (noise) em conta, rendendo assim mtodos de Clusterizao robustos.

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.

Abordagem Estatstica: Clustering em aprendizagem de mquina frequentemente chamado


de Aprendizado No Supervisionado ou Formao de Conceitos (clusters). A maioria dos trabalhos em Formao de Conceitos adota uma abordagem baseada em probabilidade que usa medidas de probabilidade para Clusterizao e representa os clusters com descries de probabilidade. Carlantonio (2001) identifica o mtodo COBWEB como sendo um mtodo de clustering desse tipo bastante popular.

Abordagem Rede Neural:


Carlantonio (2001) afirma que mtodos de Clustering utilizando a abordagem por Rede Neural geralmente representam clusters como exemplares, que servem de prottipo para o cluster e que novos objetos podem ser distribudos aos clusters baseado em sua similaridade (distncia) com o exemplar do cluster.

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).

3.2 Algoritmos Evolutivos


De acordo com Eiben e Smith (2003), existem diferentes tipos de Algoritmos Evolutivos, porm a idia bsica por trs deles a mesma: Dada uma populao de indivduos, a presso do ambiente provoca uma seleo natural (sobrevivncia do mais apto), o que causa um aumento no fitness, ou aptido, da populao. O fitness calculado como uma funo de qualidade que desejamos maximizar. Os melhores indivduos so

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:

Operadores de Variao (recombinao e mutao) criam a diversidade


necessria.

Seleo age como uma fora em direo a qualidade.


A aplicao combinada de variao e seleo geralmente leva ao melhoramento do

fitness nas populaes consecutivas.


Muitos componentes desse processo so estocsticos, durante a seleo, por exemplo, indivduos mais aptos tm uma maior chance de serem selecionados do que indivduos menos aptos, mas mesmo indivduos mais fracos possuem chances de se tornar pais ou sobreviverem. Abaixo podemos encontrar um pseudo-cdigo para os algoritmos evolutivos (EIBEN e SMITH, 2003):

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.

3.3 Algoritmo Gentico


O Algoritmo Gentico o mais conhecido dentre os Algoritmos Evolutivos (EIBEN e SMITH, 2003). Mitchell e Forrest (1993) afirmam ainda que o Algoritmo Gentico tem sido usado tanto como ferramenta para a soluo de problemas prticos quanto como modelo cientfico de processos evolutivos. O Algoritmo Gentico foi inicialmente descrito por John Holland nos anos 60 e posteriormente, nos anos 60 e 70, desenvolvido juntamente com seus alunos e colegas da Universidade de Michigan (MITCHEL e FORREST, 1993). Bck (1991) afirma que uma definio geral do Algoritmo Gentico no existe. Pode ser esboado aquilo que pode ser considerado o Algoritmo Gentico Clssico ou Algoritmo Gentico Cannico: Os indivduos so representados por uma string binria, a seleo proporcional ao fitness, a probabilidade de mutao baixa e o algoritmo

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,

n pontos so escolhidos e os filhos so formados pegando segmentos alternativos dos pais.


O operador de mutao mais utilizado em strings binrias o Bit-Flip onde cada gene (bit) considerado separadamente e invertido com uma pequena probabilidade (BERGH, 2001; EIBEN e SMITH, 2003). A Seleo dos pais, geralmente feita baseada no fitness do indivduo, cada indivduo tem probabilidade f i / j =1 f j de ser escolhido, onde f i o fitness do indivduo

i e o tamanho da populao. Eiben e Smith (2003) identificam que usando esse


mecanismo de seleo, indivduos muito bons tomam conta da populao rapidamente, problema conhecido como Convergncia Prematura. Alm disso, quando os valores de

fitness so muito prximos, quase no existe uma presso de seleo, pois as


probabilidades so muito parecidas e os indivduos so escolhidos quase aleatoriamente. O mtodo baseado em rank busca eliminar as desvantagens do mtodo baseado no fitness. Nesse mtodo a populao ordenada baseada no fitness e ento a probabilidade de seleo dos indivduos dada de acordo com seu rank. Segundo Bergh (2001), a maioria dos Algoritmos Genticos usa um operador de Seleo dos Sobreviventes onde a prxima gerao selecionada a partir da descendncia. Um Algoritmo Gentico usando essa abordagem chamado de Algoritmo Gentico Geracional. Essa tcnica aumenta a diversidade da populao e ajuda a prevenir a convergncia prematura, mas diminui a taxa de convergncia, pois boas solues da atual gerao podem ser jogadas fora. Existem tambm os mtodos baseados no fitness, onde os

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).

3.4 Estratgias de Evoluo


As Estratgias de Evoluo foram criadas nos anos 60 por Biernertk, Rechenberg e Schwefel que trabalhavam na Universidade de Berlim buscando otimizar corpos finos e tridimensionais em fluxos turbulentos (RUDOLPH, 1997; EIBEN e SMITH, 2003). As Estratgias de Evoluo (EE) em seu modelo inicial tinham a seguinte forma: Um indivduo a, consistindo de um elemento X n (um vetor de tamanho n) mutado atravs da adio de um vetor aleatrio normalmente distribudo

Z ~ N (0, I n )

multiplicado por um escalar > 0, onde In uma matriz identidade de tamanho n. O valor

chamado de tamanho do passo de mutao, pois determina a magnitude da mutao


nos elementos de X. A seleo feita com base em uma comparao do valor funo objetivo do indivduo velho e do indivduo novo. Dada uma funo objetivo f : n a ser minimizada, a EE simples, comeando com um indivduo X 0 n , tem o seguinte esquema de iterao:

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

e (RUDOLPH, 1997; EIBEN e SMITH, 2003)..


O esquema bsico de recombinao nas estratgias de evoluo envolve dois pais para a criao de um filho. Os pais so sorteados aleatoriamente para a gerao de cada filho e o processo feito vezes para a criao de filhos. Usando a recombinao discreta um dos alelos dos pais escolhido aleatoriamente com chance igual para ambos os pais. Usando a recombinao intermediria, feita uma mdia entre os alelos (RUDOLPH, 1997; EIBEN e SMITH, 2003).. Aps a criao dos novos indivduos, os melhores indivduos so escolhidos a partir somente da descendncia ou a partir da unio da descendncia e dos pais, o primeiro mtodo chamado ( , ) e o segundo ( + ) (RUDOLPH, 1997; EIBEN e SMITH, 2003).

3.5 Programao Evolutiva


O surgimento da Programao Evolutiva foi motivado pelo desejo da gerao de uma abordagem alternativa em relao inteligncia artificial. Fogel teve a idia de utilizar a simulao da evoluo para desenvolver inteligncia artificial que no dependesse de heursticas, mas ao invs disso gerasse organismos com intelecto crescente com o tempo (PORTO, 1997). Originalmente a Programao Evolutiva foi definida da seguinte maneira. Uma populao de mquinas de estados finitas exposta uma seqncia de smbolos. A cada smbolo de entrada apresentado cada mquina, o smbolo de sada observado e comparado ao prximo smbolo de entrada, ou seja, a mquina faz uma previso do prximo smbolo de entrada. definida uma funo para medir o valor de cada predio. Aps ser feita a ltima predio, uma funo da seqncia de valores usada para indicar o fitness geral da mquina. Mquinas descendentes so criadas atravs da mutao de mquinas pai. Existem cinco modos de mutao possveis: Mudar um smbolo de sada,

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).

3.6 Programao Gentica


Programao Gentica implementada como um Algoritmo Evolutivo no qual as estruturas de dados que sofrem adaptao so programas de computador executveis. O calculo do fitness envolve a execuo do programa. A Programao Gentica uma busca

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))

Figura 3-1 Exemplo de representao em rvore

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

over-selection, onde a populao ordenada pelo fitness e dividida em dois grupos, um


contendo os x% melhores indivduos e outro contendo os restantes (100-x%) indivduos, 80% dos pais so selecionados do primeiro grupo e 20% do segundo grupo. A Programao Gentica usa uma estratgia geracional para escolher os sobreviventes, o nmero de descendentes criados o mesmo que o tamanho da populao, que totalmente substituda pelos novos indivduos.

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 PARTICLE SWARM OPTIMIZATION (PSO)


4.1 Introduo
Particle Swarm Optimization (PSO) um mtodo de otimizao baseado em
populao inicialmente proposto por Kennedy e Eberhart (1995) e modelado de acordo com o comportamento social de bandos de pssaros. O PSO tem sido aplicado com sucesso a problemas de busca em muitos domnios, particularmente na otimizao de funes numricas. Alm disso, capaz de resolver maioria dos problemas de otimizao que podem ser resolvidos usando Algoritmos Genticos (KENNEDY e EBERHART, 1995; BERGH, 2001; COHEN e CASTRO., 2006). No PSO, cada indivduo na populao busca pela soluo levando em conta o melhor indivduo em uma certa vizinhana e a melhor posio pessoal j encontrada. Segundo Kennedy e Eberhart (1995), Particle Swarm Optimization tem razes em duas metodologias principais. Vida Artificial (A-life) e Computao Evolutiva. A classificao do algoritmo ser discutida mais adiante. Suas principais caractersticas incluem facilidade de implementao, baixo custo de memria e velocidade (KENNEDY e EBERHART, 1995; BERGH, 2001).

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.

4.3 Particle Swarm Optimization


De acordo com Merwe e Engelbrecht (2003), dado um problema, o algoritmo mantm uma populao de partculas onde cada partcula representa uma soluo potencial para o problema. Cada partcula representa uma posio em um espao de busca multidimensional e mantm as seguintes informaes:

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:

vi,k(t + 1) = wvik(t) + c1r1,k(t)(yi,k(t) xi,k(t)) + c2r2,k(t)(k(t) xi,k(t))


Onde vi,k denota a k
-sima

(4.1) partcula.

dimenso do vetor velocidade associado i

-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 )}

i (t+1) Ni | f(i(t+1)) = min{f(y)}, y N i


vi,k(t + 1) = wvik(t) + c1r1,k(t)(yi,k(t) xi,k(t)) + c2r2,k(t)( j,k(t) xi,k(t))
A posio da partcula atualizada usando o novo vetor velocidade:

xi(t + 1) = xi(t) + vi(t+1)

(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:

Criar e Inicializar as partculas Repita Para cada partcula Se

i [1..s ] xi = yi

f ( xi ) < f ( y i )
Ento

Se yi < Ento = yi

Cada atributo xi,j inicializado aleatoriamente com um valor no intervalo [-xmax,

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

5 MTODOS DE CLUSTERIZAO USANDO O PSO


5.1 Introduo
Podem ser encontrados na literatura alguns trabalhos que modificam o PSO para a Clusterizao de Dados, nessa seo esses trabalhos sero brevemente discutidos.

5.2 Clusterizao com o PSO


No mtodo proposto por Merwe e Engelbrecht (2003), cada partcula do PSO composta por um vetor de centrides de tamanho Nc, onde Nc o nmero de grupos a serem criados, e representa uma soluo completa para o problema. A cada iterao, os dados so atribudos ao centride ao qual esto mais prximos, as solues so avaliadas e ento atualizadas de acordo com sua melhor posio no espao de busca e a melhor posio j encontrada por alguma partcula. Os autores propem tambm um hbrido onde o resultado encontrado pelo algoritmo k-means introduzido na populao inicial do PSO como uma das partculas. Cui et al. (2005) utilizam o PSO para a Clusterizao de documentos. Os documentos so representados como vetores de pesos, onde cada posio do vetor corresponde ao peso de determinado termo no documento. Desse modo, os documentos tomam a forma de pontos em um espao multidimensional, assim o PSO pode ser aplicado. O algoritmo de classificao usado semelhante ao proposto por Merwe e Engelbrecht (2003). Segundo os autores, o comportamento do PSO tem dois estgios, um estgio de busca global e um estgio de busca local. Nas iteraes iniciais, a equao de velocidade prov uma diversidade ao swarm atravs da mudana do momento das partculas, evitando a estagnao em timos locais. Mltiplas partculas buscando a soluo paralelamente podem explorar melhor o espao de busca. Essas iteraes iniciais so classificadas como o estgio de busca global. Com o passar das iteraes, a velocidade das partculas diminui com a aproximao da soluo tima e a partcula passa a explorar um espao menor. O estgio de busca global gradualmente muda para o estgio de busca local. Quando se trata de grandes conjuntos de documentos, a mudana lenta do estgio de busca global para o de busca local faz com que o PSO demore mais que o k-means para convergir. Para solucionar

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 O mtodo proposto por Merwe e Engelbrecht


5.3.1 Introduo
Dentre as adaptaes do PSO ao problema de Clusterizao, a abordagem de Merwe e Enbelbrecht (2003) aquela que mais se adequa s idias do PSO, onde cada indivduo ou partcula representa uma soluo completa para o problema.

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:

d ( z p , mij ) = min k = 1,..., Nc{d ( zp, mik )}


Calcule o fitness usando a equao F1 Atualize o melhor global e os melhores locais Atualize os centrides dos clusters usando as equaes (4.1) e (4.3)

5.3.3 A Funo de Avaliao e modificaes propostas


A funo de avaliao, ou funo objetivo, desempenha um papel fundamental em qualquer algoritmo evolutivo, ela determina o quo boa uma determinada soluo , quo bem ela resolve o problema. Analisando mais profundamente a equao F1, usada por Merwe e Engelbrecht (2003) pode ser visto que primeiro, para cada cluster Cij, a distncia mdia dos dados pertencentes ao cluster ao seu centride mij calculada. Ento, calculada outra mdia, a mdia das distncias mdias aos centrides de todos os clusters Cij, esse o resultado da equao. Pode ser visto que um cluster Cij com apenas um dado influenciar no resultado final (valor de F1) tanto quanto um cluster Cik com vrios dados, e assim, uma partcula que no representa uma boa soluo acabar sendo avaliada como se representasse. Por exemplo, suponhamos que um dos clusters da partcula tenha um dado que esteja bem prximo ao seu centride, e que outro cluster tenha vrios dados que no estejam muito perto de seu centride, mas que tambm no estejam muito distantes. A distncia mdia para o primeiro cluster pequena, mas ele contm apenas um dado. A distncia mdia para o segundo cluster no pequena e nem grande, mas ele contm vrios dados. A distncia mdia ao centride do segundo cluster deveria ter um peso maior no clculo da funo objetivo. Porm, isso no acontece na equao F1, pois a equao d um peso igual para ambas as distncias mdias. Portanto, essa soluo, que no uma boa soluo, pode acabar sendo interpretada como tal. 29

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:

F = { j =1[(ZpCij d ( zp.mij ) / | Cij |) (| Cij | / No)]}


A equao F2 pode ser reescrita, da seguinte maneira:

Nc

(F2)

F = ( j =1 (ZpCij d ( zp.mij ))) / No


Onde No o nmero de dados a serem clusterizados. Para levar em conta a distribuio de dados entre os clusters, a equao pode ser modificada:

Nc

F ' = F (| Cik | | Cil | +1)


Tal que,

(F3)
= 1,.., Nc

| Cik |= max j

= 1,.., Nc

{| Cij |} e | Cil |= min xj

{| 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.

Figura 6-1 Parmetros do Algoritmo

Figura 6-2 Visualizao dos grupos criados pelo algoritmo

Figura 6-3 Fitness da melhor partcula ao longo das iteraes

32

Figura 6-4 Resultados do Algoritmo

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.

Figura 6-5 Interface do programa

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.

A tabela 9.1 sumariza as caractersticas dos benchmarks.

Benchmark Nmero de Instncias Nmero de Atributos Nmero de Classes


Iris Wine Glass 150 4 178 13 214 9 Tabela 6-1 Caractersticas dos benchmarks. 3 3 7

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.

Essa correspondncia pode ser calculada atravs do seguinte algoritmo:

Enquanto G Encontrar maior nij, tal que gi G e bj B


ri = j G = G gi B = B bj

Dessa maneira, todos os dados que estiverem em ci e tambm pertencerem a classe


ri esto agrupados corretamente, os outros esto agrupados incorretamente.

Outras medidas que podemos usar para a avaliao do algoritmo so a distncia


intra-cluster e distncia inter-cluster.

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

F3 88.3778% 10.6421 % 71.8726% 0.1425%

F2 83.1333% 8.4837 % 71.2172% 0.5254%

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

As mudanas na funo de avaliao trouxeram boas melhoras aos resultados nos


benchmarks avaliados.

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.

Figura 6-9 Convergncia do Algoritmo utilizando as 3 Funes

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

7 CONCLUSO E TRABALHOS FUTUROS


Nesse trabalho, foi apresentado um estudo do problema de Clusterizao, uma das principais tarefas de descoberta de conhecimento em bancos de dados e aplicado em diversas reas. Foi visto que as tcnicas para a resoluo do problema de Clustering podem ser divididas em: Mtodos por Particionamento, Mtodos Hierrquicos, Mtodos Baseados em Densidade, Mtodos Baseados em Grid, Mtodos Baseados em Modelos. Adiante, foi apresentado o PSO, Particle Swarm Optimization, um Algoritmo Evolutivo baseado em comportamento social que tem sido aplicado com sucesso em diversos problemas. Foram apresentados alguns mtodos de resoluo do problema de Clusterizao baseados no PSO que tem surgido na literatura nos ltimos anos. Dentre eles, o mtodo desenvolvido por Merwe e Engelbrecht (2003), um mtodo simples e aderente s idias do PSO, foi implementado e seu funcionamento estudado um pouco mais a fundo. Ento, foram propostas algumas modificaes a funo de fitness utilizada pelo algoritmo. Foi proposta uma funo na qual o nmero de dados dentro do cluster levado em conta na influncia que esse cluster ter no clculo do fitness da partcula. Uma outra funo, que leva as partculas em direo a solues com clusters mais uniformes tambm foi proposta. Trs benchmarks conhecidos da rea foram usados para comparar a eficincia desses trs mtodos. O PSO demonstrou-se capaz de encontrar boas solues para o problema, principalmente em clusters com formato circular. Por ser um Mtodo de Particionamento baseado em centrides, existe certa dificuldade em encontrar clusters com formas complexas. Os resultados mostraram que melhoras significativas foram alcanadas quando as funes de fitness propostas foram utilizadas. Em trabalhos futuros, pretende-se o desenvolvimento de um mtodo de Clusterizao, baseado no PSO, que seja capaz de determinar o nmero timo de clusters e lidar com clusters de formas complexas.

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

You might also like