Anda di halaman 1dari 140

UNIVERSIDADE ESTADUAL PAULISTA Jlio de Mesquita Filho

Ps-Graduao em Cincia da Computao

Fernando Takeshi Oyama

Minerao multirrelacional de regras de associao em grandes bases de dados

UNESP 2010

ii

Fernando Takeshi Oyama

Minerao multirrelacional de regras de associao em grandes bases de dados

Orientador: Prof. Dr. Carlos Roberto Valncio

Dissertao apresentada para obteno do ttulo de Mestre em Cincia da Computao, rea de Concentrao em Sistemas de Computao, junto ao Programa de Ps-Graduao em Cincia da Computao do Instituto de Biocincias, Letras e Cincias Exatas da Universidade Estadual Paulista Jlio de Mesquita Filho, Campus de So Jos do Rio Preto.

UNESP 2010

iii

Fernando Takeshi Oyama

Minerao multirrelacional de regras de associao em grandes bases de dados

Dissertao apresentada para obteno do ttulo de Mestre em Cincia da Computao, rea de Concentrao em Sistemas de Computao, junto ao Programa de Ps-Graduao em Cincia da Computao do Instituto de Biocincias, Letras e Cincias Exatas da Universidade Estadual Paulista Jlio de Mesquita Filho, Campus de So Jos do Rio Preto.

BANCA EXAMINADORA Prof. Dr. Carlos Roberto Valncio IBILCE/UNESP So Jos do Rio Preto Orientador Prof. Dr. Cristina Dutra de Aguiar Ciferri ICMC/USP So Carlos Prof. Dr. Rogria Cristiane Grato de Souza IBILCE/UNESP So Jos do Rio Preto

So Jos do Rio Preto, 22 de Fevereiro de 2010.

iv

AGRADECIMENTOS
A Deus, pelo dom da vida e por ter me dado foras para concluir este trabalho. A minha esposa Andressa, pelo carinho, confiana, pacincia e companheirismo despendido ao meu favor, bem como pelo apoio incondicional, o qual foi determinante para a concluso desta jornada. A meu orientador, Prof. Dr. Carlos Roberto Valncio, pelo apoio, estmulo e exemplo na vida acadmica. A meus pais, pela educao que me proporcionaram. A minha irm, a meus sogros e meus cunhados, pelo estmulo constante. Aos Profs. Drs. Rogria Cristiane Grato de Souza e Mrio Luiz Tronco, pelas contribuies em ocasio do Exame Geral de Qualificao. Aos Profs. Drs. Cristina Dutra de Aguiar Ciferri e Rogria Cristiane Grato de Souza, por terem aceitado examinar esse trabalho por ocasio da Defesa, bem como pelas contribuies dadas. Aos colegas, professores e funcionrios do Programa de Ps-Graduao em Cincia da Computao do IBILCE UNESP. Capes, pelo auxlio financeiro proporcionado durante o perodo de vigncia da bolsa.

minha esposa, com muito carinho, gratido e amor.

vi

Bem-aventurado o homem que acha sabedoria, e o homem que adquire conhecimento; Porque melhor a sua mercadoria do que artigos de prata, e maior o seu lucro que o ouro mais fino.
(Provrbios 3:13-14)

vii

SUMRIO
Lista de Figuras........................................................................................................... ix Lista de Tabelas .......................................................................................................... xi Lista de Siglas ............................................................................................................ xii Resumo ..................................................................................................................... xiii Abstract ..................................................................................................................... xiv Captulo 1 Introduo .................................................................................................. 1 1.1 Consideraes iniciais........................................................................................ 1 1.2 Motivao e escopo ........................................................................................... 2 1.3 Objetivo ............................................................................................................. 4 1.4 Metodologia ....................................................................................................... 5 1.5 Organizao da dissertao................................................................................ 7 Captulo 2 Minerao multirrelacional de regras de associao.................................. 8 2.1 Consideraes iniciais........................................................................................ 8 2.2 Minerao de dados ........................................................................................... 9 2.3 Minerao de regras de associao .................................................................... 9 2.4 Algoritmos de minerao de regras de associao .......................................... 12 2.4.1 Algoritmo APRIORI.................................................................................... 12 2.4.2 Algoritmo FP-GROWTH............................................................................. 14 2.4.3 Outras propostas para a minerao de regras de associao..................... 16 2.5 Minerao de dados multirrelacional............................................................... 20 2.6 Algoritmos multirrelacionais de minerao de regras de associao .............. 23 2.6.1 Algoritmo MRFP-GROWTH ...................................................................... 26 2.6.2 Algoritmo APRIORI-GROUP ....................................................................... 32 2.6.3 Algoritmo GFP-GROWTH .......................................................................... 35 2.6.4 Algoritmo APRIORIMR ............................................................................. 37 2.7 Consideraes finais ........................................................................................ 38 Captulo 3 Minerao de dados multirrelacional em grandes bases de dados........... 40 3.1 Consideraes iniciais...................................................................................... 40 3.2 Definio do problema..................................................................................... 41 3.3 Viso geral da proposta.................................................................................... 43 3.4 Estratgia para minerao de grandes bases de dados ..................................... 48 3.5 Algoritmo MR-RADIX ...................................................................................... 49 3.5.1 Representao de itemsets relacionais ...................................................... 50 3.5.2 Estrutura Radix-tree .................................................................................. 53 3.5.3 Estrutura ItemMap .................................................................................... 58 3.5.4 Fuso de itens secundrios........................................................................ 59 3.5.5 Descrio do algoritmo MR-RADIX .......................................................... 60 3.5.6 Estratgia de particionamento no algoritmo MR-RADIX .......................... 64 3.6 Consideraes finais ........................................................................................ 67 Captulo 4 Testes e Resultados .................................................................................. 69 4.1 Consideraes iniciais...................................................................................... 69

viii

4.2 Bases de dados e parmetros de testes............................................................. 69 4.3 Estudo comparativo ......................................................................................... 72 4.3.1 Estudo comparativo entre abordagem tradicional e multirrelacional ....... 72 4.3.2 Estudo comparativo entre algoritmos multirrelacionais ........................... 81 4.4 Consideraes finais ........................................................................................ 92 Captulo 5 Concluses ............................................................................................... 93 5.1 Concluses finais da proposta da dissertao .................................................. 93 5.2 Sugestes de trabalhos futuros......................................................................... 95 Referncias Bibliogrficas ......................................................................................... 98 Apndice A Descoberta de Conhecimento em Bases de Dados .............................. 106 Apndice B Algoritmos APRIORI e FP-GROWTH ..................................................... 110 B.1 Algoritmo APRIORI ........................................................................................ 110 B.2 Algoritmo FP-GROWTH ................................................................................. 114 Apndice C Resultados experimentais do estudo comparativo ............................... 121 C.1 Mtricas dos testes envolvendo MR-RADIX e PATRICIAMINE ..................... 121 C.2 Mtricas do teste envolvendo os algoritmos multirrelacionais ..................... 122 Apndice D Ferramenta de apoio ao KDD .............................................................. 124

ix

LISTA DE FIGURAS
Figura 2.1 Esquema de funcionamento do algoritmo Apriori ................................... 13 Figura 2.2 Exemplo de uma FP-tree (HAN; KAMBER, 2006)................................. 15 Figura 2.3 a) Relaes Paciente e Internao em uma base de dados relacional; b) Resultado de uma juno natural de Paciente e Internao; c) Utilizao de funes agregadas gerando os atributos Num_Internacoes e Mdia_Dias. ............................ 21 Figura 2.4 Tabela primria e tabelas secundrias (KANODIA, 2005)...................... 27 Figura 2.5 Algoritmo MRFP-Growth (KANODIA, 2005)........................................ 27 Figura 2.6 MRFP-tree para a tabela primria (KANODIA, 2005) ............................ 28 Figura 2.7 MRFP-tree para a tabela secundria-A (KANODIA, 2005) .................... 29 Figura 2.8 MRFP-tree para a tabela secundria-B (KANODIA, 2005) .................... 29 Figura 2.9 MRFP-tree final (KANODIA, 2005) ....................................................... 30 Figura 2.10 Algoritmo Apriori-Group (RIBEIRO; VIEIRA; TRAINA, 2005) ........ 34 Figura 2.11 Algoritmo GFP-Growth (PIZZI, 2006) .................................................. 35 Figura 2.12 Exemplo de GFP-tree (PIZZI, 2006)...................................................... 36 Figura 3.1 Grfico do tempo de execuo dos algoritmos PATRICIAMINE e OPPORTUNEPROJECT (PIETRACAPRINA; ZANDOLIN, 2003)............................... 44 Figura 3.2 Grfico comparativo entre PATRICIAMINE, FP-GROWTH, FP-GROWTH* e APRIORI (GRAHNE; ZHU, 2005).............................................................................. 45 Figura 3.3 Grfico comparativo do tempo de execuo dos algoritmos PATRICIAMINE, CT-PRO e FP-GROWTH-TINY .......................................................... 46 Figura 3.4 Grfico comparativo do espao de memria ocupado dos algoritmos PATRICIAMINE, CT-PRO e FP-GROWTH-TINY .......................................................... 47 Figura 3.5 Fases do particionamento ......................................................................... 49 Figura 3.6 Itemset relacional...................................................................................... 52 Figura 3.7 Exemplo de base de dados relacional....................................................... 52 Figura 3.8 Exemplo de Trie Padro ........................................................................... 53 Figura 3.9 Exemplo de Radix Tree ............................................................................ 54 Figura 3.10 Exemplo das estruturas ItemList e Radix-tree ........................................ 55 Figura 3.11 Situao da estrutura aps insero do primeiro n ............................... 56 Figura 3.12 Situao da estrutura aps insero do segundo n................................ 57 Figura 3.13 Situao da estrutura aps insero do terceiro n................................. 57 Figura 3.14 ItemMap e ItemList ................................................................................ 59 Figura 3.15 Exemplo de fuso de itens secundrios .............................................. 60 Figura 3.16 Pseudo-cdigo referente etapa de construo da Radix-tree ............... 61 Figura 3.17 Pseudo-cdigo referente etapa de minerao da Radix-tree................ 63 Figura 3.18 Pseudo-cdigo referente estratgia de particionamento ...................... 65 Figura 3.19 Esquema da estratgia de particionamento utilizado no MR-Radix ...... 66 Figura 4.1 Esquema da medio para o estudo comparativo do MR-RADIX e PATRICIAMINE............................................................................................................ 73 Figura 4.2 Exemplo de junco full outer: tabelas Empregado e Departamento ........ 73 Figura 4.3 Grfico do tempo de execuo base HC MR-RADIX e PATRICIAMINE ................................................................................................................................... 75 Figura 4.4 Grfico do tempo de execuo base SIVAT MR-RADIX e PATRICIAMINE............................................................................................................ 77

Figura 4.5 Grfico do espao de memria utilizado base HC MR-RADIX e PATRICIAMINE............................................................................................................ 78 Figura 4.6 Grfico do espao de memria utilizado base SIVAT MR-RADIX e PATRICIAMINE............................................................................................................ 80 Figura 4.7 Grfico do tempo de execuo dos algoritmos multirrelacionais base HC ................................................................................................................................... 83 Figura 4.8 Grfico do tempo de execuo dos algoritmos multirrelacionais base SIVAT........................................................................................................................ 84 Figura 4.9 Grfico do espao de memria utilizado - base HC algoritmos multirrelacionais ........................................................................................................ 86 Figura 4.10 Grfico do espao de memria utilizado - base SIVAT algoritmos multirrelacionais ........................................................................................................ 87 Figura 4.11 Grfico do tempo de execuo - base CENSUS .................................... 89 Figura 4.12 Grfico de memria utilizada - base CENSUS ...................................... 90 Figura A.1 Detalhes das etapas do KDD (HAN; KAMBER, 2006)........................ 108 Figura B.2 Algoritmo APRIORI: principal (AGRAWAL; SRIKANT, 1994)........... 111 Figura B.3 APRIORI: funo apriori_gen (AGRAWAL; SRIKANT, 1994) ............ 112 Figura B.4 Algoritmo FP-GROWTH: construo da FP-tree (HAN; PEI; YIN, 2000) ................................................................................................................................. 115 Figura B.5 Exemplo de uma FP-tree (HAN; KAMBER, 2006) ............................. 116 Figura B.6 Algoritmo FP-GROWTH: funo insere_tree (HAN; PEI; YIN, 2000) .. 116 Figura B.7 Algoritmo FP-GROWTH: extrao de padres da FP-tree (HAN; PEI; YIN, 2000) ........................................................................................................................ 118 Figura B.8 FP-tree condicional para o n I5 (HAN; KAMBER, 2006).................. 119 Figura B.9 FP-tree condicional para o n I3 (HAN; KAMBER, 2006).................. 120 Figura D.10 Interface de seleo de atributos na fDMMR...................................... 125 Figura D.11 Interface de minerao de dados na fDMMR...................................... 126

xi

LISTA DE TABELAS
Tabela 2.1 Exemplo de cesta de compras .................................................................. 10 Tabela 2.2 Relao entre suporte e confiana (BERSON; SMITH; THEARLING, 1999) .......................................................................................................................... 11 Tabela 2.3 Padres frequentes extrados isoladamente (KANODIA, 2005) ............. 29 Tabela 2.4 Padres frequentes finais (KANODIA, 2005) ......................................... 31 Tabela 2.5 Tabela Clientes......................................................................................... 32 Tabela 2.6 Tabela Compras ....................................................................................... 32 Tabela 2.7 Tabela Cli-Compra resultante da juno das tabelas Clientes e Compras33 Tabela 3.1 Exemplo de uma base de dados transacional ........................................... 51 Tabela 3.2 Exemplo de Conjunto de Dados .............................................................. 56 Tabela 4.1 Bases de dados utilizadas nos testes ........................................................ 70 Tabela 4.2 Tabela resultante da junco full outer ...................................................... 74 Tabela 4.3 Tempos mdios de juno do algoritmo PATRICIAMINE ......................... 76 Tabela 4.4 Nmero de ns na rvore na base HC...................................................... 79 Tabela 4.5 Nmero de ns na rvore na base SIVAT................................................ 80 Tabela 4.6 Nmero de ns na rvore Radix-tree - base SIVAT ................................ 85 Tabela B.1 Exemplo de base de dados .................................................................... 111 Tabela B.2 Suporte dos 1-itemsets........................................................................... 112 Tabela B.3 Conjunto L1 ........................................................................................... 112 Tabela B.4 Conjunto C2 ........................................................................................... 113 Tabela B.5 Conjunto L2 ........................................................................................... 113 Tabela B.6 Conjunto C3 ........................................................................................... 114 Tabela C.7 Tempo de execuo e memria utilizada - Base HC............................. 121 Tabela C.8 Tempo de execuo e memria utilizada - Base SIVAT ...................... 122 Tabela C.9 Tempo de execuo e memria utilizada - multirrelacionais - Base HC ................................................................................................................................. 122 Tabela C.10 Tempo de execuo e memria utilizada - multirrelacionais - Base SIVAT...................................................................................................................... 123 Tabela C.11 Tempo de execuo e memria utilizada - multirrelacionais - Base CENSUS .................................................................................................................. 123

xii

LISTA DE SIGLAS
CGT fDMMR GB HC IL ILP IM KB KDD MB MDMR minsup MRDM PG SGBD SIVAT Candidate Generate-and-Test Ferramenta de data mining multirrelacional Gigabyte Hospital do Cncer ItemList Inductive Logic Programming ItemMap Kilobyte Knowledge Discovery in Databases Megabyte Minerao de dados multirrelacional Suporte mnimo Multi-relational data mining Pattern-growth Sistema gerenciador de banco de dados Sistema de Vigilncia de Acidentes de Trabalho

xiii

RESUMO
O crescente avano e a disponibilidade de recursos computacionais viabilizam o armazenamento e a manipulao de grandes bases de dados. As tcnicas tpicas de minerao de dados possibilitam a extrao de padres desde que os dados estejam armazenados em uma nica tabela. A minerao de dados multirrelacional, por sua vez, apresenta-se como uma abordagem mais recente que permite buscar padres provenientes de mltiplas tabelas, sendo indicada para a aplicao em bases de dados relacionais. No entanto, os algoritmos multirrelacionais de minerao de regras de associao existentes tornam-se impossibilitados de efetuar a tarefa de minerao em grandes volumes de dados, uma vez que a quantia de memria exigida para a concluso do processamento ultrapassa a quantidade disponvel. O objetivo do presente trabalho consiste em apresentar um algoritmo multirrelacional de extrao de regras de associao com o foco na aplicao em grandes bases de dados relacionais. Para isso, o algoritmo proposto, MR-RADIX, apresenta uma estrutura denominada Radix-tree que representa comprimidamente a base de dados em memria. Alm disso, o algoritmo utiliza-se do conceito de particionamento para subdividir a base de dados, de modo que cada partio possa ser processada integralmente em memria. Os testes realizados demonstram que o algoritmo MR-RADIX proporciona um desempenho superior a outros algoritmos correlatos e, ainda, efetua com xito, diferentemente dos demais, a minerao de regras de associao em grandes bases de dados.

Palavras-chave: MR-RADIX, minerao de dados multirrelacional, regras de associao, minerao de itemsets frequentes, base de dados relacional

xiv

ABSTRACT
The increasing spread and availability of computing resources make feasible storage and handling of large databases. Traditional techniques of data mining allows the extraction of patterns provided that data is stored in a single table. The multirelational data mining presents itself as a more recent approach that allows search patterns from multiple tables, indicated for use in relational databases. However, the existing multi-relational association rules mining algorithms become unable to make mining task in large data, since the amount of memory required for the completion of processing exceed the amount available. The goal of this work is to present a multirelational algorithm for extracting association rules with focus application in large relational databases. For this the proposed algorithm MR-RADIX presents a structure called Radix-tree that represents compressly the database in memory. Moreover, the algorithm uses the concept of partitioning to subdivide the database, so that each partition can be processed entirely in memory. The tests show that the MR-RADIX algorithm provides better performance than other related algorithms, and also performs successfully, unlike others, the association rules mining in large databases.

Keywords: MR-RADIX, multi-relational data mining, association rules, frequent itemsets mining, relational database

Captulo 1

Introduo

1.1 Consideraes iniciais


A consolidao e a constante evoluo dos sistemas de gerenciamento de dados tm oferecido um suporte robusto captao e manipulao dos dados provenientes das mais diversas reas de aplicao. Juntamente com o advento desses sistemas, tem-se visto sofisticaes em nvel de hardware, o que torna perfeitamente possvel o armazenamento eficiente de grandes volumes de dados, tarefa antes vista como desafiadora e custosa, tanto em termos computacionais quanto em termos econmicos. No obstante, essa disponibilidade de recursos para o armazenamento de dados acabou gerando repositrios no-analisveis, de modo que h oferta ou riqueza de dados, mas pobreza de informaes (HAN; KAMBER, 2006). A minerao de dados surgiu como um campo de estudo visando o desenvolvimento de ferramentas e tcnicas para a prospeco de grandes repositrios de dados, com o intuito de obter informaes novas, valiosas, no-triviais e implicitamente existentes (KANTARDZIC, 2003). A minerao pode ser vista como a mais importante etapa de um processo mais amplo denominado Descoberta de Conhecimento em Bases de Dados (Knowledge Discovery in Database - KDD). O KDD apresenta ainda as etapas de pr-processamento, que visam preparar e selecionar os dados, e as etapas de ps-processamento, que auxiliam na compreenso dos padres obtidos (FAYYAD; PIATETSKY-SHAPIRO; PADHRAIC, 1996). Os algoritmos tradicionais de minerao de dados realizam o processamento levando em conta que os dados esto dispostos em uma nica estrutura, geralmente,

um arquivo ou uma tabela. Essa limitao no possibilita que tais algoritmos sejam utilizados eficientemente em contextos nos quais os dados encontram-se estruturados como, por exemplo, uma base de dados relacional que se constitui de diversas tabelas semanticamente relacionadas (KNOBBE, 2004). Um procedimento que comumente realizado a gerao de uma tabela global que rene, por meio de operaes de juno, as diversas tabelas existentes. A dificuldade nesse caso que a compresso ou juno de dados provenientes de vrias tabelas demanda um alto custo computacional e, principalmente, pode acarretar a perda de informaes ou a gerao de imprecises nos padres extrados (DZEROSKI; RAEDT; WROBEL, 2003). A minerao de dados multirrelacional, por sua vez, uma abordagem mais recente, que surgiu na tentativa de propor tcnicas que supram as limitaes dos algoritmos tradicionais. A grande vantagem dessa abordagem justamente a possibilidade de extrair conhecimento proveniente de mltiplas tabelas de modo direto, sem a necessidade da operao de juno de dados (DZEROSKY, 2003). Com essa aplicao, os algoritmos multirrelacionais ampliam o leque de aplicaes, uma vez que se gera a possibilidade de minerao em situaes nas quais importante a manuteno da estrutura ou relacionamento das mltiplas tabelas devido a sua relevncia semntica (PAGE; CRAVEN, 2003; HABRARD; BERNARD; JACQUENET, 2003).

1.2 Motivao e escopo


As bases de dados relacionais so amplamente utilizadas pelas mais variadas aplicaes (GUO; VIKTOR, 2005), tornando-as fontes de inestimveis conhecimentos ainda ocultos e implcitos que, devido impossibilidade de anlise humana por conta das suas dimenses, somente sero descobertos com a aplicao de algoritmos de minerao de dados (HAN; KAMBER, 2006). Os algoritmos tradicionais de minerao de dados, tais como o APRIORI (AGRAWAL; SRIKANT, 1994) e o FP-GROWTH (HAN; PEI; YIN, 2000), buscam por padres em uma nica tabela. Por esse motivo, a aplicao desses algoritmos nas bases de dados fica condicionada necessidade de que todos os dados estejam disponveis em uma nica relao. Uma forma de se aplicar tais tcnicas a criao

de uma relao universal que resultado da juno de todas as tabelas. Entretanto, necessrio ressaltar que essa operao pode resultar em uma relao universal cujo tamanho torne invivel a aplicao de tcnicas tradicionais. Por esse motivo foi desenvolvida uma forma alternativa, a qual consiste em aplicar tais algoritmos na chamada tabela fato, que uma tabela central composta de atributos que sumarizam ou agregam informaes encontradas nas outras tabelas. Entretanto, esta tcnica apresenta como desvantagens a gerao de tabelas com muitos atributos e a repetio de dados (KNOBBE et al., 1999). Os algoritmos de minerao de dados multirrelacional, ento, surgem como propostas viveis frente limitao dos algoritmos tradicionais, tornando possvel a extrao de padres provenientes de mltiplas relaes de maneira direta e eficiente, sem a necessidade da transferncia dos dados para uma nica relao (DZEROSKY; RAEDT; WROBEL, 2003; DOMINGOS, 2003). As propostas iniciais de minerao de dados multirrelacional tiveram origem no campo da Programao Lgica Indutiva (Inductive Logic Programming - ILP), com tcnicas baseadas na representao dos padres na forma de programas lgicos (KNOBBE et al., 1999). Posteriormente, comearam a surgir tcnicas voltadas especificamente minerao em bases de dados relacionais, tais como os algoritmos CONNECTION (RIBEIRO, 2004), MRFPGROWTH (KANODIA, 2005), GFP-GROWTH (PIZZI, 2006) e CONNECTIONBLOCKQ (GARCIA, 2008). A maioria das propostas de algoritmos de minerao de dados multirrelacional so, na verdade, extenses dos correspondentes algoritmos tradicionais. Tais extenses nem sempre so uma tarefa trivial, visto que a adequao abordagem multirrelacional implica diversas alteraes nas estruturas de dados ou no prprio funcionamento, de modo que o algoritmo estendido possa representar e, principalmente, manipular e extrair os padres multirrelacionais. Atualmente, possvel encontrar na literatura propostas de algoritmos multirrelacionais para as principais tarefas de minerao de dados - anlise de regras de associao, classificao, anlise de agrupamentos (DZEROSKY; RAEDT; WROBEL, 2003), atendendo importantes reas de aplicao, tais como mecanismos de busca na web, marketing, biologia molecular, anlise de dados de negcios, bioinformtica, entre outros (BLOCKEEL; DZEROSKY, 2005).

Os algoritmos de minerao de dados multirrelacional existentes, em especial os de extrao de regras de associao - que constituem o foco deste trabalho -, produzem resultados satisfatrios quando submetidos ao processamento de pequenas e mdias bases de dados. O grande desafio se configura com a minerao de bases de dados volumosas, que so compostas de milhes de registros. Os algoritmos existentes respaldam sua eficincia na utilizao de estruturas de dados em memria que sintetizam e representam a base de dados. Tais estruturas reduzem o acesso a disco e possibilitam utilizar estratgias mais eficientes na busca de padres, tal como a abordagem pattern-growth, inicialmente apresentada pelo algoritmo FP-GROWTH. Cabe ressaltar, no entanto, que a dificuldade, nesse caso, a alocao de memria suficiente para representar toda a estrutura de dados necessria ao funcionamento desses algoritmos, dadas as dimenses das grandes bases de dados com tamanhos variando de centenas de megabytes at terabytes de dados. Diante do exposto, verifica-se a relevncia e a necessidade do estudo voltado minerao multirrelacional de grandes volumes de dados. Isso porque os algoritmos existentes focam somente a eficincia no processo de extrao de padres multirrelacionais, incrementando suas solues a fim de que realizem a tarefa no menor tempo possvel. Porm, faz-se interessante e relevante propor tambm solues que atentem para o fator escalabilidade, de modo a permitir a verificao da viabilidade de aplicao dos algoritmos multirrelacionais em grandes bases de dados relacionais.

1.3 Objetivo
O objetivo do presente trabalho apresentar um algoritmo multirrelacional de extrao de regras de associao com o foco na aplicao em grandes bases de dados relacionais. Ao contrrio dos algoritmos multirrelacionais existentes, que partem do pressuposto de que h memria suficiente para a representao e processamento dos padres, a atual proposta leva em conta a limitao desse recurso em situaes nas quais o processamento envolve grande volume de dados. Para lidar com tal restrio, utiliza-se do conceito de partio da base de dados para subdividi-la em unidades cujo tamanho possa ser alocado em memria, viabilizando o seu processamento.

Alm disso, o algoritmo de minerao multirrelacional deve apresentar desempenho satisfatrio que viabilize a anlise das bases de dados em tempo hbil. Para isso, a proposta ter como base o algoritmo PATRICIA-MINE (PIETRACAPRINA; ZANDOLIN, 2003), que realiza a tarefa de extrao de padres associativos com base na estratgia pattern-growth, introduzida pelo algoritmo FPGROWTH (HAN; PEI; YIN, 2000). Nessa proposta, ser utilizada uma estrutura de dados mais compacta e eficiente denominada Patricia-trie - acrnimo de Practical Algorithm To Retrieve Information Coded In Alphanumeric - ou Radix-tree, que comprime substancialmente a representao dos dados por meio da reduo no nmero de ns da rvore, permitindo a otimizao no uso do espao em memria.

1.4 Metodologia
O trabalho iniciou-se com o levantamento dos algoritmos tradicionais e multirrelacionais destinados minerao de regras de associao. Em relao a esses ltimos, foram considerados no estudo os algoritmos que extraem padres de mltiplas tabelas de uma base de dados relacional. Na literatura possvel encontrar diversos trabalhos que efetuam a extrao de padres multirrelacionais por meio de programas lgicos ou de grafos, porm essas vertentes no foram analisadas nesse instante. O estudo focou basicamente os algoritmos multirrelacionais derivados da abordagem tradicional, ou seja, aqueles que estendem o funcionamento dos algoritmos de minerao de uma nica tabela para o contexto multirrelacional. A partir da leitura e do estudo desses algoritmos, foi possvel notar que as propostas existentes apresentavam uma limitao na minerao de grandes bases de dados, fato esse que motivou a elaborao do presente trabalho. Para apresentar uma soluo razovel para tal limitao, realizou-se, como primeiro passo, um levantamento dos algoritmos tradicionais existentes, com o objetivo de identificar propostas que apresentaram bons resultados quando aplicadas em grandes volumes de dados. Uma vez escolhido o algoritmo tradicional base, iniciaram-se as fases de projeto e de implementao do algoritmo multirrelacional. Nessas etapas, foram elaboradas as estratgias de representao dos itens frequentes, bem como o processamento e o relacionamento dos padres provenientes das diversas tabelas.

O algoritmo elaborado pelo presente trabalho foi escrito em linguagem de programao Java, plataforma J2SE, verso 1.6. O ambiente de desenvolvimento integrado utilizado para a codificao e confeco da interface grfica foi o Netbeans1, verso 6.7.1. Dentre as razes para a escolha dessa linguagem de programao, destaca-se: Linguagem padro para o desenvolvimento dos trabalhos do grupo de pesquisa; Ferramenta de suporte minerao de dados multirrelacional concebida em trabalho anterior implementado nesta linguagem (OYAMA, 2006); Linguagem e ferramentas de desenvolvimento gratuitas; Portabilidade e independncia de plataforma e de sistema gerenciador de banco de dados (SGBD); Existncia de boa documentao oficial e no-oficial, tais como fruns de discusso, tutoriais etc. Especificamente em relao ferramenta, denominada fDMMR (OYAMA, 2006), cabe fazer o adendo de que se trata de um recurso que oferece suporte s principais etapas do processo de Descoberta de Conhecimento em Bases de Dados (KDD), na qual foram implementados tanto o algoritmo proposto quanto aqueles destinados aos testes, que sero descritos futuramente. Tal ferramenta foi utilizada como base para a coleta das mtricas de desempenho dos algoritmos, caracterizandose como uma interface para a preparao dos dados, para a aplicao do algoritmo e para a visualizao dos resultados. A descrio pormenorizada da ferramenta encontra-se no Apndice D deste trabalho. Para a finalizao do desenvolvimento e implementao do objetivo desta dissertao, foi realizado um estudo comparativo entre o algoritmo proposto e alguns trabalhos correlatos. Tal comparao foi feita com o intuito de verificar como a soluo apresentada comporta-se frente a outros algoritmos tradicionais e multirrelacionais em relao ao tempo de execuo, ao uso de memria, bem como ao grau de escalabilidade.

Disponvel em http://www.netbeans.org

1.5 Organizao da dissertao


A seguir, esto relacionados e brevemente descritos os captulos que compem o presente trabalho. No captulo 2 so relacionados os principais conceitos envolvendo a minerao de dados multirrelacional. Alm disso, descreve-se o levantamento dos principais trabalhos correlatos. No captulo 3, detalhado o desenvolvimento do trabalho propriamente dito, descrevendo os conceitos, as estruturas de dados e as demais informaes referentes ao algoritmo proposto. O captulo 4, por sua vez, foi utilizado para a apresentao dos testes comparativos, bem como para uma discusso acerca dos resultados obtidos. Por fim, o captulo 5 apresenta as concluses obtidas e algumas propostas para continuidade do trabalho.

Captulo 2

Minerao multirrelacional de regras de associao

2.1 Consideraes iniciais


O armazenamento e a recuperao de grandes volumes de dados tornou-se vivel com a disponibilidade de ferramentas, tcnicas e meios de armazenamento, principalmente com a consolidao do modelo relacional na dcada de 80. O surgimento de sistemas gerenciadores de banco de dados (SGBDs) possibilitou a manipulao eficiente dos dados. Apesar disso, medida que as bases de dados aumentavam em tamanho, diminua a possibilidade de se obter informaes. A minerao de dados surgiu, ento, como uma evoluo natural desse processo (HAN; KAMBER, 2006), possibilitando que os dados, uma vez devidamente armazenados, pudessem ser transformados em informaes teis. A minerao multirrelacional uma abordagem recente que possibilita extrair padres envolvendo mltiplas tabelas, configurando-se como a maneira mais direta e eficiente de minerao em bases de dados relacionais. Neste captulo sero apresentados os conceitos que fundamentam o presente trabalho, com foco na minerao de regras de associao. Os principais algoritmos de minerao da abordagem tradicional que trabalham sobre uma nica tabela sero inicialmente destacados, pois alguns deles servem de base para os algoritmos multirrelacionais tratados no trabalho. O cerne deste captulo a discusso acerca de

minerao de dados multirrelacional, levantando um panorama das abordagens e dos algoritmos existentes.

2.2 Minerao de dados


A minerao de dados ou data mining pode ser definida como a aplicao de tcnicas computacionais para extrao de conhecimento a partir de um conjunto de dados que, geralmente, grande o suficiente para inviabilizar a anlise humana. De um modo geral, pode ser definida como sendo a aplicao de algoritmos especficos para a extrao de padres dos dados (FAYYAD; PIATESTKY-SHAPIRO; PADHRAIC, 1996). Complementando as definies acima, a minerao de dados ainda pode ser definida como tcnicas de extrao de informaes no-triviais, implcitas, previamente desconhecidas e potencialmente teis dos dados armazenados (HAN; CHEN; YU, 1996). A minerao de dados considerada a etapa mais importante do Processo de Descoberta de Conhecimento em Bases de Dados ou Knowledge Discovery in Databases (FAYYAD; PIATETSKY-SHAPIRO; PADHRAIC, 1996). Alm da minerao de dados propriamente dita, o KDD apresenta as etapas de prprocessamento nas quais os dados so preparados para minerao e de psprocessamento, em que os padres obtidos so transformados a fim de facilitar a visualizao e a compreenso. No apndice A, feito maior detalhamento acerca das definies de KDD e minerao de dados.

2.3 Minerao de regras de associao


A minerao de regras de associao pode ser vista como uma das mais importantes tarefas de minerao de dados. O desafio de encontrar regras de associao no contexto de bases de dados foi inicialmente exposto em Agrawal, Imielinski e Swami (1993) e consiste na busca por padres associativos que indiquem o relacionamento entre conjuntos de itens. O exemplo clssico que ilustra a minerao de regras de associao a chamada anlise de cesta de compras (market basket analysis), que consiste na identificao das associaes entre itens tal

10

que a presena de alguns itens na cesta implique frequentemente a presena de outros. A soluo desse enunciado possvel com a aplicao de algoritmos de minerao de regras de associao. Uma regra de associao pode ser definida na forma de uma implicao XY, sendo X e Y conjuntos de itens. Tais conjuntos so chamados de itemsets, sendo comum tambm referenci-los por k-itemsets, em que k o nmero de itens que o referido conjunto possui. Esse padro indica uma associao entre o conjunto antecedente (X) e o conjunto consequente (Y), de modo que a ocorrncia de X implica a ocorrncia de Y. Para obter e mensurar as regras de associao so utilizadas duas medidas de interesse denominadas suporte e confiana. O suporte representa a frequncia da regra de associao, ou seja, indica a porcentagem de ocorrncia concomitante dos conjuntos X e Y na base de dados.

(2.1) A medida confiana, por sua vez, indica a frequncia em que a ocorrncia do conjunto de itens X implica na ocorrncia do conjunto Y. Tal medida expressa a validade da regra de associao XY. (2.2)

Para melhor ilustrar o uso dessas medidas de interesse, considere um exemplo tpico de anlise de cesta de compras, cujos dados esto representados na tabela 2.1. Cada linha da tabela pode ser vista como uma cesta de compras, a qual possui um identificador (ID) e os respectivos itens comprados.
Tabela 2.1 Exemplo de cesta de compras

ID 1 2 3 4 5

ITENS Po, Manteiga, Leite Po, Caf Po, Leite Caf, Frutas, Iogurte Po, Iogurte, Leite

11

Considere que os itemsets X e Y sejam, respectivamente, {Po} e {Leite}. Para o clculo do suporte da regra {Po}{Leite}, por exemplo, computado o nmero de linhas nas quais ocorrem esses dois itemsets. Nesse caso, possvel encontrar ambos em 3 (trs) cestas de compras. Portanto, o valor de suporte igual a 3 / 5 = 0,6. O clculo da confiana equivalente ao conceito de probabilidade condicional P(Y | X), ou seja, indica a frequncia em que o itemset consequente Y ocorre dado o itemset antecedente X. Em termos prticos, para a regra de associao {Po}{Leite}, verifica-se que das 4 (quatro) cestas de compras em que ocorre o itemset {Po} em 3 (trs) h tambm a ocorrncia do itemset {Leite}, isto , a referida regra de associao possui confiana igual a 3 / 4 = 0,75. A tabela 2.2 relaciona essas duas medidas de interesse, descrevendo a influncia de cada uma na interpretao das regras de associao.
Tabela 2.2 Relao entre suporte e confiana (BERSON; SMITH; THEARLING, 1999) CONFIANA ALTA CONFIANA BAIXA

A regra frequentemente correta A regra raramente correta, mas


SUPORTE ALTO SUPORTE BAIXO

pode

ser

frequentemente pode ser frequentemente utilizada

utilizada A regra frequentemente correta, A regra raramente correta e mas pode ser raramente utilizada pode ser raramente utilizada

Os algoritmos de minerao das regras de associao necessitam conhecer os valores mnimos de suporte e de confiana, que so definidos a critrio do analista de dados. Esses valores so utilizados como limitantes para estabelecer quais as regras de associao so interessantes ao contexto da anlise. As regras que satisfazem, concomitantemente, o suporte mnimo (min_sup) e a confiana mnima (min_conf) so chamadas de regras de associao fortes e so aquelas que so resultantes do processo de minerao (HAN; KAMBER, 2006). A extrao de regras de associao pode ser, de um modo geral, dividida em duas etapas. A primeira consiste em localizar todos os itemsets frequentes, ou seja, aqueles cujo suporte seja igual ou superior ao valor min_sup previamente

12

estabelecido. A segunda etapa consiste na gerao das regras de associao fortes a partir dos itemsets frequentes. A etapa que realmente determina o desempenho do processo de extrao de regras de associao a busca pelos itemsets frequentes. Os diversos algoritmos propostos objetivam justamente otimizar essa etapa, tentando realiz-la da maneira mais eficiente possvel. A gerao de regras de associao fortes, por sua vez, uma etapa mais simples que pode ser resolvida de maneira direta, dada a prvia obteno de todos os itemsets frequentes (KANTARDZIC, 2003).

2.4 Algoritmos de minerao de regras de associao


Dentre os algoritmos de minerao de regras de associao existentes, destacam-se o APRIORI (AGRAWAL; SRIKANT, 1994), baseado no paradigma de gerao-e-teste de candidatos2 (CGT) e o FP-GROWTH (HAN; PEI; YIN, 2000), baseado no paradigma pattern-growth3 (PG). Nas subsees seguintes, sero discutidas brevemente as principais caractersticas desses dois algoritmos de grande relevncia para a rea de minerao de regras de associao. Em seguida, ser apresentado um panorama dos algoritmos tradicionais existentes, destacando quais foram as contribuies trazidas pelas propostas.

2.4.1 Algoritmo APRIORI O algoritmo APRIORI foi idealizado e formalizado por Agrawal e Srikant (1994) a partir dos modelos matemticos para a extrao de regras de associao booleanas. O seu funcionamento baseado no conceito de gerao-e-teste de candidatos, que divide cada iterao do algoritmo em duas fases, como ilustrado na Figura 2.1. A primeira fase visa obteno dos k-itemsets candidatos. Na primeira iterao, os 1-itemsets candidatos so obtidos por meio da varredura no conjunto de

2 3

Em ingls, Candidate Generate-and-Test Pattern-growth Preferiu-se manter o termo em ingls por no haver traduo que representa to bem o termo original

13

dados. A partir da segunda iterao, o conjunto de k-itemsets candidatos gerado por meio de combinaes dos (k-1)-itemsets frequentes. A segunda fase consiste no teste dos itemsets candidatos a fim de filtrar aqueles que so de interesse. Ou seja, faz a verificao daqueles que atendem frequncia mnima pr-estabelecida (minsup).

Figura 2.1 Esquema de funcionamento do algoritmo Apriori

Uma caracterstica marcante do APRIORI o processo de busca por largura, de modo que na i-sima iterao so encontrados os i-itemsets frequentes. Alm disso, como j foi indicado anteriormente, a gerao dos k-itemsets candidatos depende do conjunto dos (k-1)-itemsets frequentes, ou seja, para obter padres em uma dada iterao, necessrio consultar conhecimentos prvios - prior knowledge -, fato este que deu origem ao nome do algoritmo (HAN; KAMBER, 2006). A eficincia desse algoritmo est ligada possibilidade de reduo do espao de busca a cada iterao, por meio de uma operao denominada poda (prune). Para isso, o algoritmo leva em considerao a propriedade APRIORI, a qual diz que todos os subconjuntos no-vazios de um itemset frequente devem ser tambm frequentes (AGRAWAL; SRIKANT, 1994). Em outras palavras, se I um itemset infrequente,

14

qualquer outro itemset J que contenha I tambm deve ser infrequente, pois a frequncia de J no ser maior que a frequncia de I. Essa propriedade permite que o algoritmo APRIORI apresente um considervel ganho no desempenho, uma vez que, por meio da etapa de poda, so descartados da anlise os itemsets candidatos que possuam algum subconjunto infrequente. Assim, o algoritmo APRIORI apresenta boa eficincia na minerao de pequenos volumes de dados e para um alto valor de suporte mnimo (GYORODI et al., 2004). medida que a quantidade de dados a ser minerada aumenta e/ou o valor do suporte mnimo diminui, o algoritmo APRIORI acaba gerando um nmero muito elevado de itemsets candidatos a cada iterao, o que torna o processamento computacionalmente custoso e, muitas vezes, invivel. Alm disso, levando-se em conta que a cada iterao o algoritmo varre completamente o conjunto de dados para contabilizar as ocorrncias de cada itemset, pode-se verificar que, quanto mais itemsets candidatos houver, mais iteraes sero necessrias para a concluso da minerao e, consequentemente, maior ser o nmero de operaes de acesso a disco (HAN; KAMBER, 2006).

2.4.2 Algoritmo FP-GROWTH O algoritmo FP-GROWTH (HAN; PEI; YIN, 2000) introduziu a abordagem pattern-growth (PG) para a extrao de regras de associao, apresentando uma alternativa s limitaes existentes nos algoritmos de gerao-e-teste de candidatos (CGT). A proposta da abordagem PG utilizar-se de estruturas de dados - na maioria das vezes, tipos especializados de rvores - para a compresso e representao da base de dados. Tal utilizao possibilita que o cerne do processamento seja realizado primariamente em memria, reduzindo as custosas operaes que envolvem a leitura da base de dados. Alm disso, os padres frequentes so extrados medida que o algoritmo de minerao percorre tais estruturas, no sendo necessria a onerosa etapa de gerao de candidatos, tal como ocorre com os algoritmos de CGT. Outra consequncia do uso dessas estruturas que, uma vez localizado um itemset frequente, o mesmo no necessita ser armazenado para consultas em iteraes posteriores, ou seja, no h a ideia de conhecimentos prvios. Particularmente, o algoritmo FP-GROWTH utiliza uma estrutura denominada frequent-pattern tree ou simplesmente FP-tree para representar comprimidamente o

15

contedo da base de dados. A Figura 2.2 apresenta um exemplo de uma FP-tree, no qual o n null{} o seu n raiz e os demais ns contm o identificador do item e o valor do suporte, separados por : (dois pontos), respectivamente.

Figura 2.2 Exemplo de uma FP-tree (HAN; KAMBER, 2006)

Na FP-tree, cada sub-ramo da rvore representa a ocorrncia dos itens desse sub-ramo na base de dados. Por exemplo, tome o ramo mais direita da FP-tree da Figura 2.2, o qual formado pelos itens I1 e I3. O itemset associado a esse ramo , portanto, o {I1, I3} e possui o suporte em valor absoluto igual a 2 (dois), que o valor do suporte do ltimo n visitado nesse ramo, no caso, I3. De modo anlogo, pode-se obter todas as combinaes de itemsets frequentes desse conjunto de dados, bastando o percurso por todos os ramos e sub-ramos da FP-tree. Ainda com base na Figura 2.2 possvel observar a existncia de uma estrutura auxiliar denominada tabela Header. Cada linha dessa tabela armazena o valor total do suporte correspondente a cada item, bem como mantm uma lista encadeada conectando todos os ns do mesmo item. Essa indexao apresenta-se como boa soluo para a melhoria do desempenho quando a FP-tree for percorrida para extrao dos itemsets frequentes.

16

Cabe acrescentar tambm que o algoritmo FP-GROWTH necessita de apenas duas passagens pela base de dados para a construo da rvore. Uma vez construda, todas as demais operaes referentes extrao de itemsets so feitas em memria por meio da FP-tree. Assim, o algoritmo apresenta bom desempenho na maioria dos casos, devido capacidade de compresso da base de dados pela FP-tree. A exceo ocorre quando a base de dados a ser minerada esparsa, ou seja, cada registro da base de dados apresenta diferenas significativas em relao aos demais. Com isso, a FP-tree no consegue comprimir a base eficientemente, resultando em uma rvore com muitos ns, o que causa um impacto negativo no desempenho. Nesse caso, o algoritmo Apriori beneficia-se da esparsidade dos dados, pois o nmero de itemsets candidatos reduzido rapidamente a cada iterao (PEI et al., 2001).

2.4.3 Outras propostas para a minerao de regras de associao As principais propostas de melhorias no algoritmo APRIORI focam a reduo do nmero de passagens pela base de dados e a gerao de um nmero menor de itemsets candidatos a cada iterao (GANTI; GEHRKE; RAMAKRISHNAN, 1999). Uma dessas propostas consiste no uso de estruturas hash para melhorar o desempenho da tarefa de extrao de regras de associao, abordada no algoritmo HASH-MINE (WOJCIECHOWSKI; ZAKRZEWICZ, 2000) e no algoritmo DHP (PARK; CHEN YU, 1995). Especificamente, o algoritmo DHP prope uma estrutura hash para favorecer a gerao dos itemsets candidatos no algoritmo APRIORI, principalmente, nas duas primeiras iteraes, as quais apresentam o maior custo computacional. Alm disso, essa tcnica emprega mtodos de prune mais eficientes, diminuindo consideravelmente o nmero de transaes utilizadas a cada iterao. Outra proposta de otimizao do algoritmo APRIORI envolveu a utilizao de uma trie como estrutura central do algoritmo. Tal estrutura apresentou um ganho de desempenho superior quando comparado com as propostas de otimizao do algoritmo Apriori baseadas em estruturas hash (BODON, 2003). O algoritmo PARTITION (SAVASERE; OMIECINSKI; NAVATHE, 1995), por sua vez, apresenta o conceito de particionamento como uma estratgia para minerao de grandes bases de dados. Para esses casos, o algoritmo prope a diviso da base de dados em unidades lgicas menores, denominadas parties, tal que cada partio possua um tamanho conveniente, de forma que isoladamente possa ser

17

processada em memria. Alm do particionamento, o algoritmo PARTITION apresenta a vantagem de realizar a minerao em 2 (duas) passagens pela base de dados, diferentemente do algoritmo APRIORI, no qual no possvel prever a quantidade de passagens, pois sua aplicao depende do nmero de iterao que o algoritmo necessita efetuar. O algoritmo SAMPLING (TOIVONEN, 1996) uma proposta que realiza a minerao de padres por meio de amostragem da base de dados. Isso permite que padres possam ser extrados de grandes bases de dados, bastando a gerao de uma amostra que possa ser representada e processada em memria. O algoritmo SAMPLING efetua a minerao em, no mximo, duas passagens pela base de dados. H ainda estudos de integrao de algoritmos de minerao de regras de associao com bases de dados relacionais, com a elaborao de sentenas SQL para gerao de itemsets candidatos, com a contagem dos suportes dos itemsets e com as demais rotinas do algoritmo APRIORI (IMIELINSKI; VIRMANI, 1999; SARAWAGI; THOMAS; AGRAWAL, 2000). A abordagem pattern-growth (PG) e seu principal representante, o algoritmo FP-GROWTH, tambm tem sido alvo de inmeros estudos voltados melhoria do algoritmo original ou a propostas de novos mtodos eficientes de extrao de itemsets sem a gerao de candidatos. Os estudos so, na maioria das vezes, voltados elaborao de novas estruturas de dados mais eficientes do que a FP-tree original ou, ainda, visam a apresentar solues que sejam eficazes tanto em bases de dados densas quanto em bases de dados esparsas. O algoritmo H-MINE (PEI et al., 2001) apresenta uma nova estrutura denominada H-Struct que, diferentemente da FP-tree, favorece a minerao de itemsets frequentes em dados esparsos. Tal estrutura mantm para cada registro da base de dados um vetor ou array de itens, alm de um conjunto de ponteiros que referenciam outros registros. O algoritmo H-MINE tambm realiza duas passagens pela base de dados para a construo da H-Struct. Uma vez construda, essa estrutura segue constante durante o processamento e no h a criao de novas estruturas, apenas so realizadas manipulaes envolvendo os ponteiros. O mesmo no ocorre com o algoritmo FP-GROWTH, que cria uma subrvore a cada chamada recursiva. Embora o H-MINE apresente melhorias no desempenho, principalmente, para bases de dados esparsas, o FP-GROWTH ainda mais eficiente em base de dados densas.

18

Por esse motivo, o H-MINE utiliza uma heurstica para identificar quando mais vantajoso representar os dados por meio de uma H-Struct ou uma FP-tree. Para minerao de grandes bases de dados, o algoritmo adota uma estratgia similar ao algoritmo PARTITION, subdividindo a base de dados em parties. J o OPPORTUNEPROJECT um algoritmo hbrido que estende as funcionalidades do FP-GROWTH e do H-MINE, processando os padres utilizando uma FP-tree ou H-Struct, dependendo da densidade do conjunto de dados (LIU et al., 2002). O algoritmo ITL-MINE (GOPALAN; SUCAHYO, 2002), por sua vez, otimiza o H-MINE necessitando de apenas uma passagem pela base de dados para a construo da estrutura central. Ademais, o algoritmo CTIL-MINE (SUCAHYO; GOPALAN, 2003) apresenta ainda a vantagem de utilizar uma estrutura compacta que reduz o espao necessrio para armazenamento e tambm diminui o tempo gasto de percurso na estrutura (CEGLAR; RODDICK, 2006). Outra proposta nessa linha o algoritmo CT-PRO (GOPALAN; SUGAHYO, 2004) que apresenta desempenho superior ao CTIL-MINE, alm de apresentar uma estratgia de particionamento para possibilitar a minerao de grandes bases de dados. Em outro estudo, o algoritmo FP-GROWTH foi investigado quanto sua estratgia de explorao. No algoritmo original, a estratgia utilizada a bottom-up, de modo que o processamento dos padres inicia-se dos ns-folhas em direo ao n raiz. O algoritmo proposto TD-FP-GROWTH adota a estratgia top-down e demonstra-se mais eficiente em relao ao tempo e ao espao de memria utilizado. Assim como o H-MINE, o algoritmo TD-FP-GROWTH utiliza a estrutura principal durante todo o processamento, no sendo necessria a criao de sub-estruturas durante as chamadas recursivas (WANG et al., 2002). O algoritmo PATRICIAMINE (PIETRACAPRINA; ZANDOLIN, 2003) apresenta uma nova estrutura denominada Patricia-trie, que possui uma alta capacidade de compresso dos ns, reduzindo o espao necessrio em memria para o armazenamento da rvore. Com essa proposta, a estrutura proporciona ao algoritmo um bom desempenho em bases de dados esparsas e densas, sendo mais eficiente que os algoritmos H-MINE e OPPORTUNEPROJECT. Alm desses, destacam-se o AFOPT (LIU et al., 2003), o FP-GROWTH* (GRAHNE; ZHU, 2003), o NONORDFP (RACZ, 2004) e o FP-GROWTH-TINY

19

(OZKURAL; AYKANAT, 2004), que apresentam melhorias no desempenho em relao ao FP-GROWTH original, alm de reduzirem o espao de memria requerido para o armazenamento das estruturas de dados dos algoritmos (SAID; DOMINIC; ABDULLAH, 2009). Os trabalhos mais recentes tm focado, particularmente, nas propostas de melhorias e incrementos dos algoritmos do estado da arte. Para citar, h um estudo envolvendo o algoritmo FP-GROWTH, com o intuito de otimiz-lo para que possa tomar proveito do ganho de desempenho oferecido pelos modernos processadores com arquitetura de vrios ncleos, tambm conhecidos como multi-core (LIU et al., 2007). Outro trabalho recente apresenta o algoritmo PTCLOSE, que uma variao do PATRICIAMINE, modificado para possibilitar a minerao de um tipo diferenciado de itemset denominado closed itemset. A minerao de closed itemsets retorna um nmero menor de padres, visto que remove itemsets que sejam subconjuntos de outros. O PTCLOSE faz uso da estrutura Patricia-trie e apresenta eficincia superior aos dos algoritmos correlatos (NEZHAD; SADREDDINI, 2007). Uma estrutura de indexao denominada IMine foi proposta para uso juntamente com algoritmos de minerao de regras de associao, em especial, o FPGROWTH. A IMine visa dar suporte minerao em bases de dados relacionais, proporcionando um ganho de desempenho ao reduzir o custo das operaes de entrada e sada (BARALIS; CERQUITELLI; CHIUSANO, 2009). Cabe ainda relacionar os estudos comparativos de algoritmos de minerao de regras de associao encontrados na literatura (HIPP; GNTZER; NAKHAEIZADEH, 2000; GOETHALS, 2003; DUNHAM et al., 2002; IVNCSY; KOVCS; VAJK, 2004; ZHAO; BHOWMICK, 2006). H tambm um estudo especfico que compara os algoritmos APRIORI, PARTITION e SAMPLING (GORODI, 2003). O trabalho de Dexters, Purdom e Gucht (2006) apresenta uma anlise probabilstica dos principais algoritmos de minerao de regras de associao. Acrescenta-se lista ainda o trabalho de Wang (2004), o qual apresenta uma proposta de categorizao dos diversos algoritmos de extrao de regras de associao.

20

2.5 Minerao de dados multirrelacional


Os algoritmos tradicionais de minerao de dados, tais como o APRIORI e o FP-GROWTH, buscam por padres em dados que estejam dispostos em uma estrutura nica, por exemplo, uma tabela ou um arquivo. Para a aplicao desses algoritmos em bases de dados relacionais, os dados provenientes de um conjunto de relaes devem passar por uma etapa de pr-processamento, na qual os mesmos so devidamente reunidos em uma nica tabela por meio de operaes de juno ou agregao4. Embora essa proposta seja possvel e suficiente para algumas aplicaes, a utilizao dos algoritmos tradicionais de minerao em mltiplas tabelas pode produzir resultados insatisfatrios. Quando da extrao em grandes bases de dados, a operao de juno pode gerar uma tabela com muitos registros, comprometendo o desempenho dos algoritmos. Alm disso, durante o pr-processamento pode ocorrer aparecimento de inconsistncias nos dados ou perda de informaes (TSECHANSKY et al., 1999; DZEROSKI; RAEDT; WROBEL, 2003), como ser ilustrado no exemplo a seguir.

Agregao: operao que toma uma coleo de valores como entrada, retornando um valor simples que sintetiza o conjunto. Por exemplo, mdia e contagem so operaes de agregao. (SILBERSCHATZ et al., 1999).

21

Paciente
ID_Pac 011 012 013 ... Nome Sexo Data_Nascimento Joo M 01/08/1976 Maria F 10/05/1984 Csar M 14/11/1960 ... ... ...

Internao
ID_Intern Paciente Motivo Dias 0201 011 Infeco 20 0202 012 Bronquite 2 0203 012 Pneumonia 14 0204 013 Bronquite 4 ... ... ... ...

(a)
ID_Paciente 011 012 012 013 ... Nome Joo Maria Maria Csar ... Sexo M F F M ... Data_Nascimento ID_Internacao 01/08/1976 0201 10/05/1984 0202 10/05/1984 0203 14/11/1960 0204 ... ... Motivo Infeco Bronquite Pneumonia Bronquite ... Dias 20 2 14 4 ...

(b)
ID_Paciente 011 012 013 ... Nome Joo Maria Csar ... Sexo M F M ... Data_Nascimento ID_Internacao Num_Internacoes Mdia_Dias 01/08/1976 0201 1 20 10/05/1984 0203 2 8 14/11/1960 0204 1 4 ... ... ... ...

(c)
Figura 2.3 a) Relaes Paciente e Internao em uma base de dados relacional; b) Resultado de uma juno natural de Paciente e Internao; c) Utilizao de funes agregadas gerando os atributos Num_Internacoes e Mdia_Dias.

O exemplo ilustra uma base de dados simplificada de um hospital, na qual so armazenados os dados referentes aos pacientes e suas respectivas internaes. A Figura 2.3(a) apresenta a tabela Paciente que se associa tabela Internao, por meio de um relacionamento do tipo um para muitos. Para tornar possvel a minerao dessa base de dados pelos algoritmos tradicionais, necessrio realizar um pr-processamento para reunir os dados em uma nica tabela. A Figura 2.3(b) exibe o resultado da juno natural entre Paciente e Internao, que origina uma tabela contendo os dados provenientes de ambas, por meio do relacionamento de chave estrangeira existente (atributo Paciente da tabela Internao). Como mencionado anteriormente, esse pr-processamento pode introduzir inconsistncias nos dados de origem. No exemplo, a tabela resultante da juno apresenta redundncia nos dados da paciente Maria, o que levaria a imprecises nos resultados obtidos. A Figura 2.3(c) exemplifica o uso de funes de agregao para a generalizao dos dados, que objetiva eliminar as redundncias existentes na tabela (b). No exemplo, foram utilizadas as funes soma e mdia. A primeira funo foi

22

utilizada para contabilizar o nmero de internaes de cada paciente atributo Num_Internacoes; a segunda funo, por sua vez, foi aplicada para calcular a mdia de dias de internao atributo Mdia_Dias. No obstante, o uso de funes de agregao pode levar a perda de informaes, tal como ocorre quando se utiliza o valor mdio (Mdia_Dias) para representar o conjunto de dias de internao. A mdia de dias para a paciente Maria de 8 (oito) dias; entretanto, ao verificar a tabela Internao, pode-se notar que as duas internaes desta paciente variam bastante entre si, que so 2 (dois) e 14 (catorze) dias, respectivamente. Essa diferena pode indicar um padro associativo com o motivo da internao, de modo que a anlise do atributo Dias seria, nesse caso, mais interessante que Mdia_Dias. O uso de funes agregadas ainda causa outro problema: a eliminao de atributos noagregveis, como o caso de Motivo. O atributo no pode ser sumarizado e, por esse motivo, removido da tabela resultante. A minerao multirrelacional uma abordagem mais recente que visa contornar as dificuldades encontradas na aplicao dos algoritmos tradicionais, possibilitando a extrao de padres diretamente em mltiplas relaes, sem a necessidade da transferncia dos dados para uma nica relao (DZEROSKY; RAEDT; WROBEL, 2003; DOMINGOS, 2003). Com isso, evitam-se as custosas operaes de juno e as perdas semnticas ocasionadas pela limitao da representao em uma nica tabela. Assim, de um modo geral, a minerao multirrelacional pode ser descrita como um campo multi-disciplinar que engloba programao lgica indutiva, aprendizagem de mquina, KDD, bases de dados relacionais, entre outros (BLOCKEEL; DZEROSKY, 2005). A minerao de bases de dados relacionais uma das principais aplicaes da abordagem multirrelacional (PIZZI; RIBEIRO; VIEIRA, 2005; TEREDESAI et al., 2005; GARCIA; VIEIRA, 2008), porm o leque de aplicaes ainda mais amplo. Tal abordagem possibilita a minerao de objetos complexos ou estruturados, tais como protenas e subestruturas moleculares e outras aplicaes cujas informaes estruturais sejam relevantes anlise (PAGE; CRAVEN, 2003). Apesar de introduzir vantagens frente abordagem tradicional, a minerao de dados multirrelacional no apresentou um rpido crescimento inicial, o que foi ocasionado devido a trs fatores principais: i) a escalabilidade limitada apresentada

23

pelos algoritmos multirrelacionais; ii) a inabilidade para tratar rudos; e iii) incertezas e a carncia de aplicaes que pudessem fazer uso efetivo desses algoritmos (DOMINGOS, 2003). As primeiras propostas viveis de minerao multirrelacional remetem Programao Lgica Indutiva (Inductive Logic Programming - ILP), com tcnicas baseadas na representao dos padres em forma de lgica de primeira ordem (KNOBBE et al., 1999), que tem como principal representante o algoritmo WARMR (DEHASPE; RAEDT, 1997). Atualmente, possvel encontrar uma quantidade razovel de tcnicas multirrelacionais, sendo que as principais tarefas de minerao de dados anlise de regras de associao, classificao, anlise de agrupamentos, entre outros j podem ser realizadas seguindo a abordagem multirrelacional. (DZEROSKY; RAEDT; WROBEL, 2003).

2.6 Algoritmos multirrelacionais de minerao de regras de associao


Os algoritmos multirrelacionais de extrao de regras de associao utilizam diferentes abordagens para representar e extrair os padres. Uma primeira abordagem engloba os algoritmos baseados em lgica ou tambm conhecidos como algoritmos de programao lgica indutiva (ILP). A caracterstica principal dessa abordagem a representao dos dados e padres em datalogs, que so escritos na forma de lgica de primeira ordem. O algoritmo de ILP mais difundido para minerao de regras de associao o WARMR (DEHASPE; RAEDT, 1997), que apresenta um funcionamento baseado no algoritmo Apriori. O WARMR tem sido utilizado para minerao de padres em dados estruturados, tal como encontrados em bases de dados qumicas (KING; SRINIVASAN; DEHASPE, 2001). Outro algoritmo de ILP encontrado na literatura o FARMER (NIJSSEN; KOK, 2001), que possui similaridades com o WARMR, porm apresenta uma maior eficincia com o uso de rvores ordenadas para organizao dos itens frequentes. O algoritmo RADAR (CLARE; WILLIAMS; LESTER, 2004), por sua vez, apresenta uma proposta para extrao de regras de associao em grandes bases de dados relacionais por meio do uso de tcnicas de indexao que reduzem a quantidade de memria principal necessria para a busca dos padres frequentes.

24

Os algoritmos baseados em grafos so outro tipo de abordagem para a extrao de regras de associao multirrelacionais. Nesta abordagem, a representao dos padres multirrelacionais feita por meio de grafos e o processo de minerao embasado em teorias matemticas para identificao do conjunto de subgrafos que satisfazem uma determinada frequncia de ocorrncia (KETKAR; HOLDER; COOK, 2005). O algoritmo AGM (INOKUCHI; WASHIO; MOTODA, 2000), baseado tambm no APRIORI, foi uma das primeiras solues a utilizar a teoria matemtica de grafos para extrao de padres frequentes. A partir da, surgiram outras tcnicas - como o FSG (KURAMOCHI; KARYPIS, 2004) - visando melhorias no desempenho do processo. Por outro lado, algoritmos como o GBI (MATSUDA et al., 2000) propem tcnicas heursticas que apresentam solues aproximadas - porm com melhor eficincia - para a tarefa de encontrar padres frequentes. Por fim, h os algoritmos multirrelacionais baseados no funcionamento e nas estruturas de dados de tcnicas tradicionais, principalmente o APRIORI e o FPGROWTH. O intuito dessa abordagem estender os algoritmos de minerao tradicional, que funcionam adequadamente para extrao de padres em uma nica tabela, adaptando-os ao contexto multirrelacional de modo a possibilitar o processamento de padres estruturalmente mais complexos. O escopo deste trabalho recai justamente sobre os algoritmos dessa abordagem. O algoritmo multirrelacional MRFP-GROWTH (TEREDESAI et al., 2005) uma extenso do algoritmo tradicional FP-GROWTH e utiliza-se de uma estrutura de dados denominada MRFP-tree para representar os padres relacionais. O algoritmo inicialmente localiza os padres frequentes locais para cada uma das tabelas envolvidas. Na etapa seguinte, esses padres locais so avaliados a fim de se obter os padres multirrelacionais de fato. O APRIORI-GROUP (RIBEIRO; VIEIRA; TRAINA, 2005) estende o funcionamento do algoritmo Apriori, permitindo a minerao de padres envolvendo mais de uma tabela. Para isso, o algoritmo utiliza-se do conceito de agrupamentos, corrigindo possveis imprecises provenientes da redundncia de dados introduzidas durante a etapa de pr-processamento, em que as mltiplas tabelas so agrupadas em uma nica por meio de operaes de juno.

25

O algoritmo CONNECTION (PIZZI; RIBEIRO; VIEIRA, 2005), por sua vez, baseia-se no algoritmo FP-GROWTH e foi inicialmente idealizado para uso em data warehouses. No entanto, possvel utiliz-lo na abordagem multirrelacional, desde que as mltiplas tabelas compartilhem ao menos um atributo. O algoritmo efetua inicialmente a minerao dos padres para cada tabela. Ento, os padres locais so combinados para a extrao dos padres multirrelacionais, de modo anlogo ao algoritmo MRFP-GROWTH. O algoritmo APRIORIMR (OYAMA, 2006) caracteriza-se como uma extenso do algoritmo Apriori para minerao de regras de associao multirrelacional. O APRIORIMR modifica algumas etapas do algoritmo original, adequando-os para ser utilizado em bases de dados relacionais. Para o clculo correto do suporte dos itemsets multirrelacionais, utilizado o conceito de agrupamento (RIBEIRO; VIEIRA; TRAINA, 2005), de modo que as medidas de interesse suporte e confiana levem em conta a possvel duplicidade de dados devido juno de tabelas. Outro representante dessa categoria o algoritmo GFP-GROWTH (PIZZI, 2006), que realiza a minerao de padres multirrelacionais baseando-se no funcionamento do FP-GROWTH e no conceito de agrupamentos, introduzido pelo algoritmo APRIORI-GROUP (RIBEIRO; VIEIRA; TRAINA, 2005). Segundo resultados obtidos em um teste comparativo, o algoritmo GFP-GROWTH apresenta melhor desempenho em relao ao algoritmo CONNECTION. O CONNECTIONBLOCK (GARCIA, 2008) uma modificao do algoritmo CONNECTION (PIZZI; RIBEIRO; VIEIRA, 2005) para contemplar o conceito de bloco, que consiste no conjunto de registros das tabelas envolvidas que compartilham um mesmo valor de um determinado identificador. Alm disso, foi proposto outro algoritmo denominado CONNECTIONBLOCKQ (GARCIA, 2008), que possui o diferencial de possibilitar a minerao de regras de associao contendo campos quantitativos. O CONNECTIONBLOCKQ automatiza a tarefa de discretizao dos dados quantitativos, que , na maioria dos casos, realizada na etapa de pr-processamento, transformando os dados contnuos em classes ou faixas de valores. Outros estudos recentes em minerao multirrelacional de regras de associao focam em algoritmos ILP, os quais no fazem parte do escopo deste trabalho, uma vez que no operam diretamente nas bases de dados relacionais. Pode-

26

se destacar o novo mtodo denominado C2D (SENKUL; TOROSLU, 2009) que visa tornar vivel a descoberta de regras por usurios no-experientes. Para tal, a proposta remove tarefas complexas, tal como a especificao de predicados, que so comuns na ILP. H ainda outro algoritmo ILP recente, KDB-KRIMP (KOOPMAN; SIEBES, 2009), que visa a extrao de padres em bases de dados por meio de uma nova forma de representao denominada code tables. Tal representao apresenta a vantagem de mesclar descries globais e locais, permitindo representar a base de dados completa e, ao mesmo, preservar os detalhes de cada padro. A literatura de minerao multirrelacional de regras de associao em bases de dados, diferentemente da abordagem tradicional, carece de estudos comparativos ou elucidativos acerca do desempenho dos algoritmos existentes. Pelas concluses provenientes da abordagem tradicional, sabe-se que os algoritmos baseados no paradigma PG, tais como o MRFP-GROWTH e o GFP-GROWTH, apresentam maior eficincia do que baseados no paradigma CGT, como o caso do APRIORI-GROUP e APRIORIMR, para a maioria das situaes e configuraes de bases de dados. Nas sees subsequentes, ser realizado um estudo das principais propostas de minerao de regras de associao em bases de dados relacionais, descrevendo o funcionamento, as estruturas de dados, bem como as principais contribuies e dificuldades de cada algoritmo.

2.6.1 Algoritmo MRFP-GROWTH O algoritmo MRFP-GROWTH (TEREDESAI et al., 2005), caracteriza-se como uma extenso do algoritmo tradicional FP-GROWTH (HAN; PEI; YIN, 2000), contemplando a extrao de regras de associao envolvendo mltiplas relaes. Assim como no FP-GROWTH, a principal caracterstica do algoritmo MRFP-GROWTH a ausncia da custosa etapa de gerao de candidatos existente no algoritmo APRIORI e seus derivados. Para que isso seja possvel, utilizada uma estrutura em memria que representa os itens frequentes e as informaes das associaes dos itemsets, denominada MRFP-tree. O MRFP-GROWTH realiza o processo de extrao de padres frequentes em mltiplas tabelas. Para isso, classifica as tabelas presentes na base de dados como sendo primria ou secundria. A tabela primria aquela que possui uma determinada chave primria ID, enquanto que as tabelas secundrias possuem uma

27

referncia chave P da tabela primria, geralmente por meio de uma chave estrangeira. Na Figura 2.4, apresenta-se a tabela 1 como primria com seu atributo TID como identificador e as tabelas 2 e 3 como secundrias, com chaves estrangeiras TID2 e TID3, respectivamente. As tabelas secundrias possuem um relacionamento do tipo um-para-muitos com a tabela primria. Tabela 1: primria
TID 1 2 3 4 5 6 7 Itens A,B,C,D E,G,H A,B C,D,A G,E,C F,H,G D,E,B

Tabela 2: secundria-A
TID2 1 1 2 3 4 5 5 7 Itens ,, , ,, , ,, , ,, ,

Tabela 3: secundria-B
TID3 1 2 2 3 4 6 6 7 Itens Aa Cc Bb Dd Aa Bb Ee Cc Ff Hh Dd Gg Gg Ff Aa Cc Ee

Figura 2.4 Tabela primria e tabelas secundrias (KANODIA, 2005)

Um importante conceito do algoritmo MRFP-GROWTH a propagao de ID set. Um ID set pode ser definido como o conjunto de IDs em que um determinado padro ocorre (KANODIA, 2005). Tome como exemplo o padro AB da tabela 1, o qual pode ser encontrado nas tuplas com TID 1 e 3. Assim, define-se como o ID set deste padro como {1,3}. A ideia da propagao de ID set relacionar implicitamente padres de tabelas diferentes, evitando o uso de junes, que um processo bem mais custoso computacionalmente.

Algoritmo: MRFP-Growth Entradas: Base de dados D; minsup Sadas: Conjunto de padres multirrelacionais frequentes 1. Para cada tabela secundria, faa: a) Construa a MRFP-tree para os itens da tabela. Mantenha uma lista de IDs associados a cada item b) Extraia os itens frequentes da MRFP-tree e os respectivos ID sets 2. Construa uma MRFP-tree para os IDs nos ID sets de todos os padres frequentes gerados por todos as relaes secundrias 3. Minere a MRFP-tree final e encontre os padres frequentes.
Figura 2.5 Algoritmo MRFP-Growth (KANODIA, 2005)

28

O funcionamento bsico do algoritmo est descrito na Figura 2.5. O mesmo inicia-se com a construo de uma MRFP-tree para cada tabela secundria da base de dados, com o intuito de obter seus respectivos padres frequentes locais. A construo da MRFP-tree similar ao processo que ocorre no algoritmo FP-GROWTH, com exceo de que cada n da rvore tem que manter uma lista de IDs indicando as tuplas em que o item ocorre. Considere o suporte mnimo minsup=2. A Figura 2.6 apresenta a MRFP-tree construda a partir da tabela primria.

Figura 2.6 MRFP-tree para a tabela primria (KANODIA, 2005)

Como mostra a figura, cada n da MRFP-tree contm, respectivamente, o item, o valor do contador de suporte - que indicado entre parnteses - e uma lista de IDs, que indicada entre chaves. De modo anlogo, repete-se a construo das MRFP-trees para as tabelas secundria-A e secundria-B, as quais so exibidas, respectivamente, pela Figura 2.7 e pela Figura 2.8.

29

Figura 2.7 MRFP-tree para a tabela secundria-A (KANODIA, 2005)

Figura 2.8 MRFP-tree para a tabela secundria-B (KANODIA, 2005)

Cada uma das rvores geradas so mineradas por um algoritmo similar ao FPGROWTH, com a diferena de considerar a existncia das ID sets. medida que os padres frequentes locais vo sendo obtidos, os mesmos devem ser inseridos em uma tabela, tal como mostrada na Tabela 2.3. As linhas 1 a 8 so os padres frequentes locais resultantes da tabela primria, as linhas 9 a 12 referem-se tabela secundriaA e a linha 13 refere-se tabela secundria-B.
Tabela 2.3 Padres frequentes extrados isoladamente (KANODIA, 2005)

ID 1 2 3 4 5 6 7

ID set 26 25 14 14 17 14 14

Padres frequentes HG GE DC DCA DB DA CA

Suporte 2 2 2 2 2 2 2

30

8 9 10 11 12 13

13 45 14 15 47 16

BA Cc Aa

2 2 2 2 2 2

Cada linha da tabela recebe um ID nico e relaciona cada padro frequente obtido s linhas da tabela em que ocorre por meio do atributo ID set. Por exemplo, o padro frequente H G ocorre nas tuplas com ID 2 e 6 da tabela primria. Uma vez que todas as MRFP-tree forem processadas e a tabela de padres frequentes esteja disponvel, inicia-se a construo da MRFP-tree final, que permitir extrair de fato os padres multirrelacionais. O processo de construo considera o atributo ID set da tabela de padres frequentes como o item dos ns da MRFP-tree final, tal como exibida na Figura 2.9.

Figura 2.9 MRFP-tree final (KANODIA, 2005)

A minerao da MRFP-tree final gerar padres frequentes que consistem em IDs e no em itens reais. A Tabela 2.4 apresenta esses padres obtidos pela minerao da MRFP-tree final. O primeiro campo da tabela o Cross Support, que definido como a frequncia de ocorrncia de um padro na base de dados, considerando as mltiplas tabelas. O campo ID set apresenta os padres frequentes obtidos pela MRFP-tree final, enquanto que o campo ID apresenta as tuplas da tabela de padres frequentes (Tabela 2.3) em que h a ocorrncia do ID set. Por fim, a ltima coluna apresentada o padro frequente j mapeado para os itens reais. Esse

31

mapeamento feito armazenando os padres frequentes das linhas da Tabela 2.3 indicadas pelo(s) valor(es) do campo ID. O padro frequente final ser o conjunto formado pela unio desses padres frequentes. Na Tabela 2.4, por exemplo, observe-se o ID set 1 4 que apresenta, no campo ID, o conjunto {3, 4, 6, 7, 10}. Verificando na Tabela 2.3 as linhas correspondentes aos valores desse conjunto, encontram-se os seguintes padres frequentes D C, D C A, D A, C A, , respectivamente. Assim, o padro frequente final o conjunto gerado pela unio desses padres.
Tabela 2.4 Padres frequentes finais (KANODIA, 2005)

Cross Support 2 2 2 2 2 2 2 2 2

ID set 13 47 17 26 16 25 45 15 14

ID 8 12 5 1 13 2 9 11 3 4 6 7 10

Padres frequentes AB DB HG Cc Aa EG DCA

O algoritmo MRFP-GROWTH preserva as principais caractersticas do FPGROWTH, no qual foi baseado. Entre elas, destaca-se a utilizao de estruturas de dados em memria para efetuar o processo de minerao. Isso reduz substancialmente o acesso a disco, porm, como ocorre com o prprio FP-GROWTH, a memria principal pode no ser suficiente para o processamento de grandes volumes de dados. O MRFP-GROWTH, no entanto, tenta minimizar o problema de limitao de memria por meio da estratgia de anlise das tabelas individualmente, de modo que somente os dados de uma nica tabela fiquem na memria em dado momento. Essa estratgia tambm permite extrair padres locais, ou seja, que ocorrem dentro de uma nica tabela. Com isso, so encontrados tanto padres frequentes multirrelacionais quanto aqueles envolvendo tabelas individuais. Outra caracterstica positiva do MRFP-GROWTH a ideia de propagao de ID, que implicitamente relaciona as tuplas de diferentes tabelas. Isso evita o uso de junes, as quais, como dantes mencionado, configuram-se como operaes computacionalmente custosas. Assim, tal ideia acaba por resultar em um ganho de desempenho.

32

Por outro lado, um ponto fraco do algoritmo MRFP-GROWTH o grande nmero de estruturas de dados (MRFP-tree) criadas durante o processo de minerao de dados. Se N for o nmero de tabelas da base de dados, sero necessrias N+1 MRFP-trees. Alm do espao de memria considervel, a gerao de muitas MRFPtrees acarreta tambm a necessidade de repetidas execues dos mtodos de construo e minerao da rvore. Porm, cabe acrescentar que, assim como o FP-GROWTH, o algoritmo MRFPGROWTH tambm apresenta baixo desempenho quando a base de dados esparsa. Isso ocorre porque, uma vez que a rvore apresenta muitos ramos, o processo recursivo de minerao acaba por tornar-se oneroso.

2.6.2 Algoritmo APRIORI-GROUP O algoritmo APRIORI-GROUP (RIBEIRO; VIEIRA; TRAINA, 2005) modifica o algoritmo APRIORI (AGRAWAL; SRIKANT, 1994) para possibilitar a minerao confivel em bases de dados considerando a ocorrncia de agrupamentos. Agrupamentos so definidos como conjuntos de transaes ou tuplas relacionadas que trazem consigo informaes sobre uma mesma entidade. A no observncia desse fato acarreta padres incoerentes, uma vez que as medidas de interesse possam estar incorretas. Em carter de exemplo, considere as tabelas Clientes (Tabela 2.5) e Compras (Tabela 2.6) de uma base de dados comercial.
Tabela 2.5 Tabela Clientes Tabela 2.6 Tabela Compras

IDCliente 1 2 3 4

Sexo M F M M

Renda Mdia Alta Mdia Baixa

IDCompra Produto IDCliente 1 Po 1 2 Carne 2 3 Leite 2 4 Po 2 5 Leite 3 6 Po 4

Para utilizar o algoritmo APRIORI-GROUP, faz-se necessria uma etapa de prprocessamento de dados, a fim de efetuar a juno das tabelas Clientes e Compras. O resultado da juno, a tabela Cli-Compra, mostrada na Tabela 2.7 .

33

Tabela 2.7 Tabela Cli-Compra resultante da juno das tabelas Clientes e Compras

IDCliente 1 2 2 2 3 4

Sexo M F F F M M

Renda Mdia Alta Alta Alta Mdia Baixa

IDCompra 1 2 3 4 5 6

Produto Po Carne Leite Po Leite Po

Como pode ser observado nas linhas destacadas da Tabela 2.7, h valores redundantes para os atributos relativos aos clientes. Neste caso, as informaes sobre o sexo e a renda do cliente cujo IDCliente 2 aparecem trs vezes na tabela CliCompra. A aplicao de um algoritmo tradicional nesta base de dados levaria extrao de padres incorretos ou imprecisos. Para ilustrar melhor esse problema, tome-se o padro {Sexo=F, Renda=Alta}. Nos algoritmos tradicionais, tal padro apresentaria suporte=50%, desde que 3 (trs) das 6 (seis) tuplas da tabela satisfaam o padro. Porm, o valor semanticamente correto para o suporte deste padro 25%, uma vez que somente um dos quatro clientes apresenta esse padro. Para evitar esse tipo de erro, o algoritmo APRIORI-GROUP implementa as medidas de interesse tomando por base a ocorrncia de agrupamentos na tabela alvo. No caso do exemplo da Tabela 2.7, pode-se assumir que o IDCliente o identificador dos agrupamentos, de modo que mltiplas ocorrncias de um padro em um mesmo agrupamento passam a ser contabilizadas como uma nica ocorrncia. Assim, agrupando as tuplas com base no atributo IDCliente, as mltiplas ocorrncias do padro Sexo=F, Renda=Alta para o cliente 2 so reduzidas a uma nica, de modo que agora o valor de suporte 25%, que a frequncia de ocorrncia semanticamente correta. Na Figura 2.10 tem-se o pseudocdigo do APRIORI-GROUP, que apresenta muita semelhana com o algoritmo Apriori. As diferenas existentes decorrem da adaptao do algoritmo tradicional para manipular corretamente os padres levando em considerao a ocorrncia de agrupamentos na base de dados.

34

Algoritmo: Apriori-Group Entradas: Base de dados D; minsup Sada: Itemsets frequentes L 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) 17) G= // conjunto de agrupamentos para cada transao t se existir g G tal que ID(g) = ID(t) adicione a transao t ao agrupamento g seno crie um novo agrupamento g tal que ID(g)=ID(t) adicione g a G para cada agrupamento g G para cada item c que ocorre em g c.contador++; L1={c | c.contador/|G| >= minsup} // conjunto de 1-itemsets frequentes para (k = 2; Lk-1 ; k++) Ck =Apriori-gen(Lk-1) // conjunto de k-itemsets candidatos para cada agrupamento g G para cada candidato c Ck contido em g faa c.contador++ Lk = { c Ck | c.contador/|G| >= minsup } // conjunto de k-itemsets candidatos 18) retorne L = Uk Lk;
Figura 2.10 Algoritmo Apriori-Group (RIBEIRO; VIEIRA; TRAINA, 2005)

O procedimento inicia-se com a criao do conjunto de agrupamentos G, no qual cada transao da base de dados avaliada a fim de que registros com mesmo identificador ID formem um mesmo grupo (linhas 1 a 7). Em seguida, verifica-se o nmero de ocorrncias dos itens de cada agrupamento na base de dados. Os itens que apresentam uma frequncia superior ao suporte mnimo minsup so considerados 1itemsets frequentes, dando origem ao conjunto L1 (linhas 8 a 11). A partir desse ponto, o algoritmo APRIORI-GROUP comporta-se similarmente ao algoritmo APRIORI, efetuando alternadamente as etapas de gerao e teste de candidatos at que todos os k-itemsets sejam extrados (linhas 12 a 18). O algoritmo APRIORI-GROUP apresenta-se como uma alternativa para a minerao de dados envolvendo mltiplas tabelas, uma vez que possibilita a extrao de padres coerentes por meio da anlise da ocorrncia de agrupamentos no conjunto de dados. Porm, a sua aplicao se torna relativamente comprometida, tendo em vista a necessidade da juno de tabelas. Como j visto anteriormente, essa operao computacionalmente custosa e pode acarretar perdas semnticas. Alm disso, a proposta tem por base o algoritmo APRIORI e, portanto, apresenta os mesmos

35

problemas da abordagem CGT na minerao de grandes volumes de dados, ou seja, a gerao de elevado nmero de itemsets candidatos e a quantidade de passagens pela base de dados.

2.6.3 Algoritmo GFP-GROWTH O algoritmo GFP-GROWTH (PIZZI, 2006) aplica o conceito de agrupamentos no algoritmo FP-GROWTH para possibilitar a extrao de padres multirrelacionais. O seu funcionamento similar ao do APRIORI-GROUP, ou seja, efetivada inicialmente a juno das tabelas que faro parte da anlise e, a partir desta tabela alvo, so extrados os padres levando em considerao a existncia de agrupamentos. Assim como no APRIORI-GROUP, o cerne do GFP-GROWTH consiste em identificar os agrupamentos existentes na base de dados e efetuar a minerao dos padres com base nesses agrupamentos. O pseudocdigo do GFP-GROWTH mostrado na Figura 2.11.

Algoritmo: GFP-Growth Entradas: Base de dados D; suporte mnimo minsup; confiana mnima minconf Sada: Itemsets frequentes L // Definies de variveis // G: conjunto de agrupamentos // ftp: estrutura GFP-tree // FP: conjunto de padres frequentes 1) 2) 3) 4) 5) G = findGroups(D) ftp = geraGFPTree(null) FP = GFP-Growth( ftp, null ) para cada elemento de FP gere as regras envolvendo seus itens tal que conf_a >= minconf
Figura 2.11 Algoritmo GFP-Growth (PIZZI, 2006)

A etapa de gerao dos agrupamentos (linha 1) consiste em organizar as transaes da base de dados de acordo com o valor de seus IDs. Se j houver algum agrupamento com o ID da transao em questo, a mesma includa neste agrupamento. Caso contrrio, um novo agrupamento criado e a transao inserida neste agrupamento.

36

A segunda etapa do algoritmo a construo da GFP-tree (linha 2), que ocorre de maneira similar ao da FP-tree, com exceo da necessidade de representao dos agrupamentos nos ns da rvore e na tabela header. Na Figura 2.12 apresentado um exemplo de GFP-tree, no qual possvel observar a existncia de uma lista de agrupamentos para cada n da rvore, relacionando o conjunto de agrupamentos em que determinado item ocorreu.

Figura 2.12 Exemplo de GFP-tree (PIZZI, 2006)

A lista de agrupamentos presente na tabela header indica quais agrupamentos esto relacionados com todas as ocorrncias (ns) de um dado item. Ou seja, essa lista consiste na unio das listas de agrupamentos de todos os ns correspondentes ao item. Por exemplo, o item Quantia=80-180 ocorre em dois ns da GFP-tree da Figura 2.12, sendo que o primeiro apresenta a lista de agrupamentos {Ct3, Ct7} e o segundo apresenta a lista {Ct3}. Embora esse item ocorra em trs transaes, o que se considera sua ocorrncia nos agrupamentos, de modo que mltiplas ocorrncias dentro de um mesmo agrupamento so contabilizadas como uma nica ocorrncia, tal como ocorre no APRIORI-GROUP. Dessa forma, realizada uma unio das duas listas de agrupamentos, resultando na lista {Ct3, Ct7}, que armazenada na tabela header para consultas posteriores. A frequncia de ocorrncia do item , na verdade, expressa pela quantidade de agrupamentos presente nesta lista. No item Quantia=80-180, por exemplo, o contador igual a 2, que de fato o nmero correto de ocorrncias deste item na base de dados.

37

Aps a construo da GFP-tree, a mesma passada como parmetro para que se possa dar incio ao procedimento de extrao dos padres frequentes (linha 3). Essa etapa semelhante a do algoritmo FP-GROWTH, na qual os padres vo sendo obtidos por meio das GFP-tree condicionais, que so construdas e mineradas recursivamente. Uma vez obtidos todos os itemsets frequentes, o algoritmo ento gera as regras de associao cujo valor de confiana seja maior do que o limitante previamente estabelecido (linha 4 e 5). O algoritmo GFP-GROWTH, assim como o APRIORI-GROUP, necessita de uma etapa de pr-processamento para reunir as informaes em uma nica tabela, incorrendo nas limitaes j mencionadas como o alto custo computacional e a possibilidade de perdas semnticas. Alm disso, o algoritmo GFP-GROWTH realiza a tarefa de minerao de padres utilizando uma estrutura (GFP-tree) armazenada em memria. Se por um lado isso reduz a necessidade de acessos a disco, por outro torna o algoritmo limitado quantidade de memria disponvel, o que se torna um grande problema medida que se aumenta o tamanho da base de dados a ser analisada.

2.6.4 Algoritmo APRIORIMR O algoritmo APRIORIMR foi idealizado para efetuar a minerao de padres diretamente em bases de dados relacionais. Esse algoritmo foi concebido para ser utilizado juntamente com uma ferramenta de minerao de dados multirrelacional (OYAMA, 2006). O APRIORIMR uma adaptao do algoritmo APRIORI ao contexto multirrelacional, possibilitando a extrao de padres sem a necessidade de um prprocessamento para a juno das mltiplas tabelas. De forma anloga aos algoritmos APRIORI-GROUP (RIBEIRO; VIEIRA; TRAINA, 2005) e GFP-GROWTH (PIZZI, 2006), o APRIORIMR utiliza o conceito de agrupamentos para a extrao de padres multirrelacionais, ajustando os valores das medidas de interesse para que contemplem os grupos e, assim, obtenham padres que sejam precisos e reflitam o contedo armazenado na base de dados. Para isso, define-se uma das tabelas da base de dados como a tabela de agrupamento geralmente aquela que permite individualizar os registros, como por exemplo, tabela de clientes, de pacientes etc. a qual utilizada como referncia na etapa de clculo do suporte e teste dos itemsets frequentes. justamente na etapa de

38

gerao do conjunto de itemsets frequentes que se concentram as principais modificaes introduzidas pelo algoritmo APRIORIMR. O processo de obteno dos itemsets frequentes inicia-se com o recebimento de um conjunto de itemsets candidatos. O valor de suporte para cada candidato , ento, calculado por meio da seguinte consulta SQL que retorna o nmero de ocorrncias do itemset especificado. SELECT COUNT( DISTINCT pkTAg1, pkTAg2, ..., pkTAgN ) FROM listaTabelas WHERE listaPk_Fk AND listaCondies (2.3)

Os termos pkTAg1, pkTAg1, ..., pkTAgN so as chaves primrias da tabela de agrupamento. O uso da sentena COUNT( DISTINCT ... ) nesses termos permite que a consulta efetue a contagem do suporte levando-se em conta a ocorrncia de agrupamento. Ou seja, mltiplas ocorrncias encontradas para o mesmo identificador de grupo - no caso a chave primria da tabela de agrupamento so ignoradas, sendo computada apenas uma nica ocorrncia. Na clusula FROM h a listagem das tabelas com as quais o itemset em questo se relaciona. O termo listaCondies, por sua vez, representa o conjunto de condies da forma tabela.atributo=valor, sendo uma condio para cada item do itemset. E, por fim, a listaPk_Fk enumera as expresses que relacionam duas tabelas por meio da relao entre chaves estrangeiras e chaves primrias. O algoritmo APRIORIMR baseia-se no algoritmo APRIORI e, por isso, herda suas principais caractersticas. A principal limitao decorre justamente do fato de seu funcionamento basear-se na abordagem de gerao-e-teste de candidatos, o que compromete o desempenho, tendo em vista a gerao de um nmero elevado de itemsets. Analogamente ao algoritmo APRIORI-GROUP, o algoritmo realiza juno das tabelas para a obteno dos valores de suporte, incorrendo nos problemas j mencionados de custo computacional e perdas semnticas.

2.7 Consideraes finais


Nesse captulo, foram abordados os princpios da extrao de regras de associao, que uma das tarefas mais importantes da minerao de dados. Foram

39

apresentados os dois mais difundidos algoritmos de minerao de regras de associao: APRIORI e FP-GROWTH. Em seguida, foi apresentado um panorama da minerao de regras de associao, relacionando os principais algoritmos tradicionais existentes. Na segunda parte do captulo, abordou-se a minerao de dados multirrelacional, que apresenta a caracterstica de possibilitar a extrao de padres provenientes de mltiplas tabelas. Essa abordagem possui ampla aplicao, principalmente, em contextos em que a disposio estrutural da base de dados possui considervel valor semntico. Para essa abordagem, foram discutidos os principais algoritmos existentes na literatura, apresentando-se as vantagens e as limitaes de cada proposta. Com isso, foram fundamentados os principais conceitos utilizados no trabalho, bem como foram apresentados os principais algoritmos do estado da arte, tanto os tradicionais quanto os multirrelacionais.

40

Captulo 3

Minerao de dados multirrelacional em grandes bases de dados

3.1 Consideraes iniciais


A maioria dos dados oriundos das mais diversas reas de conhecimento fica armazenada em bases de dados relacionais (YIN, 2007). Especificamente, as grandes aplicaes tais como redes de varejo, instituies financeiras, indstrias e o prprio meio acadmico geram e armazenam imensos volumes de dados. A anlise dessas bases humanamente improvvel e, muitas vezes, mesmo com o uso das tcnicas de minerao existentes ainda no possvel finalizar a busca de padres em bases de dados dessa dimenso, quer seja pela ineficincia em termos de tempo computacional, quer seja pela inabilidade inata da tcnica - a qual pode apresentar limitaes que impossibilitam a manipulao de grandes quantidades de dados e padres. Neste captulo, apresentado o algoritmo multirrelacional proposto para minerao de regras de associao em grandes bases de dados relacionais denominado MR-RADIX -, bem como so expostos os conceitos e as propostas correlatas e relevantes para o desenvolvimento do trabalho.

41

3.2 Definio do problema


Com o surgimento das propostas de algoritmos multirrelacionais, tornou-se possvel a extrao eficiente de regras de associao em SGBDs relacionais. Esse fato de suma importncia, visto que as bases de dados relacionais caracterizam-se como importantes e difundidas fontes de armazenamento de dados, sendo utilizadas por aplicaes dos mais variados tipos e dimenses, desde ferramentas computacionais simples at complexos sistemas que geram e manipulam grandes volumes de dados. A minerao de grandes bases de dados apresenta dificuldades particulares, uma vez que um algoritmo que apresenta um excelente desempenho pode no ser capaz de completar o processamento dessa quantidade de dados. Basta verificar que as bases de dados de tamanho elevado possuem milhes de registros e gigabytes ou at mesmo terabytes de dados armazenados. Com isso, o nmero de padres que podem ser gerados por um algoritmo de minerao de regras de associao excede a capacidade de memria disponvel. A ttulo de exemplo, considere que o algoritmo APRIORI seja utilizado para a minerao de itemsets frequentes de tamanho 40, ou seja, o itemset formado por 40 itens. Para completar essa tarefa, faz-se necessrio gerar e testar 240 1012 itemsets candidatos. Considerando que cada itemset ocupe o espao de memria correspondente a um inteiro de 4 (quatro) bytes, obtm-se que o espao total de memria necessria para o armazenamento de todos os itemsets candidatos 4x1012 bytes ou 4 terabytes. Evidentemente que essa quantidade de memria necessria ao processamento excede a quantidade atual de memria disponvel nos equipamentos convencionais. Mas cabe salientar que, para possibilitar a minerao de regras de associao, h algumas propostas da abordagem tradicional que focam o fator escalabilidade, de modo que o tempo de execuo de um algoritmo seja proporcional dimenso do conjunto de dados (GANTI; GEHRKE; RAMAKRISHNAN, 1999). Essas propostas fazem uso de novas estruturas de dados para otimizar o uso do espao de memria e apresentar algoritmos mais eficientes para a busca de padres frequentes. O algoritmo CT-PRO, por exemplo, apresenta uma estrutura de dados denominada Compressed FP-Tree ou CFP-Tree, que reduz em at 50% o espao em

42

memria ocupado quando comparada com a FP-tree convencional. Outro algoritmo que prope uma otimizao nesse sentido o FP-GROWTH-TINY, que chega a reduzir 2,4 vezes o espao de memria necessrio em relao ao FP-GROWTH. O algoritmo PATRICIAMINE, por sua vez, faz uso da estrutura Patricia-trie, a qual consiste em uma modificao da trie convencional que contempla estratgias de compresso dos ns. Essa estrutura provou-se muito eficiente quanto ao requerimento de espao de memria, sobretudo em grandes volumes de dados. Em um teste comparativo, foi mostrado que, para uma tabela contendo aproximadamente 400.000 registros, a estrutura Patricia-trie ocupa cerca de 41 MB, enquanto que uma rvore trie convencional ocupa mais de 163 MB (PIETRACAPRINA; ZANDOLIN, 2003). Tais propostas reduzem substancialmente o espao de memria requerido, possibilitando que uma quantidade de dados maior possa ser processada com os mesmos recursos computacionais. Porm, para bases de dados significativamente grandes, a otimizao do uso da memria por si s no garante a integralidade do processamento, tendo em vista que ainda haver a questo da memria limitada. Considere-se, por exemplo, que o algoritmo possua escalabilidade linear, de modo que a relao entre o tamanho do conjunto de dados e o tamanho da estrutura mantenha-se sempre proporcional. Imagine que a tabela citada anteriormente, passe de 400.000 (quatrocentos mil) para 400.000.000 (quatrocentos milhes) de registros. Seguindo a proporcionalidade, o espao ocupado pela Patricia-trie seria tambm multiplicado por 1000 (mil), ou seja, necessitaria de aproximadamente 40 GB de memria para sua representao. Para possibilitar uma minerao de dados dessa dimenso, as propostas existentes subdividem os dados iniciais em pores cujo tamanho permita o processamento em memria. Tal estratgia denomina-se particionamento e foi inicialmente proposta pelo algoritmo PARTITION (SAVASERE; OMIECINSKI; NAVATHE, 1995), porm j foram realizados estudos para adapt-la a outros algoritmos de minerao em uma nica tabela, tais como o H-MINE (PEI et al., 2001, 2007) e o FP-GROWTH* (GRAHNE; ZHU, 2004). As propostas citadas de minerao de grandes volumes de dados pertencem abordagem tradicional, de modo que consideram apenas a anlise de padres envolvendo uma nica tabela ou arquivo. No contexto multirrelacional, por outro lado, limitado o estudo de algoritmos eficientes e escalveis para a minerao de

43

grandes bases de dados relacionais. A maioria dos algoritmos multirrelacionais existentes focam essencialmente no desempenho, no levando em conta o problema do processamento de grandes volumes de dados em limitados espaos de memria.

3.3 Viso geral da proposta


O algoritmo proposto visa minerao de grandes bases de dados relacionais. Para isso, o mesmo baseia-se no algoritmo 2003), tradicional PATRICIAMINE ao contexto (PIETRACAPRINA, multirrelacional. A escolha desse algoritmo justificada pelo fato de que sua proposta faz uso de uma estrutura de dados mais eficiente, favorecendo ganhos no desempenho e a otimizao do uso do espao em memria. Cabe salientar que essas se tornam caractersticas cada vez mais importantes medida que o processamento envolve bases de dados de dimenses substancialmente grandes. O algoritmo PATRICIAMINE foi selecionado aps um levantamento prvio de leitura e estudo - de diversas propostas presentes na literatura atual. O referido algoritmo, em vrios experimentos, apresentou resultados mais favorveis e melhor desempenho, ainda quando comparado com o algoritmo OPPORTUNEPROJECT (LIU et al., 2002), considerado um dos mais avanados algoritmos da abordagem patterngrowth (PIETRACAPRINA, ZANDOLIN, 2003; GOPALAN; SUCAHYO, 2004; SHANG, 2005). A ttulo de comparao, observe o grfico da Figura 3.1, que apresenta um comparativo dos tempos de execuo desses dois algoritmos para uma base de dados denominada Pumsb. Tal base composta de aproximadamente 50 mil registros. Para uma melhor visualizao dos grficos, utiliza-se a escala logartmica para o eixo Y, correspondente ao tempo de execuo. ZANDOLIN, estendendo-o

44

Figura 3.1 Grfico do tempo de execuo dos algoritmos PATRICIAMINE e OPPORTUNEPROJECT (PIETRACAPRINA; ZANDOLIN, 2003)

Salienta-se que medida que se reduz o valor do suporte, mais itemsets tornam-se frequentes e devem ser analisados, o que acarreta o aumento do tempo de execuo. Dessa forma, possvel visualizar no grfico acima que o algoritmo PATRICIAMINE apresenta, no geral, melhor desempenho que o OPPORTUNEPROJECT. A diferena no tempo de execuo vai tornando-se ainda mais expressiva medida que o suporte reduzido. Na Figura 3.2 apresentado o grfico comparativo de tempo de execuo do algoritmo PATRICIAMINE com relao aos dois principais representantes de algoritmos de minerao de regras de associao, a saber, APRIORI e FP-GROWTH. Tambm consta no grfico o tempo de execuo referente ao algoritmo FPGROWTH* (GRAHNE; ZHU, 2005), o qual se caracteriza como uma implementao mais otimizada do algoritmo FP-GROWTH. A base de dados, nesse caso, a Connect, a qual contm mais de 67 mil registros.

45

Figura 3.2 Grfico comparativo entre PATRICIAMINE, FP-GROWTH, FP-GROWTH* e APRIORI (GRAHNE; ZHU, 2005)

Nota-se que, para valores mais altos de suporte, maiores que 60%, as duas propostas baseadas no FP-GROWTH apresentam um desempenho ligeiramente inferior ao do algoritmo PATRICIAMINE. Para valores menores de suporte, ou seja, inferiores a 50%, a diferena no desempenho acentua-se. Enquanto que o tempo de execuo do PATRICIAMINE mantm-se com um aumento linear, nos demais algoritmos o tempo apresenta crescimento exponencial. O algoritmo APRIORI, como pode ser verificado no mesmo grfico, apresentou tempos de execuo elevados em todas as faixas de valores de suporte. Para valores de suporte superior a 70%, os seus tempos de execuo foram to altos que sequer se encontram relacionados.

46

Figura 3.3 Grfico comparativo do tempo de execuo dos algoritmos PATRICIAMINE, CT-PRO e FP-GROWTH-TINY

O grfico da Figura 3.3, por sua vez, apresenta os tempos de execuo, comparando o PATRICIAMINE com algoritmos recentes de desempenho similar. Tais resultados comparativos foram obtidos por meio da consulta ao website do IEEE Workshop on Frequent Itemset Mining Implementations (FIMI'04)5. Cabe acrescentar que a base de dados referente ao teste a Pumsb* - uma modificao da Pumsb - na qual foram removidos os itens com alto nmero de ocorrncias. Embora os algoritmos apresentem tempos de execuo bem prximos, o algoritmo PATRICIAMINE se sobressai em relao aos demais quando observado o quesito espao de memria principal necessria para a efetivao da minerao, tal como ilustrado na Figura 3.4. Essa caracterstica positiva possui relao direta com a estrutura de dados Patricia-trie, a qual representa com mais eficincia o conjunto de itens frequentes na memria.

Disponvel em http://fimi.cs.helsinki.fi/. Acesso em 30 de agosto de 2009.

47

Figura 3.4 Grfico comparativo do espao de memria ocupado dos algoritmos PATRICIAMINE, CT-PRO e FP-GROWTH-TINY

Com isso, verificou-se que o algoritmo tradicional PATRICIAMINE apresenta bons resultados de eficincia e consumo de memria para diferentes configuraes de bases de dados e valores de suporte, apresentando, inclusive, melhor desempenho que o algoritmo OPPORTUNEPROJECT, considerado pela literatura como uma das mais eficientes propostas pertencentes ao estado da arte. Justifica-se, ento, a escolha do algoritmo PATRICIAMINE como algoritmo base deste trabalho, uma vez que, comprovadamente, mostrou-se mais eficiente que algoritmos correlatos. Esse algoritmo, dentre o pesquisados, apresentou o melhor panorama em termos de tempo de execuo e consumo de memria. Com base no PATRICIAMINE, efetuou-se, ento, o estudo de uma proposta de algoritmo multirrelacional denominado MR-RADIX. A minerao de padres multirrelacionais por meio do algoritmo proposto foi possvel com a utilizao de uma nova estratgia denominada fuso de itens secundrios. A estratgia possibilita a extrao de padres multirrelacionais sem a necessidade da operao de juno fsica entre tabelas, que uma tarefa computacionalmente custosa. Alm disso, o nmero de estruturas de dados no aumenta pelo fato de estar lidando com mltiplas tabelas. Todas as operaes de busca de padres so realizadas em uma

48

mesma estrutura Radix-tree, diferentemente do algoritmo MRFP-GROWTH, por exemplo, que cria uma estrutura independente para cada tabela da base de dados. Complementando o desenvolvimento do algoritmo multirrelacional, foi elaborado um modelo de representao para permitir o manuseio dos itens provenientes de bases de dados relacionais. Ademais, foi proposta uma nova estrutura de dados denominada ItemMap, que tem como objetivo mapear os itens relacionais em identificadores, os quais ocupam menos espao em memria e otimizam o armazenamento e a manipulao de ns na Radix-tree. A proposta tambm contempla a estratgia de particionamento dos dados, tal como apresentado no algoritmo PARTITION, possibilitando a minerao de bases de dados de grandes dimenses.

3.4 Estratgia para minerao de grandes bases de dados


A minerao de grandes bases de dados necessita de ateno especfica, pois um algoritmo que funciona adequadamente para pequenas e mdias bases pode no ser uma soluo vivel para tratar grandes volumes de dados. Isso porque a maioria dos algoritmos multirrelacionais existentes, tal como o MRFP-GROWTH, fundamentam seu bom desempenho no uso de estruturas de dados que representem compactamente a base de dados em memria. O particionamento uma estratgia que permite a minerao de grandes bases de dados quando o tamanho das estruturas de dados (conjuntos de candidatos ou FPtree, por exemplo) excede a quantidade de memria disponvel. Tal estratgia consiste na diviso da base de dados em unidades menores, que sejam disjuntas entre si. O tamanho dessas unidades definido de forma que a extrao de todos os padres possa ser realizada dentro da disponibilidade de memria. De forma geral, podemos resumir o processo de minerao de padres utilizando o particionamento em duas fases, tal como mostrada na Figura 3.5.

49

Figura 3.5 Fases do particionamento

Na primeira fase, cada partio minerada para a obteno dos itemsets frequentes locais. A segunda fase consiste no clculo dos valores de suporte dos itemsets locais encontrados anteriormente agora referente a toda a base de dados, obtendo, assim, os itemsets frequentes globais.

3.5 Algoritmo MR-RADIX


O algoritmo multirrelacional proposto denomina-se MR-RADIX e caracterizase como uma proposta para minerao de regras de associao em grandes bases de dados relacionais. O MR-RADIX pertence abordagem pattern-growth (PG), cujo principal representante o algoritmo FP-GROWTH, efetuando a tarefa de minerao sem as etapas de gerao e teste de candidatos. A proposta utiliza a estrutura de dados Radix-tree ou tambm referenciada como Patricia-trie para a representao da base de dados. Tal estrutura proporciona eficincia tanto no desempenho do algoritmo de minerao quanto na utilizao do espao em memria. A Radix-tree apresenta alta capacidade de compresso, reduzindo em at 75% o espao necessrio para a sua alocao em memria quando comparada com a FP-tree, que a estrutura trie padro utilizada em diversos algoritmos da abordagem PG (PIETRACAPRINA; ZANDOLIN, 2003). Alguns algoritmos, tais como o H-MINE e o OPPORTUNEPROJECT, fazem uso de dois tipos de estruturas para a minerao de bases de dados densas e esparsas. Para as bases densas so utilizadas as tries, uma vez que esse tipo de base gera poucos ramos e intensifica a eficincia da minerao. Por outro lado, as bases de dados esparsas geram muitos ramos na rvore, aumentando significativamente o

50

tamanho dessas estruturas e, consequentemente, o tempo necessrio para o seu processamento. Para essas bases, o uso de estruturas baseadas em arrays apresentam melhores resultados. Por esse motivo, tais algoritmos utilizam-se de heursticas que avaliam a densidade da base de dados e efetuam a escolha da melhor estratgia. A estrutura Radix-tree, como j foi mencionado, comprime a representao da base de dados e, dessa forma, apresenta-se como uma alternativa para a minerao de bases de dados relacionais, sejam densas ou esparsas. O problema da esparsidade da base de dados, que tende a aumentar o tamanho da estrutura, contornado com a eficiente compresso dos ns. O algoritmo MR-RADIX segue a mesma linha do algoritmo TD-FP-GROWTH, efetuando a minerao utilizando uma estratgia Top-Down, ou seja, os padres frequentes so extrados percorrendo-se a Radix-tree a partir do n raiz em direo aos ns-folhas. O FP-GROWTH e outros algoritmos derivados utilizam a estratgia Bottom-Up, partindo dos ns-folhas em direo ao topo da estrutura. Com a estratgia Top-Down, obtm-se um considervel ganho no desempenho, uma vez que h uma nica Radix-tree e todo o processamento feito com base nesta estrutura global. Com isso, elimina-se a carga extra de processamento que seria dispensada construo de estruturas intermedirias e temporrias. Alm disso, o algoritmo MR-RADIX , assim como o PATRICIAMINE, apresenta uma estratgia iterativa para a explorao da rvore, o que o torna diferente em relao aos que apresentam propostas recursivas caracterstica da maioria dos algoritmos relativos ao tema, tais como FP-GROWTH e seus derivados. Com isso, gera-se um ganho no desempenho, uma vez que se elimina o custo computacional com as sucessivas chamadas recursivas.

3.5.1 Representao de itemsets relacionais A minerao de regras de associao na abordagem tradicional considera que os dados a serem minerados esto dispostos em apenas uma tabela. Esta estrutura no precisa necessariamente estar no formato de uma tabela relacional, em que os registros possuem o mesmo nmero de colunas ou atributos. Geralmente, a mesma baseia-se no formato transacional, tal como exemplificada na Tabela 3.1.

51

Tabela 3.1 Exemplo de uma base de dados transacional

TID 1 2 3 4 5 6 7 8

Itens Po, Leite, Manteiga Po Leite, Ovos Manteiga, Frutas Leite, Manteiga, Cereal Leite Po, Leite, Manteiga, Frutas Leite, Cereal

No caso da minerao envolvendo uma nica tabela, a representao dos itemsets trivial, pois a nica informao relevante e necessria para a extrao de padres o prprio identificador de cada item. Na Tabela 3.1, por exemplo, os itemsets seriam tratados pelo algoritmo de minerao na forma de conjuntos de identificadores de itens, tais como {Po, Leite, Manteiga}, {Manteiga, Frutas}, e assim por diante. Para a minerao de dados provenientes de mltiplas tabelas relacionais, a representao dos itemsets torna-se um pouco mais complexa, pois h a necessidade de armazenamento de um nmero maior de informaes devido multiplicidade de fontes de dados. Por esse motivo, foi proposto um modelo de representao denominado itemset relacional, que estende o conceito de itemset tradicional, incluindo informaes para permitir a identificao de padres provenientes de bases de dados relacionais. Na Figura 3.6 pode ser visto o esquema de um itemset relacional contendo k itens, cujos ndices variam de 0 a k-1. Cada item relacional composto de trs campos identificadores. O primeiro campo Tabela indica o nome da tabela de origem desse item. O segundo campo Nome do atributo armazena a identificao da coluna associada a esse item. Por fim, o campo Valor do atributo representa o contedo na coluna Nome do atributo para um dado registro da tabela de origem.

52

Figura 3.6 Itemset relacional

Essa representao de um item relacional, por meio da utilizao dos trs campos citados, possibilita identificar unicamente um item na base de dados. Para facilitar a visualizao de um item relacional, sempre que conveniente, ser utilizada a notao Tabela.NomedoAtributo=ValordoAtributo. Desse modo, a remoo de qualquer um dos campos pode tornar o item ambguo ou incompleto. Para demonstrar esse fato, considere a Figura 3.7, que apresenta uma base de dados contendo as relaes Paciente e Internao. Tome como exemplo o item Internao.Hemorragia=Sim. A remoo do nome ou do valor do atributo acarretaria um item incompleto, sem significado para a minerao de regras de associao. Por outro lado, se a informao da tabela de origem for eliminada da representao do item, o mesmo ainda continua apresentando algum significado.

Paciente
ID_Pac 011 012 013 ... Nome Sexo Joo M Maria F Csar M ... ...

Internao
ID_Intern ID_Pac Hemorragia Inconsciente 0201 011 Sim Sim 0202 012 No Sim 1 n 0203 012 No No 0204 013 Sim Sim ... ... ... ... Figura 3.7 Exemplo de base de dados relacional

Os

itens

Hemorragia=Sim

Inconsciente=No,

por

exemplo,

representam corretamente itens existentes na tabela Internao. A necessidade do campo Tabela, ento, se justifica pelo fato de a minerao ser multirrelacional, ou

53

seja, diferentes tabelas podem possuir nomes e valores de atributos similares. Veja o caso do atributo ID_Pac que existe tanto na tabela Paciente quanto na tabela Internao. O item ID_Pac=012 ambguo e s pode ser devidamente representado com a especificao da sua tabela de origem, tal como em Paciente.ID_Pac=012.

3.5.2 Estrutura Radix-tree Primeiramente, cabe ressaltar que a estrutura Radix-tree ou Patricia-trie foi desenvolvida inicialmente por Morrison (1968). O objetivo inicial em sua proposta consistia em melhorar as caractersticas da trie padro por meio do adicionamento, em sua estrutura, da capacidade de compresso dos ns. Essa proposta j foi utilizada em vrios trabalhos na rea de minerao de regras de associao (PIETRACAPRINA; ZANDOLIN, 2003; HAMIDA, 2005; HAMIDA; SLIMANI, 2005). A compresso nessa estrutura realizada por meio do agrupamento dos ns que compartilham o mesmo ramo, e, concomitantemente, apresentam o mesmo valor para o contador de suporte. A Figura 3.8 ilustra um exemplo de uma trie padro enquanto que a Figura 3.9 apresenta a Radix-tree correspondente. Ao observar a primeira delas, possvel constatar que os ns so representados de forma individual. Com isso, h a necessidade de que haja 12 (doze) ns para que a representao da base de dados seja construda.

Figura 3.8 Exemplo de Trie Padro

sts after visiting (L,4)

Figure 6. Standard trie for the sample dataset

, we have that before Step 6 is rectly stores the itemset associt entries of the IL are updated for the next iteration (for-loop the IL and t-lists for the samwhile-loop iteration where node set X = (L) is generated. Ob-

54

-lists after visiting (L,4)

Figure 6. Standard trie for the sample dataset

v, we have that before Step 6 is orrectly stores the itemset associrst entries of the IL are updated nt for the next iteration (for-loop ws the IL and t-lists for the same while-loop iteration where node mset X = (L) is generated. Obs for items G and H (respectively, ve to the entire dataset, all other

Figura 3.9 Exemplo de Radix Tree e whole strategy is easily estabnvariant stated before holds with Figure 7. trie for the while-loop, i.e., at the end of sua vez, a Figura Patricia ilustra a the sample dataset essa estrutura Por 3.9, que Radix-tree, mostra que FIST. necessita de apenas 8 (oito) ns para a representao da mesma base de dados. Desse tions of the dataset which are estimated to be sufciently modo, um ganho de espao em memria de to decide when to dataset as a Patricia trie gera-se dense. However, an effective heuristic 33% (trinta e trs por cento). switch from one structure to another is hard to nd foi mencionado, os Assim, para efetuar essa compresso, a estrutura agrupa, como jand may be costly to implement. Moreover, even if a good heuristic y of the main strategy presented compartilham o mesmo ramo e possuem o mesmo valor do contador de ns que was found, the overhead incurred in the data movement may the choice of the data structure suporte. Esse o caso, por exemplo,brought by the compression gained. o mesmo reduce the advantages dos ns A, D e F, os quais possuem dataset D . Some previous works through a standard trie, called valor 4 (quatro). To avoid the need for two alternative data structures to attain space efciency, our algorithm resorts to a compressed of transactions, with items sorted Alm da rvore propriamente dita, trie Radix-tree apresenta for estrutura trie, better known as Patricia a [8]. The Patricia trie uma 14]. The advantage of using the a dataset D is (IL) que tem como objetivo indexar os itens datasets because of the compresauxiliar denominada ItemList a modication of the standard trie: namely, frequentes each maximal chain of nodes v1 v2 vk , where common prexes, but in the worst e conectar todos v sns de um mesmo item, de and (except for vs) exall os have the same count value c modo anlogo k tabelas header ighly sparse, the number of nodes i actly one child, is coalesced into a single node that inherN of the original datasetexistentes no algoritmo FP-GROWTH. (i.e., the its count value c, vk s children, and stores the sequence of gths). Since each node of the trie A ItemList, portanto, possui trs campos: i) o identificador do item; ii) o items previously stored in the vi s. (A Patricia trie reprealue, which indicates the number contador sentation of a transaction dataset has lista encadeada de ns. prex found along the path from de suporte total; e iii) um ponteiro para a been recently adopted A Figura by [6] para dynamic setting where the other information needed for nav- a ItemList in an a Radix-tree da Figura 3.9. dataset evolves with 3.10 exibe time, and on-line queries on frequencies of individual itemters to the children and/or to the sets are supported.) taken by the trie may turn out to ant greater than 1. The standard and Patricia tries for the sample dataset as been suggested in [12, 9] that are compared in Figure 6 and 7, respectively. As the gthe trie becomes space inefcient, ure shows, a Patricia trie may still retain some single-child ward fashion as arrays of transacnodes, however these nodes identify boundaries of transacks also encourage to switch to the tions that are prexes of other transactions. The following the course of execution, for portheorem provides an upper bound on the overall size of the

55

Figura 3.10 Exemplo das estruturas ItemList e Radix-tree

A etapa mais complexa da Radix-tree consiste no processo de sua construo, uma vez que a montagem da estrutura gera a necessidade de que hajam possveis subdivises de ns. Assim, h trs casos distintos de insero de um novo padro na estrutura em que ocorrem tais divises: Caso 1: O novo padro est contido no conjunto de itens de um dado n. Nesse caso, a poro equivalente entre o padro e os itens do n mantida no n em questo e a poro restante dos seus itens forma um novo n filho; Caso 2: O novo padro apresenta correspondncia parcial com os itens do n. Novamente, a poro em que h equivalncia mantida no n em questo e as pores divergentes formam dois ns filhos sendo um para a poro restante do padro e um para a poro restante do n; Caso 3: O novo padro contm o n. De modo anlogo ao primeiro caso, mantida, no n em questo, a poro em que h correspondncia. A poro restante do n, por sua vez, acaba por gerar um n filho. Considere o conjunto de dados da Tabela 3.2, que apresenta exemplos de registros contendo itens relacionais, os quais so ilustrados por letras com a finalidade de facilitar o entendimento da leitura dos dados. Os registros sero

56

submetidos representao na Radix-tree, a fim de exemplificar o procedimento de construo e subdiviso de ns.


Tabela 3.2 Exemplo de Conjunto de Dados

TID 1 2 3 4 5 6

Itens B A D F G H B L B A D F L H B A D F L G B L G H B A D F

O primeiro passo da construo consiste na criao de um novo n contendo todos os itens de um registro. Considerando-se, por exemplo, o primeiro registro elencado na tabela, tem-se que o n composto pelos itens {B, A, D, F, G, H}, o qual inserido na estrutura Radix-tree a partir do n raiz. Como esse o primeiro n inserido na estrutura, no houve necessidade de diviso de ns.

Figura 3.11 Situao da estrutura aps insero do primeiro n

Passando-se para o segundo registro, cria-se um n formado pelos seus itens {B, L}, de modo anlogo ao realizado no processo descrito anteriormente. No entanto, ao tentar inserir esse n na estrutura, observa-se que o n atual e o n existente compartilham apenas o primeiro item, B. Dessa forma, h uma correspondncia parcial entre os ns envolvidos, tornando possvel a aplicao do caso 2, anteriormente descrito. O resultado da subdiviso pode ser visto na Figura 3.12.

57

Figura 3.12 Situao da estrutura aps insero do segundo n

Prosseguindo com a construo, gera-se, agora, um n referente ao terceiro registro {B, A, D, F, L, H}. Nesse caso, h, inicialmente, a correspondncia parcial envolvendo o item B. Portanto, h a utilizao do caso 3 para a subdiviso do n. A execuo segue o ramo da estrutura da rvore, de modo que a poro {A, D, F, L, H} , ento, comparada com o n contendo os itens {A, D, F, G, H}. Assim como nos exemplos anteriormente descritos, utilizado o segundo caso de subdiviso, permanecendo os itens correlatos {A, D, F} e as pores distintas entre si acabam por gerar dois ns filhos, a saber {G, H} e {L, H}. A Figura 3.13 apresenta a rvore ao final da insero do referido n.

Figura 3.13 Situao da estrutura aps insero do terceiro n

58

Assim, de modo anlogo, o algoritmo de construo segue a execuo para os demais registros, at que, ao final, obtm-se a rvore representante daquele conjunto de dados, que a estrutura mostrada na Figura 3.9.

3.5.3 Estrutura ItemMap A estrutura ItemMap (IM) foi proposta neste trabalho com o intuito de otimizar a representao dos itens relacionais na Radix-tree. Isso porque um item relacional, como antes mencionado, identificado pelos campos tabela, nome do atributo e valor do atributo. Devido ao tamanho que essa representao pode apresentar, sua utilizao acarretaria a necessidade de substanciais espaos em memria para o seu armazenamento dentro dos ns da estrutura. Tome-se, como exemplo, o item relacional Internao.Hemorragia=Sim. Considerando que cada caractere ocupa um byte em memria, o espao necessrio para o armazenamento desse item seria de 23 (vinte e trs) bytes, desconsiderando-se o . e o =. Como o nmero de ns na estrutura geralmente elevado, o espao necessrio somente para o armazenamento dos itens acabaria por despender uma substancial capacidade da memria disponvel. A IM proposta foi desenvolvida com vistas a atenuar esse problema. Desse modo, a estrutura efetua o mapeamento entre a representao do item relacional e a representao interna utilizada pela Radix-tree. A IM possui um campo que armazena a representao do item relacional e outro campo que registra o ndice correspondente desse item na IL. A Figura 3.14 apresenta essa relao entre a IM e a IL.

59

Figura 3.14 ItemMap e ItemList

Na IM, armazenada a representao na forma de item relacional e tambm ajustado o ndice que tal item ocupa na IL. Por sua vez, a IL da presente proposta apresenta uma reduo no nmero de campos, pois no mais necessrio o armazenamento do item nessa estrutura. Como afirmado anteriormente, cada item apresenta uma entrada na IM e, com isso, um valor de ndice na IL. A partir dessa etapa, a identificao e representao do item realizada por meio desse ndice. Desse modo, considerando que um ndice armazenado como um inteiro e ocupa 4 bytes, h um ganho substancial de espao em memria. Aps a minerao, os itemsets frequentes encontrados estaro representados pelos valores dos ndices estabelecidos na IL. A obteno dos padres na forma de itemsets relacionais imediata, novamente com o auxlio da IM.

3.5.4 Fuso de itens secundrios Outra proposta do presente trabalho foi a operao denominada fuso de itens secundrios, que possibilita relacionar itens provenientes de diferentes tabelas sem a necessidade das custosas junes fsicas. A operao consiste em reunir todos os itens frequentes das tabelas envolvidas no processo de minerao e que possuam um mesmo identificador TID. A Figura 3.15 apresenta uma base de dados cuja tabela primria Paciente e a tabela secundria a Internao. As linhas destacadas nas

60

tabelas apresentam o mesmo TID e, portanto, dizem respeito ao mesmo paciente. A operao de fuso associa os itens relacionais da tabela secundria Internao aos itens relacionais da tabela primria Paciente, realizando uma espcie de juno virtual. Assim, os itens relacionais Internao.Hemorragia=No, Internao.Inconsciente=Sim e Internao.Inconsciente=No so, ento reunidos juntamente com os itens relacionais da tabela Paciente.

Paciente
TID 011 012 013 ... Nome Sexo Joo M Maria F Csar M ... ...

Internao

ID_Intern TID Hemorragia Inconsciente 0201 011 Sim Sim 0202 012 No Sim 1 n 0203 012 No No 0204 013 Sim Sim ... ... ... ... Figura 3.15 Exemplo de fuso de itens secundrios

Tais itens relacionais formam um conjunto referente ao paciente em questo e so inseridos como um n na Radix-tree. Nesse caso, os padres so contabilizados com referncia tabela primria Paciente, de modo que as mltiplas ocorrncias dos itens relacionais provenientes das tabelas secundrias so desconsiderados, tal como ocorre com Internao.Hemorragia=No. Se o intuito da minerao for analisar a relao entre Hemorragia e Inconsciente, por exemplo, o foco da aplicao seria a tabela Internao, que seria considerada tabela primria e, nesse caso, a tabela Paciente assumiria o papel de tabela secundria.

3.5.5 Descrio do algoritmo MR-RADIX O algoritmo MR-RADIX baseia-se na abordagem pattern-growth para efetuar a minerao multirrelacional de regras de associao. A estrutura de dados utilizada para a representao da base de dados em memria a Radix-tree, cujo funcionamento e caractersticas j foram abordadas nas sees anteriores. A execuo da proposta do presente trabalho pode ser dividida em duas etapas: i) etapa de construo da Radix-tree; ii) etapa de minerao dos padres frequentes. Essas etapas sero minudenciadas a seguir. A primeira etapa, construo da Radix-tree, necessita de duas passagens completas pela base de dados a fim de obter seus itens frequentes para formular sua

61

representao na referida estrutura. Na Figura 3.16, tem-se o pseudo-cdigo referente construo da Radix-tree.

Algoritmo: Construo da Radix-tree Entradas: Base de dados D; minsup Sada: Radix-tree R, ItemList IL, ItemMap IM 1) 2) 3) 4) 5) 6) 7) 8) 9) IM para cada tabela T em D para cada item c em T se c C c.contador++; seno C {c | c.contador 1}; IL {c | c.contador >= minsup}; IM {c | c.contador >= minsup};

10) para cada tupla tp existente na tabela primria 11) FREQ itens frequentes de tp 12) para cada tabela secundaria TS 13) para cada tupla ts em TS, tal que ts.tid = tp.tid 14) FREQ itens frequentes de ts 15) Crie um n cujos itens sejam FREQ 16) Adicione o n R 8) para cada agrupamento g G Figura 3.16 Pseudo-cdigo referente getapa de construo da Radix-tree 9) para cada item c que ocorre em 10) c.contador++; 11) L1={c | c.contador/|G| >= minsup} A primeira parte ; k++) 12) para (k = 2; Lk-1 desse pseudo-cdigo linhas 1 a 7 -, corresponde primeira 13) Ck =Apriori-gen(Lk-1) passagem pela base de dados e visa contagem de todos os itens para cada uma das 14) para cada agrupamento g G tabelas envolvidas, sejam primriask contido em g faa Cada item encontrado 15) para cada candidato c C ou secundrias. 16) c.contador++ representado na forma de um item relacional e inserido em um conjunto que 17) Lk = { c Ck | c.contador/|G| >= minsup } armazena os diversos Lk; e o nmero de suas respectivas ocorrncias. 18) retorne L = Uk itens

A segunda parte, por sua vez linhas 8 e 9 -, consiste na construo das estruturas auxiliares ItemList (IL) e ItemMap (IM). Como j mencionado, a IL utilizada durante todo o processamento da Radix-tree, indicando o valor de suporte e a lista encadeada de ns referente a cada item. A IL, assim, favorece o percurso na Radix-tree, tendo em vista que possvel obter todos os ns que compartilham um determinado item seguindo a respectiva lista encadeada. Quando o algoritmo encontra um novo item na base de dados, gerada, ento, sua representao na forma de um item relacional. O algoritmo avalia o

62

conjunto de itens C que contenham os itens e suas respectivas ocorrncias encontradas na base de dados, considerando para a construo da IL e IM apenas os itens frequentes, ou seja, cujo nmero de ocorrncias seja igual ou maior ao valor do suporte mnimo minsup. Para cada um desses itens, criada uma entrada na IM e na IL. A terceira parte pseudo-cdigo, descrita nas linhas 10 a 14, efetua a construo da Radix-tree, e corresponde segunda leitura da base de dados, na qual so localizados os itens frequentes de cada registro. Tais passos correspondem operao de fuso de itens secundrios, em que os itens relacionais das tabelas secundrias que compartilham um mesmo identificador (tid) so agrupados para insero na rvore. Para cada registro da tabela primria, cria-se um novo n contendo tais itens relacionais, o qual acrescentado rvore (linhas 15 e 16). J a explorao da Radix-tree para a busca dos itemsets frequentes, que consiste na segunda etapa do algoritmo, realizada por uma estratgia Top-down, que percorre os ns iniciando do n raiz em direo aos ns folhas. Essa estratgia apresenta a vantagem de no necessitar da construo de subestruturas temporrias durante o processamento dos padres. Isso porque, ao processar um n dos nveis mais elevados, gera-se todos os itemsets frequentes relacionados a esse n. Dessa forma, ao processar ns de nvel mais baixo, fica garantido que todos os ns ancestrais j foram processados. Assim, pode-se efetuar uma pseudo-construo de subestruturas por meio de simples manipulao de ponteiros dos ns. Essa possibilidade torna o algoritmo muito mais eficiente do que aqueles que utilizam estratgia Bottom-up, nos quais h a necessidade de construo, de fato, das subestruturas. A Figura 3.17 apresenta o pseudo-cdigo para a busca e gerao dos itemsets frequentes. Esse procedimento recebe a estrutura Radix-tree j previamente construda e com as ligaes entre a mesma e a IL tambm efetuadas.

63

Algoritmo: Minerao da Radix-tree Entradas: Radix-tree R, ItemList IL, minsup Sada: Itemsets frequentes L // Definies de variveis // X: Itemset representado por um vetor de itens // h: ndice atual em X // l : ndice atual na IL 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) X ; L ; l 0; h 0; enquanto ( l < |IL| ) { se ( IL[l ].contador < minsup ) l l + 1; seno se ( h > 0 && l = X[h-1] ) { l l + 1; h h - 1; seno X[h] l ; h h + 1; L X; Ajusta IL[j].contador e IL[j].ptr, para j < l l 0;
Figura 3.17 Pseudo-cdigo referente etapa de minerao da Radix-tree

O algoritmo acima uma verso iterativa para o percurso e extrao de itemsets frequentes. A ideia por trs do seu funcionamento a gerao sucessiva de padres que compartilham um mesmo prefixo, isto , o algoritmo seleciona cada item da ItemList em ordem decrescente, de acordo com o valor do suporte e extrai todos os itemsets frequentes que se iniciam pelo item selecionado. O algoritmo primeiramente inicializa as variveis auxiliares, o conjunto de itemsets frequentes L e o vetor de itens X, conforme apresentado nas linhas 1 a 3. A sua execuo mantm-se no lao principal (linhas 4 a 16) at que todas as linhas da IL (indicadas por l ) sejam processadas. O algoritmo passa a prxima linha da IL quando o contador de suporte do item atual for menor que o suporte mnimo previamente estabelecido (minsup), conforme descrito nas linhas 5 e 6. A gerao de itemsets frequentes cujo prefixo seja o item l persiste at que seja satisfeita a condio de parada, indicadas nas linhas 7 a 10. O item atual l torna-

64

se o prefixo do itemset X, que se transforma em um itemset frequente, sendo ento atribudo ao conjunto de itemsets frequentes L (linhas 11 a 14). Nesse ponto, so ajustados os contadores e os ponteiros da IL, de forma a manipular a subrvore, que possui como ns folhas o item l (linhas 15 e 16). O lao principal ento executado para tal subrvore e assim sucessivamente. A coleo de ns que compartilham um dado item I, os quais so conectados por meio da lista encadeada que parte da IL denotada por t-list(I) forma uma subrvore com seus ascendentes. De um modo geral, o processo de minerao consiste, primeiramente, na construo da subrvore cujos ns folhas sejam ns contendo o item I. Esse procedimento pode ser realizado eficientemente uma vez que IL mantm a t-list(I) que forma uma lista encadeando todos os ns que contm I. Como j mencionado, o algoritmo utiliza a estratgia top-down e, portanto, a gerao dessa subrvore pode ser efetuada com operaes de manipulao de ponteiros. Ainda nessa etapa, interessante salientar que a estrutura IL tambm atualizada conforme o ajuste da subrvore, uma vez que os ns ancestrais j foram processados anteriormente, sendo possvel a modificao de suas respectivas entradas na IL. Com isso, tem-se a gerao dos itemsets relativos subrvore. Assim, conforme vai ocorrendo a gerao, ocorre tambm a repetio dos procedimentos acima descritos, de modo que novas subrvores so construdas sucessivamente.

3.5.6 Estratgia de particionamento no algoritmo MR-RADIX A fim de possibilitar a minerao de grandes bases de dados, foi implementada a estratgia de particionamento no algoritmo proposto. Tal estratgia consiste na subdiviso da base de dados em pores alocveis e analisveis em memria, o que viabiliza o processamento de grandes volumes de dados em etapas. De incio, efetuada a primeira leitura da base de dados de modo similar ao funcionamento do MR-Radix apresentado anteriormente. Nessa fase, obtida a contagem de todos os itens existentes na base de dados, bem como realizada a construo das estruturas de dados auxiliares, ItemList e ItemMap. A primeira delas relaciona somente os itens frequentes, ou seja, aqueles cujo nmero de ocorrncia seja maior ou igual ao valor absoluto do suporte mnimo previamente estabelecido. A

65

segunda, por sua vez ItemMap - efetua o mapeamento do item relacional e a sua respectiva representao interna utilizada pelas demais estruturas, tal como a Radixtree. Em seguida, ocorre a etapa de construo da Radix-tree, na qual tem lugar a segunda leitura da base de dados. Nesse ponto, a base lida at o momento em que o algoritmo identifique que no h mais disponibilidade de memria para a alocao da estrutura. Para descrever o funcionamento da estratgia de particionamento, apresentado, na Figura 3.18, o pseudo-cdigo.

Algoritmo: Particionamento de MR-Radix Entradas: Base de Dados D, minsup Sada: Itemsets frequentes L // Definies de veriveis // Llocal: itemsets frequentes locais // C: conjunto de itemsets candidatos globais // Pi, para i=1...k: parties da base de dados 1) 2) 3) 4) 5) 6) 7) L ; Llocal ; D = P1 P2 P3 ... Pk , tal que Pi, para i=1...k, seja alocvel em memria Para i = 1 at k L a partio Pi e constroi a Radix-tree local Ri; Li = MR-Radix(Ri); Llocal = L1 L2 L3 ... Lk; C = {c | c L local, c.parties e c.suporte so as parties P1...Pk onde c ocorre e o suporte acumulado, respectivamente }

8) Para cada c C 9) Para cada Pi, para i=1...k 10) Se Pi c.parties 11) c.parties Pi; 12) c.suporte c.suporte + n de ocorrncia de c em Pi; 13) L = {c | c.suporte >= minsup}
Figura 3.18 Pseudo-cdigo referente estratgia de particionamento

A poro lida da base de dados at o limite da quantia de memria disponvel ento considerada como uma partio e tem sua minerao realizada individualmente. A base de dados dividida em tantas parties quantas forem necessrias, de modo que cada partio Pi possa ser alocada em memria. Esse

66

procedimento se repete at que toda a base tenha sido devidamente processada (linhas 1 a 5). Assim, os itemsets frequentes localizados nas parties so de carter local e devem ser armazenados para posterior anlise, uma vez que podem se caracterizar como sendo ou no padres vlidos para toda a base de dados. Esses itemsets locais frequentes provenientes das diversas parties so reunidos, formando um conjunto de itemsets frequentes Llocal. Tais itemsets recebem campos indicando as parties j acessadas e o suporte acumulado, originando um conjunto de itemsets candidatos globais (linhas 6 e 7). Uma terceira leitura da base de dados se faz necessria para a contagem dos valores de suporte, com o diferencial de, nesse momento, fazer referncia a toda a base. Aqueles itemsets que atenderem ao suporte mnimo tornam-se, enfim, os padres globais buscados (linhas 8 a 13). Cabe salientar que a obteno da estrutura IL global logo no incio do algoritmo possibilitou a construo das estruturas da Radix-tree das parties de um modo mais otimizado. Isso porque foram considerados, localmente, apenas os itens que j se caracterizavam como itens frequentes globais. O funcionamento da estratgia de particionamento do algoritmo MR-RADIX, ora descrito, pode ser sucintamente representado por meio do esquema exposto na Figura 3.19.

Figura 3.19 Esquema da estratgia de particionamento utilizado no MR-Radix

67

A primeira fase consiste na gerao dos itemsets locais frequentes, obtidos pela minerao das parties individuais. Ainda nessa fase, esses itemsets locais so processados formando o conjunto de candidatos globais. Para otimizar a anlise dos padres desse conjunto, que ocorre na segunda fase, props-se uma representao diferenciada de tais padres. Alm do itemset propriamente dito, o padro apresenta ainda dois campos: parties acessadas e suporte acumulado. O primeiro campo armazena a relao de parties nas quais o padro em questo era considerado localmente frequente. Por sua vez, o segundo campo representa a soma dos valores de suporte correspondente ao referido padro nas parties em que o mesmo frequente, ou seja, aquelas indicadas no campo parties acessadas. Com o uso de tais campos, otimiza-se a segunda fase, uma vez que a contagem dos padres no necessria nas parties em que os mesmos j forem frequentes. Assim, o suporte de cada padro dever ser verificado apenas nas parties que no constarem na sua lista de parties acessadas. Ao concluir a contabilizao do suporte nessas parties restantes, o padro possuir em seu campo suporte acumulado o valor de suporte global. Dessa forma, obtm-se os itemsets frequentes globais delimitando-se apenas os itemsets candidatos globais cujo valor de suporte acumulado seja superior ao suporte mnimo pr-estabelecido.

3.6 Consideraes finais


Nesse captulo, foi apresentado o algoritmo proposto neste trabalho, destacando-se os principais conceitos e as particularidades ligadas extrao de regras de associao multirrelacional. O algoritmo deste trabalho utilizou-se da estrutura de Radix-tree, o qual apresenta boa capacidade de compresso de dados, resultando em uma economia de espao de memria e melhoria no desempenho. Porm, foi necessria a proposta de algumas extenses para que o mesmo pudesse realizar a extrao de padres em bases de dados relacionais. Assim, foram descritos o modelo de representao de itemsets relacionais bem como a estrutura auxiliar de mapeamento denominada ItemMap, a qual permitiu uma melhor representao de tais itens, de modo que a complexidade inerente aos

68

padres multirrelacionais no se configure como um fator de influncia negativa no que diz respeito ao uso otimizado de memria. Para possibilitar a minerao de bases de dados relacionais, foi proposta uma tcnica denominada fuso de itens secundrios, que relaciona as mltiplas tabelas, suprimindo a necessidade das junes fsicas. Tal tcnica possibilita a fuso ou insero dos itens frequentes das tabelas secundrias na estrutura Radix-tree, efetuando-se uma juno virtual para relacionar e produzir os padres multirrelacionais. Alm disso, mostrou-se que foi desenvolvida uma estratgia de particionamento da base de dados, a qual ocorre para permitir que grandes bases sejam divididas em pores nas quais seja possvel o seu processamento. Desse modo, quando no h mais espao em memria, realiza-se a partio. Assim, os padres obtidos das parties so combinados e testados em toda a base de forma otimizada, uma vez que somente as parties nas quais no foi contabilizada a frequncia do padro sero verificadas.

69

Captulo 4

Testes e Resultados

4.1 Consideraes iniciais


Neste captulo so apresentados os testes efetuados com o algoritmo proposto, com o intuito de revelar o desempenho obtido pela proposta em termos de eficincia e escalabilidade. O estudo realizado compreende a anlise do algoritmo MR-Radix comparando-o a algoritmos correlatos, a fim de verificar a contribuio do trabalho em termos prticos. Alm disso, os testes visam anlise comparativa entre a abordagem tradicional e a abordagem multirrelacional, com o intuito de mensurar os benefcios trazidos pela utilizao desta ltima em bases de dados relacionais.

4.2 Bases de dados e parmetros de testes


Os testes consistiram na aplicao dos algoritmos em bases de dados relacionais e foram desenvolvidos com o intuito de obter medidas que descrevam o desempenho do algoritmo em relao ao estado da arte. Foram utilizadas como mtricas: o tempo de execuo e o volume de memria principal usado para o processamento dos padres pelos algoritmos. As bases de dados utilizadas caracterizam-se como bases relacionais contendo dados reais que foram alimentados por profissionais de seus respectivos contextos por meio de sistemas computacionais de cadastro ou similares. A Tabela 4.1

70

apresenta as informaes descritivas tabelas ou relaes, nmero de registros e nmero de atributos de tais bases de dados.
Tabela 4.1 Bases de dados utilizadas nos testes

Base de dados HC6

SIVAT6

CENSUS

Relao Amostra Form_Urologia_Rim Paciente Ficha Ficha_cid_10 Ficha_parte_corpo Maquina_causadora Ocupao Dados

N de N de registros atributos 13.100 31 60 60 3.647 18 32.336 38 64.873 3 35.624 2 859 3 1.237 3 2.458.359 68

A primeira base de dados, denominada HC (Hospital do Cncer), consiste em um conjunto de relaes que armazenam informaes relativas a um Banco de Tumores de um hospital do interior do estado de So Paulo. Dentre as informaes armazenadas, pode-se destacar aquelas relacionadas aos pacientes e s suas respectivas amostras cancergenas extradas nesta instituio, bem como as informaes clnicas mais detalhadas introduzidas, sob o formato de formulrios, pelos profissionais de sade. Tal base encontra-se sob a responsabilidade do Grupo de Banco de Dados do Instituto de Biocincias, Letras e Cincias Exatas da Universidade Estadual Paulista. A segunda base de dados, SIVAT (Sistema de Vigilncia de Acidentes de Trabalho), cataloga registros de ocorrncias de acidentes de trabalho de uma dada cidade do interior do estado de So Paulo. Os dados foram coletados e cadastrados pelo rgo municipal responsvel pelo acompanhamento desse tipo de acidente. A base SIVAT, assim como a anterior, tambm gerenciada pelo Grupo de Banco de Dados da referida instituio. Por ltimo, a base de dados CENSUS contm uma amostra do censo populacional realizado nos Estados Unidos no ano de 1990. Tal base de dados possui carter pblico e encontra-se disponvel no UCI Machine Learning Repository7. A

A base HC possui 55 relaes, enquanto que a base SIVAT possui 34 relaes. Na Tabela 4.1 so apresentadas somente as relaes que possuem informaes relevantes para a minerao de dados. 7 Disponvel em http://archive.ics.uci.edu/ml/. Acesso em 27 de dezembro de 2009.

71

fim de facilitar a tarefa de minerao, a base de dados j se encontra pr-processada, com todos os dados discretizados e livres de valores nulos e imprecisos. O equipamento utilizado para hospedar os algoritmos e executar os testes foi um microcomputador contendo um processador Intel Core2 Quad Q8200 (2,33 Ghz), 4 gigabytes de memria principal DDR2 e um disco rgido de 250 gigabytes, padro SATA, taxa de transferncia de 3,0 Gbit/s e 7200 rpm (rotaes por minuto). Com relao aos softwares utilizados, o equipamento possui o sistema operacional Microsoft Windows XP Professional SP3, alm do Kit de Desenvolvimento Java J2SE 1.6, do Ambiente de Desenvolvimento Netbeans 6.7.1 e do SGBD (Sistema Gerenciador de Banco de Dados) Mysql 5.1. Para fins de teste de utilizao de memria, foi definido como parmetro que a quantidade mxima de memria a ser utilizada pelos algoritmos 64 MB (sessenta e quatro megabytes). A base HC j se encontrava armazenada em um SGBD Mysql, portanto no foi necessria a efetivao de mudanas. Por outro lado, as bases SIVAT e CENSUS tiveram que ser transformadas ou migradas para o referido SGBD, uma vez que se encontravam armazenadas em outros formatos. A primeira utilizava o SGBD PostgreSQL para o seu armazenamento, enquanto que a segunda se encontrava no formato de valores separados por vrgula ou CSV8. Com isso, fez-se uso de um nico SGBD para a manipulao dos dados, eliminando a possibilidade de gerao de medies incoerentes devido heterogeneidade dos meios de armazenamento. Como j mencionado, a minerao de regras de associao pode ser dividida em duas etapas principais: (i) etapa de busca de itemsets frequentes, que so obtidos com base no valor do suporte mnimo previamente definido; (ii) etapa de gerao das regras de associao, as quais so obtidas por meio dos itemsets frequentes localizados na etapa anterior, aps os mesmos terem sido filtrados utilizando-se o valor da confiana mnima tambm pr-estabelecido. De fato, a primeira etapa definitivamente a parte do processo de minerao de regras de associao que demanda mais tempo computacional, sendo justamente o alvo de otimizaes e proposies dos algoritmos. A etapa de gerao das regras propriamente dita independe do algoritmo utilizado e, portanto, no ser mensurada neste trabalho. Dessa forma, os algoritmos foram avaliados na tarefa de obteno de
8

CSV: do ingls, Comma-separated values. Um arquivo CSV armazena dados no formato tabular, sendo que os valores correspondentes s colunas ou campos so separados com o uso do caractere , (vrgula).

72

todos os itemsets frequentes, sendo realizadas sucessivas execues para diferentes valores de suporte mnimo, com o intuito de verificar o comportamento das propostas frente variao dessa medida de interesse.

4.3 Estudo comparativo


Para fins de evidenciao dos resultados obtidos pelo algoritmo MR-RADIX, proposto no presente trabalho, esta seo expe testes realizados em bases de dados reais de diferentes dimenses. O estudo consistiu na observao dos tempos de execuo e das quantias de memrias utilizadas quando da aplicao dos algoritmos GFP-GROWTH, APRIORIMR, PATRICIAMINE em comparao ao MR-RADIX. Alm dessas duas mtricas principais, foram coletadas outras a fim de complementar os resultados, tais como nmero de ns na Radix-tree ou Patricia-trie e o tempo gasto com a efetivao das operaes de juno. No Apndice C deste documento tem-se acesso aos valores das medidas de desempenho extradas durante os diversos testes efetuados. Para maior confiabilidade dos valores obtidos, cada conjunto de teste teve suas mtricas coletadas por 3 (trs) vezes. Para a confeco dos grficos e tabelas apresentadas nas prximas sees, efetuou-se o clculo da mdia entre o resultado das trs aplicaes para cada caso de teste, reduzindo-se as imprecises geradas por possveis variaes durante a coleta. O intuito foi o de garantir que os grficos e demais recursos a serem apresentados contenham resultados mais confiveis e representativos.

4.3.1 Estudo comparativo entre abordagem tradicional e multirrelacional O algoritmo multirrelacional proposto neste trabalho, MR-RADIX, foi elaborado com base no algoritmo tradicional PATRICIAMINE. Com isso, faz-se relevante a comparao entre as duas propostas, possibilitando avaliar o impacto em termos de desempenho no uso de uma abordagem multirrelacional para minerao de bases de dados relacionais. Cabe salientar que, diferentemente do MR-RADIX, que pode ser aplicado diretamente em mltiplas tabelas, o algoritmo tradicional PATRICIAMINE necessita de uma etapa de pr-processamento para a juno dessas tabelas. Com isso, o estudo

73

comparativo levar em conta o custo computacional necessrio para a efetivao da operao de juno quando utilizado o algoritmo tradicional PATRICIAMINE. Na Figura 4.1 apresentado esquematicamente o critrio adotado neste teste comparativo.

Figura 4.1 Esquema da medio para o estudo comparativo do MR-RADIX e PATRICIAMINE

Como mencionado, o desempenho do algoritmo PATRICIAMINE na minerao de itemsets frequentes contabiliza o custo da operao de juno das mltiplas tabelas. Para a realizao dessa operao, utilizou-se um tipo de juno denominado full outer join para relacionar os dados de todas as tabelas envolvidas, uma vez que a relao resultante de uma juno desse tipo contm todos os registros das tabelas participantes da operao. Os valores no-coincidentes so referenciados com nulo ou null. Para ilustrar a operao desse tipo de juno, tome-se como exemplo as tabelas apresentadas na Figura 4.2: Empregado Departamento

Nome DepID DepID Nome Joo 31 31 Vendas Maria 33 33 Engenharia Csar 33 34 Finanas Hugo 34 35 Marketing Ana 34 Carlos Null Figura 4.2 Exemplo de junco full outer: tabelas Empregado e Departamento

74

Como mencionado, a tabela resultante da aplicao dessa juno conter todos os registros das tabelas envolvidas - no caso, Empregado e Departamento. Esse resultado pode ser visto na Tabela 4.2. Observa-se que, nos registros em que no h correspondncia entre as tabelas, os atributos no possuem valor definido. No exemplo, o empregado Carlos no est includo em nenhum departamento, bem como o departamento de Marketing no possui nenhum empregado cadastrado; portanto, os respectivos campos so preenchidos com null.
Tabela 4.2 Tabela resultante da junco full outer Empregado.Nome Empregado.DepID Departamento.DepID Departamento.Nome Joo 31 31 Vendas Maria 33 33 Engenharia Csar 33 33 Engenharia Hugo 34 34 Finanas Ana 34 34 Finanas Carlos null null null null null 35 Marketing

Nas subsees seguintes sero apresentados e discutidos os resultados obtidos na anlise comparativa entre o algoritmo multirrelacional proposto, MR-RADIX, e o algoritmo tradicional PATRICIAMINE, o qual tambm foi construdo por este trabalho com base na verso original (PIETRACAPRINA; ZANDOLIN, 2003). O PATRICIAMINE proposto para os testes apresenta o funcionamento bsico do algoritmo original, com a exceo de ter sido necessria a adaptao para o seu uso com bases de dados relacionais.

4.3.1.1 Comparativo do tempo de execuo A primeira anlise realizada diz respeito ao tempo de execuo dos algoritmos MR-RADIX e PATRICIAMINE visando evidenciar o desempenho na tarefa de minerao de regras de associao em bases de dados relacionais. Para isso, os respectivos tempos de execuo foram medidos durante a aplicao dos algoritmos nas bases de dados HC e SIVAT.

75

Figura 4.3 Grfico do tempo de execuo base HC MR-RADIX e PATRICIAMINE

Como se pode observar na Figura 4.3, a qual apresenta os valores dos tempos de execuo na aplicao dos algoritmos na base HC, o desempenho proporcionado pelo algoritmo proposto, MR-RADIX, foi em torno de seis vezes mais rpido do que o seu correspondente tradicional, PATRICIAMINE. interessante notar que o MRRADIX no apresenta variaes substanciais no tempo de execuo, mesmo quando da utilizao de menores valores de suporte que tende a gerar um nmero maior de itens a serem processados. Em contrapartida, o PATRICIAMINE apresenta uma elevao no tempo de execuo, medida que se reduz o valor de suporte, indicando que o algoritmo mais sensvel ao aumento no nmero de itens a serem analisados na minerao. O tempo de execuo mais elevado do algoritmo PATRICIAMINE explicado pelo fato da abordagem tradicional necessitar da realizao de uma juno para reunir os dados provenientes de mltiplas tabelas. No grfico da Figura 4.3, o tempo de execuo referente ao PATRICIAMINE corresponde soma dos tempos de juno e de minerao propriamente dita. Por sua vez, a Tabela 4.3 apresenta apenas os tempos relativos operao de juno das tabelas, tanto para a base HC quanto para a base SIVAT.

76

Tabela 4.3 Tempos mdios de juno do algoritmo PATRICIAMINE Base de dados Tempo de juno (s) HC 3,70 SIVAT 1,95

Nota-se que o tempo mdio gasto para a realizao da juno das tabelas na base HC de 3,70 (trs virgula setenta) segundos. Observando-se o grfico anterior, mostrado na Figura 4.3, para o valor de suporte igual a 0,5%, por exemplo, o tempo de execuo total ficou em torno de 6 (seis) segundos. Com isso, conclui-se que a minerao da base HC demandou mais tempo na operao de juno das tabelas 3,70 (trs virgula setenta) segundos - do que de fato na execuo do algoritmo PATRICIAMINE cerca de 2,30 (dois vrgula trinta) segundos. Fato semelhante ocorre para todos os outros valores de suporte analisados. Ainda que desconsiderando-se o tempo de juno, possvel observar que o algoritmo MR-RADIX foi mais de duas vezes mais eficiente em termos de tempo de execuo do que o algoritmo PATRICIAMINE. Isso porque, enquanto este despendeu 2,30 (dois virgula trinta) segundos, aquele executou a minerao em um tempo prximo de 1 (um) segundo. O segundo conjunto de testes para aferio dos tempos de execuo utilizou a base SIVAT e os resultados obtidos encontram-se visualmente apresentados no grfico da Figura 4.4.

77

Figura 4.4 Grfico do tempo de execuo base SIVAT MR-RADIX e PATRICIAMINE

Com relao aos testes efetuados na base SIVAT, observa-se que, mais uma vez, o algoritmo MR-RADIX apresenta melhor desempenho frente ao PATRICIAMINE, sendo duas vezes mais rpido. Porm, o tempo de juno deixou de ser to determinante no tempo total de execuo, diferentemente do que ocorreu nos resultados anteriores com a base HC. Tome-se como exemplo o tempo de execuo do PATRICIAMINE para o valor de suporte igual a 1%, que aproximadamente 13 (treze) segundos. Observando a Tabela 4.3, verifica-se que o tempo referente operao de juno de 1,95 (um virgula noventa e cinco) segundos, o que permite dizer que, para esse valor de suporte, cerca de 11 (onze) segundos foram despendidos com o processamento dos padres propriamente dito. Isso se deve ao fato de que a base SIVAT possui um volume maior de dados quando comparada base HC e, por consequncia, gera um nmero mais elevado de itens frequentes. Com isso, a estrutura de dados utilizada pelo algoritmo torna-se mais robusta, necessitando de mais tempo para a concluso do processamento. Com os resultados obtidos nesse primeiro instante, nota-se que o algoritmo MR-RADIX, apesar de lidar com padres multirrelacionais mais complexos, apresenta maior eficincia do que seu correspondente tradicional PATRICIAMINE quando aplicado em ambas as bases de dados. Isso indica que a minerao multirrelacional mostrou-se como o meio mais vantajoso para a minerao das bases de dados

78

relacionais, uma vez que pode ser aplicada diretamente nas mltiplas tabelas evitando, assim, as custosas operaes de juno.

4.3.1.2 Comparativo de memria utilizada O estudo da utilizao de memria objetiva investigar se a manipulao de padres multirrelacionais acarreta a necessidade de uma quantidade maior desse recurso. Para tal, os algoritmos MR-RADIX e PATRICIAMINE foram aplicados novamente nas bases HC e SIVAT em diferentes cenrios de suporte mnimo.

Figura 4.5 Grfico do espao de memria utilizado base HC MR-RADIX e PATRICIAMINE

Na Figura 4.5 observa-se os resultados das medies para a base de dados HC, sendo que o uso da memria est expresso em kilobytes (KB). Para valores maiores de suporte, nota-se que o algoritmo MR-RADIX apresenta um consumo de memria mais elevado em comparao ao PATRICIAMINE. Porm, para valores mais baixos de suporte neste caso, inferiores a 1% - o cenrio se altera e o algoritmo MR-RADIX passa a apresentar menos uso da memria principal. Esse fato est estritamente relacionado ao nmero de ns gerados na estrutura de representao da base de dados Radix-tree, no caso da MR-RADIX e Patriciatrie, no caso do PATRICIAMINE - durante o processo de minerao. Como pode ser

79

observado na Tabela 4.4, o nmero de ns gerados pelo algoritmo MR-RADIX superior ao nmero gerado pelo PATRICIAMINE para valores de suporte superiores a 10%.
Tabela 4.4 Nmero de ns na rvore na base HC

Algoritmos MR-RADIX PATRICIAMINE

Suporte 0,5% 2999 5132 1% 2586 3754 10% 500 425 20% 281 258 30% 216 137

Em contrapartida, a abordagem tradicional origina um nmero maior de ns para valores menores de suporte. Isso se deve ao fato de a juno efetuada nas mltiplas tabelas acabar gerando um conjunto de dados maior. Assim, para valores de suporte menores, um nmero maior de itens atendem ao suporte mnimo e tornam-se frequentes e, por tal motivo, so inseridos como ns da estruturas. Com isso, o consumo de memria se torna mais elevado nessas condies, tal como inicialmente apresentado pelo grfico da Figura 4.5. O segundo teste efetuado para mensurar o consumo de memria dos algoritmos supracitados consistiu na minerao da base SIVAT, cujo grfico resultante exposto na Figura 4.6.

80

Figura 4.6 Grfico do espao de memria utilizado base SIVAT MR-RADIX e PATRICIAMINE

Como pode ser observado na Figura 4.6, o consumo de memria foi semelhante em ambos os algoritmos para a maioria dos valores de suporte. No entanto, assim como ocorreu na base HC, para menores valores de suporte nesse caso 1% - o algoritmo PATRICIAMINE necessita de uma quantidade maior de memria. Esse comportamento est relacionado ao nmero de ns gerados pelos respectivos algoritmos nas diferentes configuraes de suporte, como pode ser observado na Tabela 4.5.
Tabela 4.5 Nmero de ns na rvore na base SIVAT

Algoritmos MR-RADIX PATRICIAMINE

Suporte 1% 40426 58861 5% 10% 20% 10473 9287 30% 5580 5865 24272 16266 21670 14545

Nota-se que a diferena entre o nmero de ns gerados pelos algoritmos para suporte igual a 1% encontra-se em torno de 18 mil ns. Essa quantidade significativa de ns gerados devido a necessidade da juno das tabelas acaba por intensificar a necessidade de espao em memria.

81

Assim, para valores maiores de suporte, o algoritmo PATRICIAMINE apresenta um consumo inferior de memria em relao ao MR-RADIX. Isso decorre do fato de o algoritmo tradicional lidar com padres teoricamente mais simples, visto que so provenientes de um nica tabela. Porm, para valores menores de suporte, o cenrio se altera e o algoritmo PATRICIAMINE passa a apresentar um consumo mais elevado. Como j mencionado, esse comportamento se deve ao fato de as junes necessrias nesta abordagem acarretarem a gerao de um nmero maior de itens frequentes e, consequentemente, um nmero maior de ns na estrutura Patricia-trie. Essa caracterstica deve ser levada em conta relacionando-a com os resultados relativos ao tempo de execuo dos algoritmos. Ainda que o algoritmo MR-RADIX apresente um consumo um pouco mais elevado de memria para determinados valores de suporte, devido manipulao de padres multirrelacionais, o seu tempo de execuo mantm-se substancialmente inferior em relao ao PATRICIAMINE. Analisando ainda os grficos do uso de memria, apresentados na Figura 4.5 e na Figura 4.6, nota-se que o algoritmo PATRICIAMINE apresenta uma curva de crescimento mais vertical, indicando que a necessidade de espao de memria intensifica-se mais rapidamente com a reduo dos valores de suporte. Por sua vez, o algoritmo MR-RADIX apresenta uma curva mais conservadora, a qual denota uma caracterstica interessante, pois o aumento na demanda de itens frequentes no acarreta o crescimento significativo no uso de memria.

4.3.2 Estudo comparativo entre algoritmos multirrelacionais Nesta seo, sero apresentados os resultados relativos anlise comparativa dos algoritmos multirrelacionais MR-RADIX, APRIORIMR e GFP-GROWTH. O algoritmo APRIORIMR estende o algoritmo APRIORI original para possibilitar a minerao em mltiplas tabelas de uma base de dados e, cabe acrescentar, foi implementado na ferramenta fDMMR em um trabalho anterior (OYAMA, 2006). Este algoritmo foi escolhido para possibilitar a comparao do MR-RADIX com um algoritmo representante da abordagem CGT (Candidate Generate-and-Test) . O algoritmo GFP-GROWTH, por sua vez, possibilita a minerao de padres multirrelacionais baseando-se no algoritmo tradicional FP-GROWTH e se caracteriza como uma proposta no contexto de minerao multirrelacional de regras de

82

associao. Com base no algoritmo original do GFP-GROWTH (PIZZI, 2006) e para possibilitar a confeco de testes, este trabalho tambm construiu e desenvolveu esse algoritmo acrescentando uma verso do mesmo ferramenta fDMMR. Para as etapas de construo e minerao da FP-tree, reutilizou-se parte dos cdigos-fonte do algoritmo FP-GROWTH9, implementado por Frans Coenen. Nas subsees seguintes sero apresentados e discutidos os resultados obtidos na anlise comparativa entre os algoritmos mencionados.

4.3.2.1 Comparativo do tempo de execuo A primeira anlise a ser discutida refere-se aplicao dos algoritmos multirrelacionais nas bases de testes a fim de coletar os respectivos tempos de execuo. Considere o grfico na Figura 4.7, o qual apresenta os valores de tempos de execuo em escala logartmica referente aos testes realizados na base de dados HC. Os tempos de execuo para essa base de dados no puderam ser coletados para o algoritmo GFP-GROWTH, uma vez que, para todos os valores de suporte utilizados, houve o problema de falta de memria principal. Faz-se o adendo de que, para verificar a quantidade de memria necessria, efetuou-se um teste especfico, ampliando a quantia de memria disponvel na mquina. Nos resultados, foi obtido que, para o valor de suporte igual a 30%, o algoritmo GFP-GROWTH necessitaria de mais de 300 MB (trezentos megabytes) de memria. Essa caracterstica observada se deve ao fato de que o referido algoritmo, por ser baseado no FP-GROWTH, apresenta baixo desempenho quando utilizado em bases de dados esparsas, tal como a HC. Com isso, observou-se que a FP-tree gerada nos testes apresentou muitos ns e ramos, o que torna oneroso o processamento dos padres frequentes, alm de exigir considervel espao de memria para sua representao.

Disponvel em http://www.csc.liv.ac.uk/~frans/KDD/Software/FPgrowth/fpGrowth.html. Acesso em 26 de Dezembro de 2009.

83

Figura 4.7 Grfico do tempo de execuo dos algoritmos multirrelacionais base HC

O grfico evidencia a maior eficincia apresentada pelo algoritmo MR-RADIX em comparao ao APRIORIMR. O algoritmo proposto chega a ser duas ordens de magnitude mais rpido que o algoritmo baseado no APRIORI. O desempenho inferior do APRIORIMR pode ser explicado pelo fato de que este se baseia na abordagem CGT, o que origina, durante as etapas de processamento, um nmero elevado de padres a serem analisados. Cabe salientar tambm que o algoritmo efetua vrios acessos a disco, dependendo da quantidade de etapas necessrias para a produo dos padres frequentes. Em contrapartida, o MR-RADIX efetua apenas dois desses acessos, independentemente da quantidade de padres a serem gerados. Ademais, nota-se que o algoritmo MR-RADIX apresenta pouca variao do tempo de execuo em relao aos diferentes valores de suporte, o que pode ser visto como uma caracterstica benfica, uma vez que o mesmo apresenta boa capacidade de lidar com o crescimento do nmero de itens frequentes. O mesmo comportamento, no entanto, no se observa no algoritmo APRIORIMR, o qual apresenta um aumento no tempo necessrio para efetivar o processamento medida que se reduz o valor de suporte. Essa caracterstica no prpria somente do APRIORIMR, mas ocorre em outros algoritmos derivados do APRIORI (GYORODI; GYORODI; HOLBAN, 2004).

84

No segundo teste efetuado para a medio do tempo de execuo foi utilizada a base SIVAT. Tal base de dados, como dantes relatado, apresenta um nmero maior de registros e, consequentemente, exige maior processamento para a obteno dos itemsets frequentes. O grfico da figura abaixo apresenta o resultado do teste comparativo, tambm em escala logartmica, para o tempo de execuo da base supra-mencionada.

Figura 4.8 Grfico do tempo de execuo dos algoritmos multirrelacionais base SIVAT

De modo anlogo aos resultados obtidos no teste na base de dados anterior, possvel observar uma significativa diferena no desempenho do algoritmo MRRADIX em relao ao APRIORIMR. Novamente, o algoritmo proposto apresentou baixa variao no tempo de execuo em relao aos diferentes valores de suporte. Por exemplo, para o suporte igual a 5%, o algoritmo apresentou o tempo de execuo prximo a 4,8 (quatro virgula oito) segundos. Reduzindo-se o valor do suporte para 1%, nota-se que o tempo de execuo se eleva para cerca de 5,3 (cinco virgula trs) segundos. Tal diferena no tempo de execuo relativamente pequena se for considerado que a reduo do suporte de 5% para 1% acarreta o aumento de quase 10 mil ns na Radix-tree, tal como pode ser observado na Tabela 4.6. Isso refora os resultados positivos obtidos pelo algoritmo MR-RADIX, no que diz respeito

85

capacidade de absoro de novos ns, de modo que o aumento na rvore no gera redues significativas no desempenho.
Tabela 4.6 Nmero de ns na rvore Radix-tree - base SIVAT

Suporte 1% 5% 10% 20% 30%

Nmero de ns 31874 22035 18885 14591 8988

O algoritmo APRIORIMR, por sua vez, apresenta uma curva de crescimento do tempo de execuo muito insatisfatria, denotando que a eficincia se deteriora medida que o algoritmo submetido a valores mais baixos de suporte. Cabe fazer o adendo de que, para valores de suportes inferiores a 10%, o APRIORIMR no foi capaz de realizar o processamento dos padres frequentes devido ocorrncia de falta de espao de memria suficiente para a concluso do processo. Por esse motivo, no h informaes dos tempos de execuo desse algoritmo para tais valores de suporte. O algoritmo GFP-GROWTH, por sua vez, apresentou desempenho relativamente semelhante ao apresentado pelo MR-RADIX, uma vez que mostrou tempos ligeiramente maiores. Para a maioria dos valores, os dois algoritmos mantiveram seus tempos de execuo praticamente constantes. No entanto, cabe salientar que, ao reduzir o valor de suporte de 5% para 1%, ambos obtiveram um aumento no tempo de execuo. primeira vista, o grfico parece indicar que o algoritmo MR-RADIX apresentou um queda maior de desempenho. Porm, o aumento sofrido pelos algoritmos foi relativamente similar. MR-RADIX passou de 4,8 (quatro virgula oito) segundos para 5,3 (cinco virgula trs) segundos, ao passo que GFPGROWTH passou de 7,7 (sete virgula sete) segundos para 8,0 (oito) segundos. Ou seja, o desempenho da proposta do presente trabalho se configurou como sendo o mais eficiente em relao ao tempo de execuo para a base testada.

86

4.3.2.2 Comparativo de memria utilizada A anlise do uso de memria dos algoritmos multirrelacionais envolvidos iniciou-se com a aplicao na base de dados HC, cujos resultados se encontram apresentados em escala logartmica na Figura 4.9.

Figura 4.9 Grfico do espao de memria utilizado - base HC algoritmos multirrelacionais

O algoritmo MR-RADIX, com a utilizao de sua estrutura de dados Radixtree, consegue comprimir substancialmente a base de dados. Por outro lado, o algoritmo APRIORIMR, mesmo quando aplicado em bases de dados de mdia dimenso tal como a HC -, produz um nmero elevado de itemsets candidatos, o que gera a demanda de grande espao de memria necessrio para o armazenamento e manipulao dos padres em processamento. No caso extremo da presente anlise, com o suporte igual a 0,5%, verifica-se que o algoritmo proposto por este trabalho ocupa cerca de 1.600 (mil e seiscentos) KB enquanto que o APRIORIMR ocupa mais de 63.000 (sessenta e trs mil) KB. Em relao ao algoritmo GFP-GROWTH, novamente, seus valores de memria utilizada no puderam ser coletados, pois o algoritmo no concluiu o processamento, uma vez que a memria disponvel e limitada no incio dos testes no foi suficiente para a efetivao da minerao em todos os valores de suporte analisados. Em relao ao teste de memria utilizada aplicado na base SIVAT, exposto em grfico de escala logartmica na Figura 4.10, possvel notar que o consumo de

87

memria do algoritmo MR-RADIX tambm se mantm muito inferior em relao ao do APRIORIMR.

Figura 4.10 Grfico do espao de memria utilizado - base SIVAT algoritmos multirrelacionais

Um ponto relevante de ser destacado que, para o MR-RADIX, o uso de memria apresenta um aumento somente quando da reduo do valor de suporte de 30% para 20%. Para valores de suporte menores que 20%, a quantidade de memria mantm-se praticamente constante ate o ltimo valor de suporte analisado. Em contrapartida, a quantidade de memria exigida pelo algoritmo APRIORIMR aumenta de forma significativa, medida que o valor de suporte vai sendo reduzido. Ressaltase que, para valores de suporte inferior a 10%, no h medies do uso de memria por esse algoritmo, visto que a quantidade necessria excedeu ao limite disponvel e fixado na mquina de teste (64 MB). Em comparao com o algoritmo GFP-GROWTH, nota-se que o algoritmo MR-RADIX apresenta uma otimizao no uso de memria. Para os valores de 10% e 20%, ambos utilizaram praticamente a mesma quantidade de memria. No entanto, para os demais valores de suporte, o MR-RADIX necessitou de menos memria para a concluso da minerao. Um observao a ser feita que o formato da curva de utilizao de memria para os dois algoritmos no grfico denota uma significativa diferena.

88

O algoritmo MR-RADIX apresenta uma curva horizontal que retrata uma caracterstica positiva, uma vez que a quantidade de memria utilizada pelo algoritmo mantm-se constante, apesar da variao dos valores de suporte. Por outro lado, o algoritmo GFP-GROWTH apresenta uma curva vertical, indicando que o uso de memria cresce inversamente proporcional ao valor de suporte. Especificamente para o valor de suporte igual a 1%, nota-se a que algoritmo MR-RADIX mantm o consumo de memria prximo de 3.000 KB (trs mil kilobytes) enquanto que o algoritmo GFP-GROWTH apresenta o crescimento no consumo, passando de 3.800 KB (trs mil e oitocentos kilobytes) para cerca de 7.000 KB (sete mil kilobytes).

4.3.2.3 Anlise de escalabilidade Nesta subseo, ser avaliado o desempenho dos algoritmos multirrelacionais em situaes que envolvam a minerao de uma extensa base de dados, na qual o processamento frequentemente necessita de um espao em memria principal superior ao disponvel no equipamento, exigindo a adoo de estratgias, tal como particionamento, que permitam a concretizao da minerao. Nos testes a seguir expostos, ser considerado que a memria principal estar limitada a 42 MB (quarenta e dois megabytes). O intuito da medio o de verificar at quais valores de suporte os algoritmos multirrelacionais possuem a capacidade de efetuar a minerao, considerando-se essa limitao de memria. Os algoritmos multirrelacionais utilizados nesta etapa sero os mesmos apresentados nos testes anteriores, a saber APRIORIMR, MR-RADIX e GFP-GROWTH. Para este teste, foi utilizada a notao MR-RADIX-PARTITION para representar o algoritmo proposto com a estratgia de particionamento ativa. A notao MR-RADIX, por sua vez, foi utilizada para representar a proposta sem a estratgia de particionamento ativada. Tal distino foi feita para fins de diferenciao na leitura e anlise dos testes e grficos, bem como para comprovar a eficcia da adoo da estratgia de particionamento para a minerao de grandes bases de dados. Cabe salientar que, para efetivar a aplicao do teste, foram utilizados diversos valores de suporte mnimo, variando-os desde 10% at 90%, o que possibilitou observar o comportamento dos algoritmos analisados por toda a faixa de valores de suporte.

89

Os resultados obtidos neste estudo se encontram reunidos na Figura 4.11, disposta abaixo, a qual expe o tempo de execuo dos algoritmos mencionados em relao base CENSUS.

Figura 4.11 Grfico do tempo de execuo - base CENSUS

Como pode ser observado, o algoritmo MR-RADIX-PARTITION foi o nico a concluir o processamento dos padres frequentes para todos os valores de suporte aplicados. Os demais algoritmos sofreram, em algum momento, o problema de falta de memria para a concluso da minerao. O algoritmo MR-RADIX, por no implementar a estratgia de particionamento, no teve seu tempo medido para valores de suporte inferior a 30%. As medidas de desempenho referentes ao GFPGROWTH no puderam ser coletadas para valores inferiores a 80%. Por sua vez, o APRIORIMR concluiu o processamento em apenas um caso de teste, com suporte igual a 90%. Alm disso, este ltimo foi o algoritmo que mais tempo despendeu para a execuo da tarefa de minerao. O desempenho do MR-RADIX-PARTITION e do MR-RADIX permanecem praticamente iguais at o valor de suporte de 40%. Isso se deve ao fato de que o algoritmo MR-RADIX-PARTITION, nos valores mais altos de suporte, comporta-se de modo similar ao MR-RADIX, dado que a estratgia de particionamento no acionada nessas situaes. Tal comportamento ocorre porque a verso com a

90

estratgia de particionamento capaz de identificar que h memria suficiente para o processamento de toda a base de dados e, portanto, no efetua parties. O algoritmo GFP-GROWTH s teve seu desempenho mensurado para os dois maiores valores de suporte, 80% e 90%, uma vez que, como foi dito, houve a ocorrncia de falta de memria principal. Nesses casos, seu tempo de execuo foi ligeiramente inferior ao dos algoritmos MR-RADIX e MR-RADIX-PARTITION. As divises da base de dados CENSUS em parties foram necessrias para os valores de suporte inferiores a 30%, devido insuficincia de memria para representar toda a base de dados. Nesses casos, tal como mostrado na Figura 4.11, somente o algoritmo MR-RADIX-PARTITION obteve xito na execuo da concluso. Por exemplo, para suporte mnimo igual a 10%, o algoritmo subdividiu a base em 2 (duas) parties com tamanho suficiente para que sua respectiva representao pudesse ser alocada na memria principal. Para cada uma das parties, o algoritmo ento efetuou a minerao de itemsets frequentes locais e, ao final, reuniu tais itemsets com o intuito de obter o conjunto de padres frequentes globais. O segundo passo da anlise de escalabilidade consistiu no estudo do uso de memria pelos algoritmos supra-mencionados, quando aplicados na base CENSUS. Tais resultados podem ser observados na Figura 4.12, a qual expe graficamente as mtricas coletadas.

Figura 4.12 Grfico de memria utilizada - base CENSUS

91

O algoritmo APRIORIMR apresentou novamente desempenho inferior em comparao aos demais algoritmos multirrelacionais. A medio para este algoritmo s foi possvel para o valor mais alto de suporte, 90%, uma vez que, para todas as outras condies, o processamento no pode ser concludo devido insuficincia de memria principal. O algoritmo GFP-GROWTH tambm apresentou um consumo de memria elevado mesmo para valores mais altos de suporte quando comparado com os algoritmos MR-RADIX e MR-RADIX-PARTITION. Enquanto que o MR-RADIX, por exemplo, para o valor de suporte igual a 80%, necessitou de 2.250 KB (dois mil duzentos e cinquenta kilobytes), o GFP-GROWTH necessitou de 31.000 KB (trinta e um mil kilobytes). Ou seja, o MR-RADIX apresentou um consumo de quase quatorze vezes menor do que o GFP-GROWTH. O comportamento, em termos de ocupao de memria dos algoritmos MRRADIX e MR-RADIX-PARTITION, foi semelhante em todos os nveis de suporte analisados. Como j mencionado, isso ocorre porque o algoritmo MR-RADIXPARTITION possui a capacidade de identificao do espao de memria disponvel, efetuando o particionamento da base de dados somente quando necessrio. Observa-se que, para os valores de suporte mais baixos, nos quais somente o MR-RADIX-PARTITION concluiu o processamento, a quantia de memria utilizada mantm-se relativamente constante. Isso porque o algoritmo cria as parties de forma que as mesmas ocupem todo o espao disponvel em memria. Dessa forma, cada partio otimizada para conter o maior nmero de registro possvel, o que, consequentemente, acarreta um nmero menor de parties e tambm um nmero menor de acessos a disco. Em comparao com o GFP-GROWTH, os algoritmos MR-RADIX-PARTITION e MR-RADIX se sobressaram, principalmente, no que se refere ao uso otimizado da memria. Nos testes comparativos do tempo de execuo, notou-se um desempenho ligeiramente superior do GFP-GROWTH, porm o consumo de memria verificado foi elevado quando comparado com o algoritmo proposto neste trabalho, o qual apresentou resultados aliando baixo tempo de execuo e uma melhor utilizao no uso da memria.

92

4.4 Consideraes finais


Este captulo apresentou o estudo comparativo realizado para verificar a eficincia do algoritmo proposto MR-RADIX em relao a algoritmos correlatos. Para isso, foi feita a separao entre dois conjuntos de testes. O primeiro deles consistiu na comparao entre o algoritmo multirrelacional MR-RADIX e o algoritmo tradicional que lhe serviu de base, PATRICIAMINE. Nessa fase, foi possvel confirmar a eficcia e eficincia do algoritmo multirrelacional na minerao de base de dados relacionais, uma vez que o tempo de execuo e a memria utilizadas por este apresentaram melhores ndices em comparao ao algoritmo tradicional, o qual possui como limitao a necessidade da execuo de junes que renem os dados provenientes de mltiplas tabelas. O segundo conjunto de testes, por sua vez, avaliou as mtricas de desempenho, comparando o algoritmo proposto neste trabalho com algoritmos existentes na literatura, tais como APRIORIMR e GFP-GROWTH. Tambm nessa fase foi possvel observar um ganho no desempenho do algoritmo MR-RADIX. Isso porque observou-se, para a maioria dos casos, um melhor tempo de execuo e um uso mais otimizado da memria. Faz-se o adendo de que foi exposta, tambm nessa fase, a estratgia de particionamento da base de dados. Essa implementada pelo algoritmo proposto para lidar com a limitao de espao em memria, subdividindo o conjunto de dados inicial em pores que possam ser integralmente processadas. Foi constatado que o uso de tal estratgia apresentou o resultado esperado para o algoritmo MR-RADIX, possibilitando que o mesmo seja utilizado em grandes bases de dados, nas quais o processamento no pode ser realizado pelos algoritmos convencionais, uma vez que no h disponibilidade de memria suficiente para a minerao.

93

Captulo 5

Concluses

5.1 Concluses finais da proposta da dissertao


O presente trabalho objetivou a construo de um algoritmo multirrelacional de minerao de regras de associao para grandes bases de dados. Assim, de modo a fundamentar o trabalho, primeiramente foi descrito um panorama geral dos algoritmos tradicionais e multirrelacionais, o que possibilitou a identificao de limitaes nas propostas existentes. Os algoritmos multirrelacionais atualmente presentes na literatura viabilizam a extrao de padres em bases de dados relacionais, porm no permitem a anlise de grandes volumes de dados em mltiplas tabelas. Em geral, as propostas existentes baseiam seus processamentos de padres em estruturas de dados, as quais devem estar integralmente disponveis em memria. Para bases de dados de tamanho elevado, essa estrutura pode ser suficientemente grande, a ponto de no ser alocvel em memria e, assim, acaba impossibilitando o uso desses algoritmos. Para lidar com essa dificuldade, foi elaborado um algoritmo que otimiza o uso da memria por meio de uma estrutura de dados, denominada Radix-tree, a qual comprime eficientemente a representao da base de dados. Alm disso, foram apresentadas modificaes no algoritmo, as quais permitiram que o mesmo seja aplicado em base de dados relacionais compostas de mltiplas tabelas. Uma primeira modificao foi a extenso da representao de padres, o que permitiu a representao dos padres multirrelacionais. Com isso, possibilitou-se o armazenamento das informaes especficas dos padres provenientes de mltiplas

94

tabelas, as quais, cabe salientar, possuem um grau de complexidade superior em relao aos padres tradicionais, isto , de uma nica tabela. Cabe ressaltar, ademais, que foram efetuadas modificaes no algoritmo original (PIETRACAPRINA; ZANDOLIN, 2003), adaptando-o aplicao no contexto multirrelacional. Props-se uma estrutura auxiliar denominada ItemMap que otimiza o uso do espao em memria. Tal estrutura realiza a substituio da representao dos itens relacionais por uma notao mais comprimida, reduzindo o tamanho ocupado pelos ns da estrutura principal. Como os padres multirrelacionais so formados por um nmero maior de informaes, o uso da ItemMap possibilita que tal complexidade no seja transmitida e armazenada na Radix-tree, favorecendo sobretudo a prpria eficincia da minerao. O presente trabalho tambm apresentou a proposta de uma nova estratgia para a busca de padres multirrelacionais, a qual foi denominada fuso de itens frequentes. Tal estratgia possibilita a minerao de itemsets frequentes provenientes de mltiplas tabelas sem a necessidade de efetuar a custosa operao de juno. Os itens provenientes das tabelas secundrias so processados e inseridos como ns na Radix-tree da tabela principal. Alm disso, ressalta-se que o algoritmo gera e utiliza apenas uma nica estrutura durante todo o processamento, diferentemente de outras propostas, nas quais so geradas uma estrutura por tabela (TEREDESAI et al., 2005). Alm de possibilitar a utilizao mais eficiente da memria, a proposta apresentada tambm faz uso da estratgia de particionamento, o que permite que grandes bases de dados relacionais possam ser processadas e terem seus padres frequentes extrados. Para isso, o algoritmo divide a base de dados em parties, de modo que essas possam ser alocadas em memria e processadas, obtendo assim os padres locais dessas unidades. Essa proposta, cabe salientar, apresenta uma forma mais otimizada para a obteno dos padres globais a partir dos padres locais por meio do armazenamento das informaes que indicam em quais parties um determinado padro local foi encontrado. Com isso, pode-se ignorar a contagem nessas parties, reduzindo, assim, o nmero de parties a serem verificadas para a obteno do suporte global. A funcionalidade da proposta do presente trabalho foi exposta por meio da comparao de sua aplicao com algoritmos similares existentes na literatura da

95

rea. Os algoritmos utilizados no estudo comparativo foram codificados neste trabalho com base na verso descrita pelos respectivos autores. Com isso, ressalta-se que um subproduto do trabalho foi justamente o incremento no nmero e na diversidade de algoritmos disponveis na ferramenta fDMMR. Com relao ao estudo comparativo propriamente dito, verificou-se, primeiramente, a vantagem da utilizao do algoritmo multirrelacional MR-RADIX para uso em base de dados relacionais. Para tanto, esse algoritmo foi analisado em comparao ao algoritmo tradicional PATRICIAMINE. Constatou-se que a minerao multirrelacional, de fato, apresenta melhor eficincia, uma vez que evita-se as custosas operaes de juno de mltiplas tabelas. Alm disso, a abordagem multirrelacional no apresenta perdas semnticas, ao contrrio dos algoritmos tradicionais, que podem introduzir erros ou imprecises durante a juno dos dados. Em seguida, foi constatado, aps testes em diferentes bases de dados, que o algoritmo MR-RADIX apresenta um desempenho superior em relao ao tempo de execuo e memria utilizada quando comparado a outras propostas multirrelacionais. Por fim, utilizou-se uma base com tamanho elevado para explicitar a eficcia do algoritmo MR-RADIX no processamento de grande volumes de dados. Tal algoritmo conseguiu prosseguir, por meio da estratgia de particionamento, o processamento em valores de suporte baixos, os quais acarretaram falha na execuo dos demais algoritmos, devido insuficincia de memria para a concluso da minerao.

5.2 Sugestes de trabalhos futuros


A partir do trabalho desenvolvido, possvel elencar sugestes de pesquisas e desenvolvimentos para trabalhos futuros. a) Extenso do algoritmo MR-RADIX para contemplar maximal e closed itemsets: tal extenso possibilitaria a extrao desses dois tipos especiais de itemsets que possuem a caracterstica de ignorarem subconjuntos frequentes. Com isso, uma quantia significativa de itemsets seria descartada sem perdas semnticas significativas , reduzindo-se o volume de padres a serem submetidos verificao pelo analista;

96

b) Melhoria da estratgia de particionamento: um trabalho que objetivasse o aprimoramento ou mesmo a eliminao da necessidade da terceira leitura da base de dados poderia ser desenvolvido. Desse modo, certamente haveria ganhos na eficincia, visto que a etapa de gerao de itemsets frequentes globais consome substancial quantidade de tempo da estratgia de particionamento; c) Estudo e implementao de novas medidas de interesse: outras medidas de interesse, tais como a peculiaridade e utilidade (GENG; HAMILTON, 2006), poderiam ser o eixo condutor de trabalhos investigativos. Isso permitiria a gerao de padres baseados em outras mtricas, o que possibilitaria a extrao de informaes de interesse que no so possveis com o uso das mtricas tradicionais suporte e confiana - atualmente implementadas; d) Viabilizao de estudo comparativo entre algoritmos multirrelacionais de diferentes abordagens: seria interessante um estudo que possibilitasse a anlise comparativa entre os algoritmos multirrelacionais voltados minerao direta de bases de dados relacionais, tal como o MR-RADIX proposto, e os algoritmos ILP ou baseados em grafos. Como subproduto deste trabalho, foram efetuados alguns incrementos na ferramenta fDMMR. No entanto, identificou-se possveis alvos de investigao para trabalhos futuros relacionados melhoria dessa ferramenta, a saber: a) Elaborao de tcnicas de ps-processamento: isso permitiria uma melhor visualizao e compreenso dos padres obtidos na minerao. Como o nmero de padres gerados pode ser muito elevado, o uso de tais tcnicas tornaria a etapa de anlise dos resultados mais eficiente, auxiliando o analista a interpretar os conhecimentos implcitos; b) Implementao de novos tipos de algoritmos de minerao: poderia ser realizada a incluso de novos algoritmos na fDMMR voltados minerao de outros tipos de padres, tais como agrupamentos, rvores de classificao, entre outros. Isso permitiria ampliar o leque de aplicao da ferramenta, dando base para estudos e desenvolvimentos de tcnicas de prospeco de diferentes tipos de conhecimento.

97

Apesar das contribuies do presente trabalho, nota-se que ainda h vrias investigaes a serem desenvolvidas, principalmente em grandes bases de dados, rea na qual as tcnicas apresentadas ainda se mostram muito aqum da eficincia esperada. Porm, o objetivo deste trabalho foi alcanado no sentido de que foi desenvolvida e apresentada uma proposta de algoritmo multirrelacional para minerao de regras de associao em grandes bases de dados, o que consistia uma lacuna no atual estado da arte.

98

REFERNCIAS BIBLIOGRFICAS
AGRAWAL, R.; IMIELINSKI, T.; SWAMI, A. Mining Association Rules between Sets of Items in Large Databases. In: Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data, p.207216, Mai. 1993. AGRAWAL, R.; SRIKANT, R. Fast Algorithms for Mining Association Rules in Large Databases. In: Proceedings of the 20th International Conference on Very Large Data Bases, p.487-499, Set. 1994. APPICE, A.; CECI, M.; MALERBA, D. Mining model trees: A multi-relational approach. Lecture notes in computer science, p. 421, 2003. ARTHUR, D.; VASSILVITSKII, S. How Slow is the k-means Method? In: Proceedings of the twenty-second annual symposium on Computational geometry, p.144153. ACM New York, NY, USA. 2006. BARALIS, E.; CERQUITELLI, T.; CHIUSANO, S. IMine: Index Support for Item Set Mining. IEEE Transactions on Knowledge and Data Engineering, v. 21, n. 4, p. 493-506, 2009. BERSON, A.; SMITH, S.; THEARLING, K. An overview mining techniques. In:______. An overview of data techniques. McGraw-Hill, 1999. of data mining

BLOCKEEL, H.; DZEROSKI, S. Multi-Relational Data Mining 2005: Workshop Report. ACM SIGKDD Explorations Newsletter, v. 7, n. 2, p.126-128, Dez. 2005. BODON, F. A fast apriori implementation. In: Proceedings of the IEEE ICDM Workshop on Frequent Itemset Mining Implementations, v. 90, 2003. BODON, F. A survey on Frequent Itemset Mining. f. 97. Tese (Doutorado), Budapest University of Technold Economics, 2006. BRANDT, N. et al. Mining multi-relational data, Technical report, ISTProject MiningMart, IST-11993, 2001. BUEHRER, G.; PARTHASARATHY, S.; GHOTING, A. Out-of-core frequent pattern mining on a commodity PC. In: Proceedings of the 12th ACM SIGKDD international conference on Knowledge discovery and data mining - KDD '06, p. 86. New York, New York, USA: ACM Press, 2006. CEGLAR, A.; RODDICK, J. F. Association Mining. Computing, v. 38, n. 2, 2006.

99

CLARE, A.; WILLIAMS, H. E.; LESTER, N. Scalable multi-relational association mining. In: Proceedings of the 4th IEEE International Conference on Data Mining (ICDM04), p.355-358, Nov. 2004. DEHASPE, L.; RAEDT, L. De. Mining association rules in multiple relations. In: Proceedings of the 7th Intl. Workshop on Inductive Logic Programming, Praga, Repblica Tcheca, p.125-132, 1997. DEHASPE, L.; TOIVONEN, H. T. T. Discovery of Relational Association Rules. In: DZEROSKI, S.; LAVRAC, N. Relational data mining, p.189-212, Springer-Verlag, 2001. DEXTERS, N.; PURDOM, P.; GUCHT, D.V. Analysis of Candidate-Based Frequent itemset. In: Proceedings of the ACM Symposium on Applied Computing - Data MiningTrack, 2006. DOMINGOS, P. Prospects and challenges for multi-relational data mining. ACM SIGKDD Explorations Newsletter, v. 5, n. 1, Jul. 2003. DUARTE, D. Utilizando tcnicas de programacao lgica indutiva para minerao de banco de dados relacional. 78 f. Dissertao (Mestrado) Universidade Federal do Paran. Curitiba, 2001 DUNHAM, M.; XIAO, Y.; SEYDIM, A.; GRUENWALD, L.; HOSSAIN, Z. A survey of association rules. ACM Computing Surveys, p. 1-65, 2002. DZEROSKI, S. Multi-Relational Data Mining: An Introduction. ACM SIGKDD Explorations Newsletter, v. 5, n. 1, p.1-16, Jul. 2003. DZEROSKI, S.; RAEDT, L. D.; WROBEL, S. Multi-Relational Data Mining 2003: Workshop Report. ACM SIGKDD Explorations Newsletter, v. 5, n. 2, p.200-202, Dez. 2003. FAYYAD, U.; PIATETSKY-SHAPIRO, G.; PADHRAIC, S. From Data Mining to Knowledge Discovery: An Overview. In: FAYYAD, U. M. (Ed.) et al. Advances in Knowledge Discovery and Data Mining. Menlo Park: AAAI Press, The MIT Press, 1996. cap.1, p. 1-34. FAYYAD, U.; UTHURUSAMY, R. Data mining and knowledge discovery in databases. Communications of the ACM, v. 39, n. 11, p. 24-26, 1996. GANTI, V.; GEHRKE, J.; RAMAKRISHNAN, R. Mining very large databases. Computer, v. 32, n. 8, p. 38-45. doi: 10.1109/2.781633, 1999. GARCIA, E. Minerao de regras de associao multi-relacional quantitativas. Dissertao (Mestrado). f. 84. Universidade Metodista de Piracicaba, 2008. GARCIA, E.; VIEIRA, M. Estudo de caso de minerao de dados multi-relacional. In: XXIII Simpsio Brasileiro de Banco de Dados, p.224-237, 2008.

100

GEIST, I. Declarative Data Mining: A framework for data mining and KDD. In: Proceedings of the 2002 ACM symposium on Applied computing, p.508-513, Mar. 2002. GENG, L.; HAMILTON, H. J. Interestingness measures for data mining. ACM Computing Surveys, v. 38, n. 3, 2006. GOETHALS, B. Survey on frequent pattern mining. Manuscript, p. 1-43, 2003. GOPALAN, R.; SUCAHYO, Y. ITL-mine: Mining frequent itemsets more efficiently. In: Proceedings of the 2002 Internatiional Conference on Fuzzy Systems and Knowledge Discovery, p.167172. Citeseer., 2002. GOPALAN, R.; SUCAHYO, Y. Treeitl-mine: Mining frequent itemsets using pattern growth, tid intersection, and prefix tree. Lecture notes in computer science, p. 535546. Springer, 2002. GOPALAN, R.; SUCAHYO, Y. High performance frequent patterns extraction using compressed FP-tree. In: Proceedings of the SIAM International Workshop on High Performance and Distributed Mining, Orlando, USA, 2004. GRAHNE, G.; ZHU, J. Efficiently using prefix-trees in mining frequent itemsets. In: Proceedings of the ICDM Workshop on Frequent Itemset Mining Implementations. Citeseer, 2003. ______. Mining Frequent Itemsets from Secondary Memory. In: Proceedings of the Fourth IEEE International Conference on Data Mining (ICDM'04), p. 91-98, 2004. ______. Fast algorithms for frequent itemset mining using FP-trees. IEEE Transactions on Knowledge and Data Engineering, v. 17, n. 10, p. 1347-1362. 2005. GUO, H.; VIKTOR, H. Mining relational databases with multi-view learning. In: Proceedings of the 4th international workshop on Multi-relational mining MRDM '05, p. 15-24. New York, USA: ACM Press, 2005. GYORODI, R. A Comparative Study of Iterative Algorithms in Association Rules Mining, v. 12, n. 3, p. 205-213, 2003. GYORODI, R.; GYORODI, C.; HOLBAN, S. A Comparative Study of Association Rules Mining Algorithms. In: Proceedings of Hungarian Joint Symposium on Applied Computational Intelligence, v. 40, 2004. GYORODI, R.; GYORODI, C.; PATER, M.; BOC, O.; DAVID, Z. AFOPT algorithm for multilevel databases. In: Proceedings of the IEEE Seventh International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC'05), n. 1, p. 5, 2005. HABRARD, A.; BERNARD, M.; JACQUENET, F. Multi-relational data mining in medical databases. Artificial Intelligence in Medicine: 9th Conference on, p. 1-10,

101

2003. HAMIDA, M. Patricia-Tree based algorithm to find frequent closed itemsets. 70 f. Dissertao (Mestrado). Faculty of Sciences of Tunis, 2005. HAMIDA, M.; SLIMANI, Y. A Patricia-Tree Approach for Frequent Closed Itemsets. In: WEC'05: The Second World Enformatika Conference, p.149-152. Istanbul, Turquia., 2005. HAN, J.; CHEN, M.; YU, P. S. Data Mining: An Overview from Database Perspective. IEEE Transactions On Knowledge And Data Engineering, v. 8, n. 6, p.866-883, Dez. 1996. HAN, J.; KAMBER, M. Data mining: concepts and techniques. 2 ed. San Francisco: Morgan Kaufmann Publishers, 2006. 743 p. HAN, J.; PEI, J.; YIN, Y. Mining frequent patterns without candidate generation. In: Proceedings of the 1996 ACM SIGMOD Int. Conf. Management of Data (SIGMOD00), p.1-12, Dallas, Mai. 2000. HIPP, J.; GNTZER, U.; NAKHAEIZADEH, G. Algorithms for association rule mining - a general survey and comparison. ACM SIGKDD Explorations Newsletter, v. 2, n. 1, p. 5864. ACM New York, NY, USA, 2000. IMIELINSKI, T; VIRMANI, A. Msql: A query language for database mining. Data Mining and Knowledge Discovery, v. 3, n. 4, p. 373408, 1999. INOKUCHI, A.; WASHIO, T.; MOTODA, H. An apriori-based algorithm for mining frequent substructures from graph data. In: Proceedings of the 4th European Conference on Principles of Data Mining and Knowledge Discovery, p.13-23, 2000. IVNCSY, R.; KOVCS, F.; VAJK, I. An analysis of association rule mining algorithms. In: Proceedings of Fourth International ICSC Symposium, 2004. KANODIA, J. Structural advances for pattern discovery in multi-relational databases. 104 f. Dissertao(Mestrado), Rochester Institute Of Technology, 2005. KANTARDZIC, M. Data Mining: concepts, models, methods and algorithms. New Jersey: John Wiley & Sons, 2003. KETKAR, N. S.; HOLDER, L. B.; COOK, D. J. Comparison of graph-based and logic-based multi-relational data mining. ACM SIGKDD Explorations Newsletter, v. 7, n. 2, p.64-71, 2005. KING, R.; SRINIVASAN, A.; DEHASPE, L. Warmr: a data mining tool for chemical data. Journal of computer-aided molecular design, v. 15, n. 2, p. 173-81, 2001. KNOBBE, A. J. Multi-Relational Data Mining. 130 f. Tese (Doutorado), The Netherlands, 2004.

102

KNOBBE, A. J.; BLOCKEEL, H.; SIEBES, A.; VAN DER WALLEN, D.M.G. Multi-relational data mining. In: Proceedings of Benelearn, 1999. KNOBBE, A. J.; SIEBES, A.; MARSEILLE, B. Involving Aggregate Functions in Multi-Relational Search. In: Proceedings of PKDD 2002, Helsinki, Finlndia, 2002. KOOPMAN, A.; SIEBES, A. Characteristic Relational Patterns. In: Proceedings of the 15th ACM SIGKDD international conference on Knowledge discovery and data mining, p.437-445. Paris, 2009. KURAMOCHI, M.; KARYPIS, G. An efficient algorithm for discovering frequent subgraphs. IEEE Transactions On Knowledge and Data Engineering, v. 16, n. 9, p.1038-1051, 2004. LIU, G.; LU, H.; YU, J.; WEI, W.; XIAO, X. Afopt: An efficient implementation of pattern growth approach. In: Proceedings of the ICDM workshop on frequent itemset mining implementations, 2003. LIU, J.; PAN, Y.; WANG, K.; HAN, J. Mining frequent item sets by opportunistic projection. Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining - KDD '02, p. 229. New York, New York, USA: ACM Press, 2002. LIU, L.; LI, E.; ZHANG, Y.; TANG, Z. Optimization of frequent itemset mining on multiple-core processor. In: Proceedings of the 33rd international conference on Very large data bases, p.1275-1285, VLDB Endowment, 2007. MATSUDA, T.; HORIUCHI, T.; MOTODA, H.; WASHIO, T. Extension of graphbased induction for general graph structured data. In: Proceedings of the 4th European Conference on Principles of Data Mining and Knowledge Discovery, p.420-431, 2000. MORISSON, D. R. PATRICIA-Practical Algorithm To Retrieve Information Coded in Alphanumeric. Journal of the ACM (JACM), v. 15, n. 4, p. 514-534, 1968. NEZHAD, J.; SADREDDINI, M. PTclose: A novel algorithm for generation of closed frequent itemsets from dense and sparse datasets. In: Proceedings of the World Congress on Engineering, v. 1, p.3-7. London, 2007. NIJSSEN, S.; KOK, J. Faster association rules for multiple relations. In: International Joint Conference on Artificial Intelligence, v. 17, p. 891896. Citeseer, 2001. NIJSSEN, S.; KOK, J. N. Faster association rules for multiple relations. NEBEL, B. (ed). In: Proceedings of the 17th international joint conference on artificial intelligence, Morgan Kaufmann, p.891-896, 2001. ORDONEZ, C. Integrating K-means clustering with a relational DBMS using SQL. IEEE Transactions on Knowledge and Data Engineering, v. 18, n. 2, p. 188-201. doi: 10.1109/TKDE.2006.31, 2006.

103

OYAMA, F. T. Extrao de conhecimento em bases de dados multi-relacionais por meio de agrupamento de tuplas. 51 f. Monografia (Graduao), Universidade Estadual Paulista, 2006. OZKURAL, E.; AYKANAT, C. A space optimization for FP-growth. In: Proceedings of the ICDM Workshop on Frequent Itemset Mining, 2004. PAGE, D.; CRAVEN, M. Biological applications of multi-relational data mining. ACM SIGKDD Exploration Newsletter, v. 5, n. 1, p.69-79, Jul. 2003. PARK, J.; CHEN, M.; YU, P. An effective hash-based algorithm for mining association rules. In: Proceedings of the 1995 ACM SIGMOD international conference on Management of data, p.175186. ACM New York, NY, USA. Retrieved from http://portal.acm.org/citation.cfm?id=223784.223813, 1995. PATEL, D.; HSU, W.; LEE, M. Mining relationships among interval-based events for classification. In: Proceedings of the 2008 ACM SIGMOD international conference on Management of data - SIGMOD '08, p.393. New York, New York, USA: ACM Press, 2008. PEI, J.; HAN, J.; LU, H.; et. al. H-mine: hyper-structure mining of frequent patterns in large databases. In: Proceedings of the IEEE International Conference on Data Mining, p.441-448. IEEE Computer Society, 2001. PIETRACAPRINA, A.; ZANDOLIN, D. Mining frequent itemsets using patricia tries. In: Proceedings of the IEEE ICDM Workshop Frequent Itemset Mining Implementations, v. 80. Citeseer, 2003. PIZZI, L. C. Minerao de dados em mltiplas tabelas: o algoritmo GFPGrowth. 106 f. Dissertao(Mestrado), Universidade Federal de So Carlos, 2006. PIZZI, L.; RIBEIRO, M.; VIEIRA, M. Analysis of Hepatitis Dataset using Multirelational Association Rules. In: Proceedings of the ECML/PKDD Discovery Challenge, 2005. RCZ, B. Nonordfp: An FP-growth variation without rebuilding the FP-tree. In: Proceedings of the IEEE ICDM Workshop on Frequent Itemset Mining Implementations (FIMI04, v. 126. Citeseer, 2004. RIBEIRO, M. Minerao de dados em mltiplas tabelas fato de um data warehouse. 121 f. Dissertao (Mestrado), Universidade Federal de So Carlos, 2004. RIBEIRO, M. X.; VIEIRA, M. T. P.; TRAINA, A. J. M. Minerao de Regras de Associao Usando Agrupamentos. In: I workshop sobre algoritmos de minerao de dados, p. 9-16. Uberlndia, Brasil, 2005. SAID, A.; DOMINIC, P.; ABDULLAH, A. A Comparative Study of FP-growth Variations. IJCSNS, v. 9, n. 5, p. 266-272, 2009. SARAWAGI, S.; THOMAS, S.; AGRAWAL, R. Integrating association rule mining

104

with relational database systems: Alternatives and implications. Data Mining and Knowledge Discovery, v. 4, n. 2, p. 89125. Springer, 2000. SAVASERE, A.; OMIECINSKI, E.; NAVATHE, S. An efficient algorithm for mining association rules in large databases. Atlanta: Georgia Institute of Technology, 1995. SENKUL, P.; TOROSLU, H. ILP-based concept discovery in multi-relational data mining. Expert Systems with Applications, v. 36, n. 9, p. 11418-11428, 2009. SHANG, X. SQL Based Frequent Pattern Mining. 146 f. Tese (Doutorado), 2005. SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de Banco de Dados. 3 ed. So Paulo: Pearson Education do Brasil, 1999. 777 p. SRIKANT, R.; AGRAWAL, R. Mining quantitative association rules in large relational tables. ACM SIGMOD Record, v. 25, p.112. NY, USA: ACM New York, 1996. SUCAHYO, Y.; GOPALAN, R. CT-ITL: Efficient frequent item set mining using a compressed prefix tree with pattern growth. In: Proceedings of the 14th Australasian database conference, v. 17, p.95104. Australian Computer Society, Inc. Darlinghurst, Australia, 2003. TEREDESAI, A.; AHMAD, M.; KANODIA, J.; GABORSKI, R. CoMMA: a framework for integrated multimedia mining using multi-relational associations. Knowledge and Information Systems, v. 10, n. 2, p. 135-162, 2005. TOIVONEN. H. Sampling Large Databases for Association Rules. In: Proceedings of the 22nd. VLDB Conference, 1996. TSECHANSKY, M. S.; PLISKIN, N.; RABINOWITZ, G.; PORATH, A. Mining Relational Patterns from Multiple Relational Tables. Decision Support Systems, v. 27, n. 1-2, p.177-195, 1999. WANG, K.; TANG, L.; HAN, J.; LIU, J. Top Down FP-Growth for Association Rule Mining. In: Lecture notes in computer science. p.334340. Springer, 2002. WANG, Y. Categorization of Association Rule Mining Algorithms Framework, TM Work Paper. p.1-20, 2004. WOJCIECHOWSKI, M.; ZAKRZEWICZ, M. HASH-MINE: A New Framework for Discovery of Frequent Itemsets. In: ADBIS-DASFAA Symposium, p.215222, 2000. YAN, X.; CHENG, H.; HAN, J.; XIN, D. Summarizing itemset patterns: A profilebased approach. In: Proceedings of the 2005 Int. Conf. Knowledge Discovery and Data Mining (KDD05), Chicago, Ago. 2005. YIN, X. Scalable mining and link analysis across multiple database relations, 154 f. Tese (Doutorado), University of Illinois at Urbana-Champaign, 2007.

105

YU, P.; CHEN, M.; HAN, J. Data mining: an overview from a database perspective. IEEE Transactions on Knowledge and Data Engineering, v. 8, n. 6, p. 866-883, 1996. ZHANG, Y. Multi Relational Rules Mining in Data Warehouse. In: Proceedings of the Second IEEE International Workshop on Knowledge Discovery and Data Mining, p.944-947, IEEE Computer Society, 2009. ZHAO, Q.; BHOWMICK, S. Association rule mining: A survey. Nanyang Technological University, Singapore, n. 2003116, 2006.

106

Apndice A

Descoberta de Conhecimento em Bases de Dados

Han e Kamber (2006) conceituam a minerao de dados como a tarefa de descoberta de padres interessantes extradas de um grande volume de dados armazenados em base de dados, data warehouse10 ou outro repositrio. Para os autores, a minerao de dados deve ser vista como o prximo passo aps o armazenamento dos dados, transformando-os em informaes teis. Ademais, apontam o data mining como um campo inter-disciplinar, que envolve reas como sistemas de banco de dados, estatstica, aprendizado de mquina, visualizao de dados, computao de alto desempenho, redes neurais, reconhecimento de padres, entre outros. A confluncia dessa diversidade de disciplinas originou uma grande variedade de sistemas de data mining. Para auxiliar na distino e identificao desses sistemas, foram criados diferentes mtodos de classificao, sendo que a classificao baseada no tipo de conhecimento extrado a mais utilizada, pois apresenta mais claramente as diferenas de tcnicas e requerimentos do data mining (HAN; CHEN; YU, 1996). Com base nessa classificao, os pargrafos seguintes descrevem as principais funcionalidades do data mining, relacionando-as com os tipos de conhecimento que so capazes de extrair dos dados:
10

Data warehouse ou armazm de dados: repositrio de dados integrado que mantm uma relao estrita com o tempo (histrico). Alm disso, no-voltil, ou seja, mantido separadamente da base de dados operacional, pois especificamente utilizado para tomada de decises (OLAP e data mining).

107

Classificao: um processo composto de duas etapas. Na primeira, chamada de etapa de treinamento, um conjunto de modelos ou funes construdo, de modo que classifique um item em uma das classes pr-definidas. A segunda etapa, denominada classificao, destina-se ao uso dos modelos obtidos anteriormente para a classificao de novos itens. Exemplo: uma aplicao bancria que classifique uma operao de emprstimo como segura ou arriscada. Regresso: processo anlogo classificao, porm os modelos (funes) so utilizados para predizer valores atualmente indisponveis. utilizado, por exemplo, para estimar a probabilidade de um paciente sobreviver dado um conjunto de resultados de testes. Anlise de associao: a descoberta de relacionamentos ou regras de associao interessantes (interesting) entre itens em um conjunto de dados. Um exemplo clssico de uso a anlise da cesta de compras11, que objetiva a busca por associaes entre diferentes itens. A descoberta dessas associaes pode ajudar, por exemplo, os estrategistas de marketing a localizar itens que so frequentemente comprados juntos pelos consumidores. Anlise de agrupamento12: realiza a diviso do conjunto de dados em agrupamentos (clusters) de objetos, de modo que os objetos pertencentes a um determinado grupo possuam alta similaridade entre si e baixa similaridade aos objetos dos demais grupos. Um exemplo de uso dessa funcionalidade a identificao de sub-populaes de consumidores. Agrupando-se indivduos que compartilham caractersticas em comum - como, por exemplo, a renda mensal - possvel identificar potenciais grupos de compradores de um produto. Sumarizao: processo que envolve mtodos para encontrar uma descrio compacta para um conjunto de dados. Um tipo de sumarizao simples e que utilizado em vrias ocasies a representao de um conjunto de valores numricos por meio da mdia e do desvio padro. Anlise e deteco de desvios: anlise que objetiva localizar objetos que no condizem com o comportamento geral do conjunto de dados. Embora na maioria dos casos haja o descarte de tais objetos, uma vez que eles so tratados como rudos ou excees, existem aplicaes importantes que utilizam esse tipo de anlise. Um dos
11 12

Em ingls, market basket analysis. Em ingls, o termo correspondente clustering.

108

mais conhecidos o uso em deteco de fraudes, nos quais os eventos raros so mais interessantes que os regulares. O processo de Descoberta de Conhecimento em Bases de Dados (KDD) definido como um mtodo no-trivial, iterativo, interativo, composto de vrias etapas que, ao final, evidenciam padres teis e ocultos nos dados iniciais (GEIST, 2002). Embora os termos KDD e data mining muitas vezes so utilizados como sinnimos, h uma distino entre eles. O termo KDD refere-se a todo o processo de descoberta de conhecimento til de uma base de dados, enquanto que o data mining refere-se aplicao de algoritmos para extrao de padres em uma base de dados, ou seja, caracteriza-se apenas como uma das etapas do processo de KDD (FAYYAD; PIATETSKY-SHAPIRO; PADHRAIC, 1996). A Figura A.1 mostra um esquema do processo de obteno de conhecimento a partir de um repositrio de dados. As tarefas realizadas antes da etapa de data mining visam a preparao dos dados e, por esse motivo, so consideradas rotinas de pr-processamento. Por outro lado, as etapas seguintes ao data mining visam a apresentao do conhecimento extrado, sendo chamadas de rotinas de psprocessamento.

Figura A.1 Detalhes das etapas do KDD (HAN; KAMBER, 2006)

109

De acordo com o esquema acima, o processo de Descoberta de Conhecimento uma sequncia iterativa de passos, os quais so descritos por Han e Kamber (2006): Limpeza de dados: realiza o tratamento de valores nulos, a remoo de rudos e a correo de dados inconsistentes. Este procedimento importante para a garantia da qualidade dos resultados futuros; Integrao de dados: mltiplas fontes de dados so combinadas em uma nica, tratando eventuais redundncias, conflitos e heterogeneidade de dados e de esquema; Seleo de dados: os dados relevantes anlise so separados dos demais e recuperados da base de dados, com o intuito de reduzir a carga de trabalho e, assim, melhorar o desempenho do processo; Transformao de dados: os dados so transformados para um formato apropriado para a operao de extrao; Data mining: processo essencial do KDD no qual tcnicas so aplicadas para a extrao de padres dos dados; Avaliao de padres: utiliza medidas de interesse para identificar padres relevantes obtidos pelo data mining; Apresentao do conhecimento: etapa que utiliza tcnicas de visualizao de dados e representao do conhecimento para apresentar os resultados ao usurio. provvel que, em certos contextos, um ou mais passos do processo de KDD sejam omitidos, como quando os dados j se encontram inicialmente limpos e integrados. Em contrapartida, h casos em que determinadas etapas so consideradas importantes e devem ser priorizadas. Por exemplo, se houver a necessidade de apresentar padres de fcil interpretao ao analista, faz-se necessrio um refinamento da etapa de apresentao do conhecimento, por meio do uso de tcnicas elaboradas, como a apresentada no trabalho de Yan et al. (2005). A nica etapa que realmente deve estar presente para justificar o processo de extrao de conhecimento o data mining, considerada a etapa central e a mais importante do KDD.

110

Apndice B

Algoritmos APRIORI e FP-GROWTH

B.1 Algoritmo APRIORI


O algoritmo APRIORI foi idealizado e formalizado por Agrawal e Srikant (1994), a partir dos modelos matemticos para a extrao de regras de associao booleanas. O seu funcionamento baseado no conceito de gerao-e-teste de candidatos, que divide cada iterao do algoritmo em duas fases. A primeira fase visa a obteno dos k-itemsets candidatos, a partir do conjunto de (k-1)-itemsets frequentes. Na segunda fase realizada a contabilizao dos k-itemsets, selecionando somente aqueles que atendem frequncia mnima pr-estabelecida. Uma caracterstica marcante do APRIORI o processo de busca por largura, de modo que na i-sima iterao so encontrados os i-itemsets frequentes. Alm disso, como j foi indicado anteriormente, a gerao dos k-itemsets candidatos depende do conjunto dos (k-1)-itemsets frequentes, ou seja, para obter padres em uma dada iterao, necessrio consultar conhecimentos prvios (prior knowledge), fato este que deu origem ao nome do algoritmo (HAN; KAMBER, 2006). A eficincia desse algoritmo est ligada com a possibilidade de reduo do espao de busca a cada iterao. Para isso, o algoritmo leva em considerao a propriedade APRIORI, a qual diz que se um itemset I frequente, ento todos os subconjuntos no-vazios de I so tambm frequentes (AGRAWAL; SRIKANT, 1994). Em outras palavras, se I um itemset infrequente, qualquer outro itemset J que contenha I tambm infrequente, pois a frequncia de J no ser maior que a frequncia de I. Assim, o algoritmo consegue reduzir uma quantidade considervel

111

de itemsets candidatos gerados, eliminando aqueles que possuem subconjuntos nofrequentes. O funcionamento bsico do APRIORI pode ser descrito conforme o pseudocdigo a seguir:

Algoritmo: Apriori Entradas: Base de dados D; minsup Sada: Itemsets frequentes L 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) L1 := 1-itemsets_frequentes( D, minsup ); para ( k = 2; Lk-1 ; k++ ) { Ck = apriori_gen( Lk-1, minsup ); para cada tupla (transao) t em D { Ct = subconjunto(Ck,t) para cada candidato c em Ct c.contador++; } Lk = {c Ct | c.contador minsup } } retorne L = Uk Lk;
Figura B.2 Algoritmo APRIORI: principal (AGRAWAL; SRIKANT, 1994)

Para exemplificar o funcionamento do algoritmo, considere a base de dados da Tabela B.1 e minsup=2.
Tabela B.1 Exemplo de base de dados

TID 1 2 3 4 5

ITENS leite, po, caf po, manteiga, frutas carne, manteiga, po leite, frutas leite, po

Em primeiro lugar, o algoritmo examina a base de dados com o intuito de encontrar o conjunto de 1-itemsets que satisfazem o valor de suporte mnimo (minsup), originando o conjunto L1 (linha 1). A Tabela B.2 apresenta os valores de suporte dos 1-itemsets da base de dados, obtidos por meio da contagem das ocorrncias de cada item na base de dados. Por sua vez, o conjunto L1, representado na Tabela B.3, formado pelos 1-itemsets que apresentam o valor de suporte igual ou maior ao valor de minsup.

112

Tabela B.2 Suporte dos 1-itemsets

Tabela B.3 Conjunto L1

ITEMSET po leite frutas manteiga caf carne

SUPORTE 4 3 2 2 1 1

ITEMSET po leite frutas manteiga

SUPORTE 4 3 2 2

A seguir, o algoritmo entra no lao principal (linhas 2 a 10) que realizar alternadamente as tarefas de gerao do conjunto de candidatos Ck e de obteno do conjunto de itemsets frequentes Lk, sendo k >= 2, at que o processo termine na isima iterao quando Li for um conjunto vazio. A funo apriori_gen (linha 3) responsvel pela etapa de gerao de Ck, utilizando para isso o conjunto de itemsets frequentes Lk-1. A funo detalhada no pseudocdigo abaixo:

Funo: apriori_gen( Lk-1, minsup ) Entradas: conjunto Lk-1: (k-1)-itemsets frequentes; suporte mnimo minsup Sada: conjunto Ck de k-itemsets candidatos 12) para cada itemset l1 Lk-1 13) para cada itemset l2 Lk-1 14) se( l1[1]=l2[1] l1[2]=l2[2] ... l1[k-2]=l2[k-2] l1[k-1]<l2[k-1] ) { 15) c = l 1 l2 ; 16) se tem_subconjunto_infrequente( c, Lk-1 ) 17) exclua c; 18) seno adicione c ao Ck; 19) } 20) retorne Ck;
Figura B.3 APRIORI: funo apriori_gen (AGRAWAL; SRIKANT, 1994)

Esta funo obtm os k-itemsets candidatos por meio da operao de juno, realizada dois a dois entre todos os (k-1)-itemsets do conjunto Lk-1. Assumindo que os itens de um itemset esto devidamente ordenados e que a notao li[1] indica o primeiro item de li, li[2] indica o segundo e, assim por diante, a juno pode ser definida como: Lk-1 Lk-1 = { l1[1]l1[2]...l1[k-1]l2[k-1], tal que l1, l2 Lk-1 e l1[1]=l2[1] (A.1)

l1[2]=l2[2] ... l1[k-2]=l2[k-2] l1[k-1]<l2[k-1] }

113

Para cada k-itemset obtido com a juno de dois (k-1)-itemset , ento, verificada a propriedade APRIORI, observando se o mesmo contm um subconjunto no-vazio infrequente. Dessa forma, apenas itemsets cujos subconjuntos so frequentes pertencero ao conjunto de candidatos Ck. Reduzindo-se o tamanho de Ck, o algoritmo tenta diminuir a carga computacional das iteraes seguintes. Uma vez tendo o conjunto de candidatos Ck, o lao principal do algoritmo APRIORI executa a fase de contagem dos itemsets (linhas 4 a 8). A ideia analisar as transaes uma a uma, de modo a incrementar o contador de frequncia dos kitemsets que esto contidos nela. A seguir, os valores da ocorrncia de cada itemset so comparados com o suporte mnimo esperado. Os itemsets que atenderem esse limitante so considerados frequentes e constituiro o conjunto Lk. Considerando novamente o exemplo, o conjunto C2 obtido, segundo a funo apriori_gen, por meio da combinao dos elementos pertencentes ao conjunto L1. A Tabela B.4 apresenta os 2-itemsets originados dessa combinao, bem como os seus respectivos valores de suporte. Por sua vez, a Tabela B.5 apresenta o conjunto de 2-itemsets frequentes L2, resultante da comparao dos valores de suporte dos elementos de C2 com o limitante minsup, preservando somente aqueles que atendem ao valor especificado.
Tabela B.4 Conjunto C2 Tabela B.5 Conjunto L2

ITEMSET po, leite po, frutas po, manteiga leite, frutas leite, manteiga frutas, manteiga

SUPORTE 2 1 2 1 0 1

ITEMSET po, leite po, manteiga

SUPORTE 2 2

Assim, o algoritmo incrementa o valor de k e inicia uma nova iterao, utilizando o conjunto de itemsets frequentes Lk-1 para a gerao dos novos k-itemsets candidatos e assim por diante. Continuando o exemplo, pode-se obter o conjunto C3 pela combinao dos elementos do conjunto L2. Nesse caso, C3 formado por um nico 3-itemset, cujo valor de suporte 0. Como no h elementos em C3 que apresentem valor de suporte igual ou superior ao minsup, o conjunto L3 ser vazio. Assim, o algoritmo chega

114

sua condio de parada, retornando, no caso do exemplo, os conjuntos de itemsets frequentes L1 e L2.
Tabela B.6 Conjunto C3

ITEMSET po, leite, manteiga

SUPORTE 0

B.2 Algoritmo FP-GROWTH


O algoritmo FP-GROWTH foi apresentado por Han, Pei e Yin (2000) como uma nova abordagem para extrao de regras de associao, tentando reduzir as limitaes impostas pelo mtodo de gerar-e-testar do algoritmo APRIORI. Isso porque, medida que se reduz o suporte mnimo, o nmero de candidatos cresce substancialmente, tornando a soluo impraticvel. Alm disso, nos casos em que os itemsets frequentes so longos, o APRIORI necessita repetidamente de acessos a disco, prejudicando o desempenho do algoritmo (HAN; KAMBER, 2006). A proposta do algoritmo FP-GROWTH justamente extrair os itemsets frequentes de um modo mais eficiente, evitando a necessidade da etapa de gerao de candidatos. A soluo apresentada pelo algoritmo a utilizao de uma estrutura em memria denominada FP-tree, que representa comprimidamente a base de dados (HAN; PEI; YIN, 2000). Com essa estrutura, possvel obter os itemsets frequentes recursivamente utilizando-se de estratgias de busca de padres em rvores. Devido utilizao da FP-tree, que se encontra em memria, o algoritmo FP-GROWTH reduz o nmero de varreduras na base de dados, sendo necessrios apenas dois acessos a disco para a construo da rvore. A FP-tree composta de ns que armazenam informaes referentes aos 1itemsets frequentes da base de dados. Dentre as informaes, est a frequncia de ocorrncia de cada itemset, a qual ser necessria no processo de extrao de padres frequentes. O algoritmo de construo da rvore exibido a seguir:

115

Algoritmo: FP-Growth_ConstroiArvore Entradas: Base de dados D; minsup Sada: FP-tree T 1) 2) 3) 4) 5) 6) 7) 8) F := 1-itemsets_frequentes( D, minsup ); L = ordena_decrescente( F ); criaNoh( T , null ); para cada transao Trans em D { [p|P] = ordena( Trans, L ); insere_tree( [p|P], T ); } retorne T;
Figura B.4 Algoritmo FP-GROWTH: construo da FP-tree (HAN; PEI; YIN, 2000)

A etapa de construo da FP-tree inicia-se com uma varredura completa na base de dados, com o intuito de obter todos os 1-itemsets frequentes, de modo anlogo ao algoritmo APRIORI (linha 1). Ento, o conjunto de 1-itemsets frequentes ordenado de modo decrescente pelo respectivo valor de suporte, originando uma lista ordenada L (linha 2). Alm de informaes de cada itemset, a lista L contm um campo denominado node-link para cada itemset, indicando qual o primeiro n deste itemset inserido na rvore. Por esse motivo, tal lista tambm conhecida como tabela header. Esse campo permite manter uma ligao entre os ns de mesmo nome-item, o que ser til no processo de busca de padres frequentes. Uma vez tendo o conjunto de 1-itemsets ordenados, inicia-se o processo propriamente dito de incluso dos ns na rvore com a adio do n raiz (linha 3). Cada n na FP-tree possui basicamente o nome do item correspondente (nome-item), o contador de suporte e um ponteiro (node-link) utilizado para a ligao dos ns de mesmo nome-item. A Figura B.5 apresenta um exemplo da organizao de uma FPtree, juntamente com a lista L e as conexes dos node-links.

116

Figura B.5 Exemplo de uma FP-tree (HAN; KAMBER, 2006)

A seguir, realizada a segunda varredura na base de dados. Nesse momento, cada transao processada em duas etapas (linhas 4 a 7). A primeira etapa consiste em ordenar seus itens seguindo a ordenao da lista L. Por sua vez, a segunda etapa utiliza a funo insere_tree, que apresentada detalhadamente na figura abaixo, para a incluso dos itens da transao na FP-tree.

Funo: insere_tree( [p|P], N ) Entradas: Conjunto ordenado [p|P], N N Sada: 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) se ( N tem um filho F tal que F.nome-item = p.nome-item ) F.contador++; else { Novo = criaNoh( T, p.nome-item ); Novo.contador = 1; Novo.pai = N; atualizaNodeLink( Novo ); } se ( P no-vazio ) insere_tree( P, Novo );
Figura B.6 Algoritmo FP-GROWTH: funo insere_tree (HAN; PEI; YIN, 2000)

117

A funo insere_tree apresenta um funcionamento recursivo, inserindo ou atualizando um n na FP-tree a cada chamada recursiva. Ela tem como parmetros um conjunto ordenado, denotado por [p|P], e o n pai N, no qual ser inserido um novo n, caso necessrio. Quanto ao conjunto [p|P], p o primeiro elemento da lista e P o conjunto de elementos remanescentes. A chamada desta funo disparada pelo algoritmo de construo da FP-tree (linha 6), passando como parmetro o conjunto de itens da transao e o n raiz da rvore correspondendo a, respectivamente, [p|P] e N. Inicialmente, a funo insere_tree verifica se p o primeiro item da lista um dos filhos do n raiz. Se for, basta incrementar o contador de suporte do n (linhas 1 e 2). Caso contrrio, necessria a adio deste n na FP-tree como filho do n N. Alm disso, feita a atualizao dos node-links contemplando o novo n (linhas 3 a 8). Da, o processo recursivo repetido agora envolvendo apenas o conjunto de itens remanescentes e tendo o n adicionado ou atualizado como n pai da nova recurso (linhas 9 e 10). Quando no houver itens remanescentes, ou seja, o conjunto P for vazio, a recurso pra indicando que todos os itens da transao em questo foram processados e devidamente inseridos na rvore. Ao realizar o processamento de todas as transaes, poder ser iniciada a etapa de minerao da FP-tree, que objetiva a descoberta de padres frequentes. De um modo geral, o processo consiste em gerar as bases de padres condicionais (conditional pattern base) para cada 1-itemset presente na tabela header. Essas bases so utilizadas para a construo das FP-tree condicionais, as quais relacionam os caminhos frequentes que se conectam aos ns correspondentes ao 1-itemset em questo. Uma vez obtidas, tais FP-tree condicionais so utilizadas para encontrar os padres frequentes que apresentam o 1-itemset como sufixo. Esse processo pode ser visto com mais detalhes no algoritmo exibido na figura abaixo:

118

Algoritmo: FP-Growth( Tree, ) Entradas: FPTree Tree, padro Sada: Itemsets frequentes L 1) se ( Tree contm um nico caminho P ) 2) para cada combinao de ns em P 3) gere padro U com suporte = suporte mnimo em 4) seno 5) para cada ai da tabela header de Tree 6) gere padro = ai U com suporte = ai.suporte 7) construa as bases de padres condicionais de 8) construa a FP-tree condicional Tree 9) se ( Tree ) 10) FP-Growth( Tree, );
Figura B.7 Algoritmo FP-GROWTH: extrao de padres da FP-tree (HAN; PEI; YIN, 2000)

A rotina de minerao de dados inicia-se com uma chamada na forma FPGROWTH(T,null), sendo T a FP-tree em que se deseja extrair padres. Inicialmente, o algoritmo consulta a tabela header da FP-tree, escolhendo o ltimo elemento da lista, ou seja, aquele que apresenta o menor valor de suporte. Segundo Han e Kamber (2006), a razo disso que tal escolha simplifica as operaes posteriores, uma vez que o elemento no precisar ser considerado como parte do sufixo, pois todos os seus itemsets relacionados j tero sido encontrados. Para exemplificar o funcionamento do algoritmo de extrao de padres, tome como exemplo a FP-tree da Figura B.5 e um suporte mnimo minsup = 2. Como a rvore apresenta mais de um caminho, a condio da linha 1 falsa, de modo que o algoritmo executa o bloco seno (linhas 5 a 10). O primeiro elemento da tabela header a ser processado o I5. Nesse caso, o padro seria o prprio I5, pois foi inicializado com valor nulo. Ento, o prximo passo a construo das bases condicionais de , que so os caminhos existentes na FP-tree cujo sufixo o prprio . Se = I5, ento, pode-se identificar pela FP-tree que os caminhos e seus respectivos valores de suporte que levam aos ns I5 so {(I2 I1 I5: 1)} e {(I2 I1 I3 I5: 1)}. Considerando que I5 o sufixo desses caminhos, obtm-se a base condicional {(I2 I1: 1), (I2 I1 I3: 1)}. No prximo passo, a base condicional utilizada para a construo da FPtree condicional Tree. Esse processo semelhante construo da FP-tree apresentada anteriormente. Assim, toma-se o primeiro caminho da base condicional (I2 I1: 1), inserindo-o ordenadamente na Tree. A seguir, repete-se a insero para o

119

caminho (I2 I1 I3: 1), resultando na FP-tree condicional da Figura B.8. Nota-se que o n I3 no se encontra na FP-tree condicional, visto que seu valor de suporte menor que o minsup.

Figura B.8 FP-tree condicional para o n I5 (HAN; KAMBER, 2006)

Aps a construo da FP-tree condicional Tree no-vazia, o algoritmo aplica uma chamada recursiva para processar a Tree recm-criada. Agora, a condio da linha 1 verdadeira, pois Tree apresenta um nico caminho P conectando todos os seus ns. Este o caso base da recurso, em que finalmente so retornados os padres frequentes relacionados a I5, que consistem em todas as combinaes possveis envolvendo os ns de P acrescidos do sufixo . Assim, os padres cujo sufixo = I5 so I2 I5: 2, I1 I5: 2 e I2 I1 I5: 2. A seguir, o algoritmo inicia o processamento envolvendo o prximo n, I4, da tabela header. Primeiramente, encontrada a sua base condicional, {(I2 I1: 1), (I2: 1) }, formada pelos caminhos que apresentam I4 como sufixo. A FP-tree condicional gerada com essa base consiste de apenas um n {I2: 2}, j que I1 no satisfaz o suporte mnimo. Assim, o nico padro obtido I2 I4: 2. O mesmo procedimento aplicado sobre o prximo n da tabela header, I3. Pela FP-tree consegue-se obter a base condicional de I3, que composta de trs caminhos {(I2 I1: 2), (I2: 2), (I1: 2)}. Da, a FP-tree condicional Tree, com = I3, possui dois ramos, conforme apresenta a figura abaixo.

120

Figura B.9 FP-tree condicional para o n I3 (HAN; KAMBER, 2006)

Diferentemente das anteriores, essa FP-tree apresenta mais de um caminho, de modo que a chamada recursiva da funo FP-Growth no cair no caso base, necessitando ainda do processamento desta rvore condicional para a gerao dos padres frequentes. Inicialmente, selecionado o ltimo elemento da tabela header desta FP-tree condicional, ou seja, ai = I1. Como o parmetro = I3, o valor de torna-se I1 I3. Um primeiro padro frequente gerado o propriamente dito, de acordo com a linha 6 do algoritmo. O prximo padro encontrado gerando a base e a FP-tree condicional de , as quais so compostas de um nico n I2, que origina o padro frequente I2 I1 I3: 2. Selecionando o prximo elemento, I2, da tabela header da Tree, o valor de torna-se I2 I3. Nota-se que no h nenhum caminho que tenha como sufixo esse padro, de modo que a base e a FP-tree condicionais so vazias e no geram nenhum padro frequente. Novamente, o prprio um padro frequente, de modo que a minerao do item I3 da FP-tree resulta nos seguintes padres: I2 I3: 4, I2 I1 I3: 2, I1 I3: 2. Analisando agora o item I1 na FP-tree, obtemos a base e a FP-tree condicional compostas de um nico n (I2: 4), que gera o padro I2 I1: 4. Por sua vez, o primeiro elemento da tabela header da FP-tree, I2, apresenta base condicional vazia, de modo que no h possibilidade de encontrar nenhum padro cujo sufixo seja I2.

121

Apndice C

Resultados experimentais do estudo comparativo

Esta seo visa apresentar os resultados brutos obtidos por meio dos diversos testes efetuados com o algoritmo MR-RADIX. Tais valores de mtricas foram utilizados na confeco dos grficos e tabelas do estudo comparativo previamente apresentado no Captulo 4 - Testes e Resultados.

C.1 Mtricas dos testes envolvendo MR-RADIX e PATRICIAMINE


Tabela C.7 Tempo de execuo e memria utilizada - Base HC MR-Radix Patricia-Mine Suporte Tempo Memria Tempo Memria (%) (ms) (bytes) (ms) (bytes) 0,5 1047 1648200 6048 1804280 0,5 969 1501880 6047 1795576 0,5 969 1575288 6047 1798656 1 921 1396272 5875 1508736 1 922 1472008 5859 1513328 1 953 1561192 5859 1463288 10 797 1111208 5281 968312 10 828 1222632 5172 1006032 10 781 1181696 5156 1001232 20 765 1181352 5109 948856 20 766 1183520 5109 926664 20 766 1159664 5125 964472 30 766 1165352 5110 960520 30 765 1162144 5093 952408 30 843 1102008 5110 961880

122

Tabela C.8 Tempo de execuo e memria utilizada - Base SIVAT MR-Radix Patricia-Mine Suporte Tempo Memria Tempo Memria (%) (ms) (bytes) (ms) (bytes) 1 5828 7081936 12782 9121960 1 5719 7203032 12782 9214984 1 5703 7153760 12655 9095920 5 4891 4080384 11157 3957808 5 4859 4205904 11124 3908312 5 4937 4072296 11280 4025296 10 4610 3060488 10704 3269696 10 4687 3097720 10781 3262080 10 4641 3027824 10672 3397320 20 4422 2191488 10235 2409880 20 4375 2356424 10516 2377080 20 4437 2255248 10797 2284680 30 4266 1459720 10641 1878576 30 4234 1505840 10343 1825784 30 4313 1400640 10313 1808992

C.2 Mtricas do teste envolvendo os algoritmos multirrelacionais


Tabela C.9 Tempo de execuo e memria utilizada - multirrelacionais - Base HC MR-Radix AprioriMR GFP-Growth Suporte Tempo Memria Tempo Memria Tempo Memria (%) (ms) (bytes) (ms) (bytes) (ms) (bytes) 0,5 1031 1649816 103578 63273728 0,5 969 1616600 109562 63300488 0,5 984 1513240 110016 63276856 1 922 1482848 78500 37237200 1 922 1365352 78031 37315392 1 921 1535808 78360 37317512 10 781 1125688 44859 12130960 10 812 1092704 44172 11929824 10 812 1038272 44594 11796920 20 812 1150104 42375 11139392 20 782 1127368 42312 11067752 20 766 1191816 42516 11115560 30 766 1168376 41547 10793504 30 781 1137560 41750 11103768 30 781 1172944 41531 11023056 -

123

Tabela C.10 Tempo de execuo e memria utilizada - multirrelacionais - Base SIVAT MR-Radix AprioriMR GFP-Growth Suporte Tempo Memria Tempo Memria Tempo Memria (%) (ms) (bytes) (ms) (bytes) (ms) (bytes) 1 5328 2979832 9094 6899168 1 5406 2967784 7218 6846712 1 5359 2839800 7765 7125984 5 4875 2953464 8234 3717696 5 4875 3054464 7687 3762424 5 4859 2843088 7156 4085880 10 4703 2886136 308734 37971888 7468 2690000 10 4750 2884664 308734 37971888 7651 3138408 10 4734 3027832 308734 37971888 7579 2832816 20 4578 2813736 119687 20543584 7423 2296008 20 4610 2874024 119687 20543584 7578 2506176 20 4594 2741544 119687 20543584 7345 3338344 30 4390 1894760 57359 15915424 6438 2657232 30 4421 1873400 57359 15915424 7391 2722398 30 4406 1835360 57359 15915424 8110 2655368 Tabela C.11 Tempo de execuo e memria utilizada - multirrelacionais - Base CENSUS MR-Radix MR-Radix-Partition AprioriMR GFP-Growth Tempo Memria Tempo Memria Tempo Memria Tempo Memria (ms) (bytes) (ms) (bytes) (ms) (bytes) (ms) (bytes) 514578 39993032 273078 39980680 76125 37747384 136860 39996336 68875 30741216 67938 32905376 64813 20617184 63375 20423616 60578 8290312 60093 8156448 58156 3720568 58187 3609240 56672 2254320 56422 2165264 30094 31009000 54219 1548624 54828 1486936 878500 31141240 29625 21436896

Sup (%) 10 20 30 40 50 60 70 80 90

124

Apndice D

Ferramenta de apoio ao KDD

A fim de dar suporte ao processo de descoberta de conhecimento em base de dados, faz-se necessrio o uso de uma ferramenta que seja capaz de proporcionar funcionalidades que complementem a etapa de minerao de dados. Para isso, utilizou-se a Ferramenta de Data Mining Multirrelacional, ou simplesmente fDMMR (OYAMA, 2006), a qual implementa algumas etapas do KDD, tais como as fases de Seleo de Dados e de Visualizao dos Resultados, bem como se apresenta como um relevante recurso computacional para o suporte aos algoritmos envolvidos, principalmente quando da efetivao dos testes e estudo comparativo. No presente trabalho, foram efetuadas melhorias na fDMMR original, resultando em uma nova verso da ferramenta. Dentre os principais avanos obtidos, destacam-se: Portabilidade: adequao do cdigo-fonte para uso da ferramenta em diferentes plataformas; Interface grfica: alm de haver a melhoria grfica da ferramenta como um todo, deu-se especial ateno ao mdulo de seleo de atributos, o qual apresenta visualmente todo o esquema da base de dados; Mdulo de medio de desempenho: acrscimo das funcionalidades de coleta e armazenamento de mtricas de desempenho dos algoritmos tais como tempo de execuo, memria utilizada, nmero de ns nas estruturas e tempo de juno.

125

Na Figura D.10, apresentada a interface principal da ferramenta, com destaque para a o mdulo de seleo de atributos, o qual se encontra disposto na rea esquerda da figura. Neste, apresentado visualmente o esquema da base de dados, possibilitando que o usurio da ferramenta veja o conjunto de relaes e atributos, bem como o relacionamento entre as tabelas.

Figura D.10 Interface de seleo de atributos na fDMMR

Aps a seleo dos atributos, pode-se efetuar a tarefa de minerao de dados, utilizando-se a interface apresentada na Figura D.11. Os parmetros dos algoritmos, tais como valores de suporte e confiana, podem ser introduzidos pelo usurio com o uso do mdulo especifico que se encontra direita na figura mencionada.

126

Figura D.11 Interface de minerao de dados na fDMMR

A ferramenta fDMMR, ento, proporciona o suporte bsico aos algoritmos de extrao de regras de associao, uma vez que implementa funcionalidades auxiliares minerao de dados, tais como a manipulao de dados relacionais, a seleo visual de atributos, a visualizao de resultados e as medies de desempenho.

Anda mungkin juga menyukai