Sie sind auf Seite 1von 7

Uma soluo software livre para minerao de dados em grades computacionais

Paulo Roberto Baptista Valentim, Andrey Serra Pimenta David Moises Barreto dos Santos, Manoel Carvalho Marques Neto Faculdade Ruy Barbosa Rua Theodomiro Batista, 422 - Rio Vermelho CEP 41940-320 Salvador BA
{andreysp,paulorbv,davidmbs,manoel}@frb.br

Abstract. Data mining is a technology that permits to extract useful information from large amount of data. However, it mines frequently a database to require a high computational cost. To address this problem, this work shows the application of free software to build a tool that executes mining algorithms of way parallel. We use as environment to such execution, a grid computing for aggregating numberless resources in a WAN. Resumo. Minerao de dados uma tecnologia que permite extrair informaes teis de grandes quantidades de dados. Entretanto, minerar um banco de dados freqentemente requer um alto poder computacional. Para resolver este problema, este trabalho demonstra a aplicao de software livre para construir uma ferramenta que executa de forma paralela algoritmos de minerao. Como ambiente para tal execuo, usamos uma grade computacional por agregar inmeros recursos dentro de um WAN. Palavras-chave: minerao de dados, grades computacionais, paralelizao, software livre

1. Introduo
A cada dia, as bases de dados das organizaes vm assumindo maiores propores, e extrair informao til a partir desta grande quantidade de dados passou a ser uma tarefa fundamental. Infelizmente, a extrao realizada apenas por consultas rotineiras dos usurios no mais satisfaz a esta necessidade e so precisas outras formas de extrao para que informaes sejam descobertas a partir desta massa de dados principalmente aquelas ocultas, imperceptveis intuio ou aos olhos humanos. Neste cenrio, a minerao de dados surgiu como uma soluo extremamente til s organizaes que querem melhor explorar a informao que possuem em seus repositrios de dados [Mendona 2002]. Segundo [Fayyad et al 1996], minerao de dados o processo de descoberta de padres vlidos, novos, potencialmente teis e compreensveis embutidos nos dados. Um claro exemplo de minerao de dados o caso de uma loja que a partir de sua base de dados com informaes sobre seus clientes e suas compras, podem traar perfis de

grupos de clientes, e at mesmo de cada cliente individualmente, classificando-os como desejado, por exemplo, como adimplente ou inadimplente. Quando lidamos com bases de dados muito grandes, o custo computacional gasto para realizar a minerao de dados elevado. Uma possvel soluo para tal problema a paralelizar algoritmos de minerao uma vez que, pelo menos, muitos deles podem ser compostos de tarefas independentes; conseqentemente, as tarefas podem ser executadas paralelamente. Sendo assim, a minerao de dados de forma paralela pode reduzir bastante o custo computacional, caso seja executada utilizando diversas mquinas, que estaro compartilhando seus processadores e memria. Entretanto, para realizar tal atividade preciso ter um ambiente adequado onde haja mquinas conectadas por uma rede para que as tarefas sejam executadas. Dentre os ambientes existentes, destacamos uma grade computacional, que uma plataforma para execuo de aplicaes paralelas que possui uma alta disperso geogrfica, heterognea no sentido de hardware e software, compartilhada, sem controle central e com mltiplos domnios administrativos [Cirne et al 2002]. Grades computacionais surgiram na dcada de 90 para tornar possvel a execuo paralela de aplicaes em recursos geograficamente distribudos. A idia de grades computacionais bastante simples: executar aplicaes de forma paralela em recursos abundantes sem a necessidade de se investir em um supercomputador, muitas vezes invivel. Outro ponto importante que existem poucas ferramentas disponveis no mercado que fazem minerao de dados em paralelo, e muitas destas poucas se focam em apenas um algoritmo. Isto no suficiente para o usurio uma vez que os resultados gerados por dois algoritmos distintos so muito instveis no sentido de que um melhor em alguns casos e o outro melhor em outros casos [Santos 2005]. Em outras palavras, freqentemente o usurio precisa executar mais de um algoritmo para encontrar o resultado final desejvel. A proposta deste artigo confeccionar uma ferramenta de cdigo aberto que viabilize a execuo de minerao de dados de forma paralela atravs de um ambiente em grade computacional. Uma vez que j existem algumas ferramentas de minerao de cdigo aberto no mercado, nosso primeiro passo foi escolher uma para reusarmos. O mesmo fizemos quanto a tecnologia de grades computacionais. Detalhes de tais escolhas so o tema da Seo 2. Em seguida, nos detivemos em nosso foco: a paralelizao dos algoritmos de minerao. Para isto, integramos as duas ferramentas escolhidas, o que descrevemos na Seo 3. Os trabalhos correlatos ao nosso so discutidos na Seo 4. Por fim, fechamos com as concluses do trabalho e traamos perspectivas.

2. Escolha das Ferramentas de Software Livre para Minerao de Dados e Grades Computacionais
Atualmente, j existem ferramentas de minerao e grades computacionais portadas para o ambiente de software livre. Infelizmente, muitas delas no tm as caractersticas que julgamos fundamentais para o nosso trabalho.

Das ferramentas de minerao, esperamos, pelo menos, que sejam contempladas muitos algoritmos de minerao. Da tecnologia de grades computacionais, buscamos aquela que fosse aberta, isto , que permite que qualquer usurio se junte a ela sem precisar fazer negociaes off-line. A seguir, descrevemos com mais detalhes nossas escolhas. Por restries de espao, nos abstivemos de fazer comparaes diretas com outras ferramentas. 2.1. Minerao de Dados: WEKA O WEKA uma ferramenta para minerao de dados, de interface amigvel, que agrega um conjunto de algoritmos de classificao, regras de associao, regresso, prprocessamento e clustering, todos implementados em JAVA [Witten & Frank 2005; Basu & Melville 2005]. Alm disso, a aplicao WEKA pode acessar dados oriundos de bancos de dados (via JDBC) ou atravs da chamada de arquivos de dados prprios. Todas estas caractersticas fazem desta ferramenta, desenvolvida por pesquisadores da Universidade de Waikato na Nova Zelndia, uma das ferramentas mais populares entre a comunidade de minerao de dados. Por ter sido desenvolvido usando a abordagem de framework, WEKA facilmente extensvel, permitindo, portanto, que novos algoritmos ou funcionalidades sejam adicionadas de maneira relativamente confortvel. O processo de minerao de dados composto de algumas fases que sero descritas a seguir: 1. Preparao dos dados: fase em que h necessidade de formatao dos dados, pois em uma amostra retirada de um repositrio h dados sujos e inexistentes, no caso de um determinado campo que no seja obrigatrio e no tenha sido preenchido, por exemplo; 2. Fase de fragmentao: a amostra ser dividida em subconjuntos que serviro de conjuntos de teste e treinamento; 3. Minerao de dados: nesta fase ocorre a aplicao do algoritmo de induo de conhecimento gerando um modelo de conhecimento que diretamente relacionado com o algoritmo escolhido. Um exemplo o conhecimento na forma de regras de classificao, caso for usado o algoritmo Prism; 4. Avaliao do conhecimento inferido: a qualidade do conhecimento extrado deve ser analisada. A realizao de cada etapa no isolada, ou seja, uma est relacionada com a outra. Por exemplo, a avaliao deve ser feita atravs de tcnicas de fragmentao as quais dividem os dados a minerar em dois sub-conjuntos: treinamento (fragmento utilizado para a induo do conhecimento) e teste (fragmento utilizado para avaliar o conhecimento induzido). Como exemplo de tcnica de fragmentao pode-se citar o Cross Validation ou Holdout [Han & Micheline 2001]. 2.2. Grades Computacionais: OurGrid OurGrid uma grade computacional peer-to-peer (ponto-a-ponto) feito para ser usado por empresas ou laboratrios de pequeno, mdio e at de grande porte, onde cada

empresa/laboratrio equivale a um peer [CIRNE et al 2003]. Ao contrrio de outras solues existentes, como Globus que complexo de instalar e requer uma negociao offline para que o usurio faa parte da grade, o OurGrid bastante simples de instalar, se configura automaticamente, alm de no haver necessidade de nenhuma negociao ou interveno humana. Possui seu foco em aplicaes Bag-of-Tasks, ou seja, aplicaes cujas tarefas so independentes e no h necessidade de comunicao entre elas para que completem sua computao. Podemos citar como exemplo deste tipo de aplicao, a minerao de dados, que justamente o foco de nosso trabalho. O OurGrid possui trs principais componentes necessrios para sua compreenso: MyGrid, Peer e User Agent. A arquitetura pode ser visualizada na Figura 1. O MyGrid a interface para o uso da grade computacional, que prov uma srie de abstraes que permite o uso conveniente da grade. Uma mquina que possui o MyGrid, que tambm pode ser chamada de home machine (hum), responsvel por escalonar as tarefas para executar nas maquinas da grade, denominadas grids machines (gums), que onde o processamento das tarefas ocorre e que tambm executa o componente User Agent que ser descrito mais frente. A grade possui acesso descentralizado que permite mltiplos usurios, cada um usando uma instancia do MyGrid. O Peer um componente que executa em uma mquina que como funo organizar e prover gums para que tarefas sejam executadas no prprio domnio administrativo; porm, se as maquinas do prprio domnio no forem suficientes, as de outros domnios sero usadas. Temos duas vises distintas em relao aos peers, que so as seguintes: (i) a viso do usurio: um peer um provedor de gums dinmico para execuo das tarefas, e (ii) a viso do administrador: um peer determina como e quais mquinas sero usadas para executar alguma tarefa. O User Agent o componente que executa em todas as gums e prov processamento para a hum, alm de fornecer suporte bsico para manipulao de falhas. Juntamente com o componente peer, permite o uso de computadores em redes privadas, mesmo que estejam em um domnio administrativo diferente ou protegido por um firewall.

Figura 1 - Arquitetura do OurGrid Fonte: Adaptao http://www.hp.com/hpinfo/newsroom/feature_stories/2005/05grid.html

3. Integrao
Nesta seo, descrevemos como se d a integrao da ferramenta Weka juntamente com o OurGrid. O usurio poder escolher se quer executar a minerao na grade ou no apenas clicando em checkbox na interface do Weka. importante salientar que consideramos que o ambiente OurGrid j est configurado, pronto para o usurio utilizar. Inicialmente, nosso trabalho est focado em paralelizar os algoritmos de fragmentao. Para exemplificar, mostraremos como estamos fazendo com o Cross Validation, que uma das tcnicas de fragmentao aplicadas no processo de minerao de dados. Com a paralelizao desta tcnica, j ser possvel reduzir o custo computacional de muitos algoritmos de minerao j que muitos deles, especialmente os de classificao, esto atrelados s tcnicas de fragmentao. O Cross Validation divide o conjunto inicial de dados a minerar em k subconjuntos. Destes k subconjuntos, um retido para servir como dados de teste (conjunto de teste) e o restante dos k-1 subconjuntos so usados como dados de treinamento (conjunto de treinamento). Este processo repetido k vezes, sendo que cada subconjunto ser usado pelo menos uma vez como conjunto de teste. Com os k resultados calculada uma mdia da taxa de acerto, denominada acurcia, para se obter uma estimativa final da qualidade do conhecimento induzido. O pseudocdigo desta tcnica est descrito na Figura 2. Divide os dados em k grupos Faa i=1 at k Utilize todos os grupos menos o grupo i no treinamento Utilize o grupo i para teste Armazene o resultado do teste Fim Faa a mdia dos resultados obtidos nos testes
Figura 2. Algoritmo do Cross Validation

A integrao se d no momento em que o algoritmo Cross Validation divide em k grupos o conjunto inicial, e para cada interao do for, ser enviado o conjunto de teste da interao i juntamente com os conjuntos de treinamento que executaro em uma mquina do OurGrid que esteja disponvel. Sendo assim, as tarefas devero ser executadas em k mquinas diferentes, cada uma tendo um par de conjuntos de treinamento-teste diferente das outras. Como algoritmo para induo de conhecimento, poder ser usado qualquer um dos muitos existentes no Weka. Ao final da execuo de cada tarefa, as mquinas enviam os resultados para a home machine que submeteu o job. Esta pega todos os resultados e faz uma mdia obtendo uma nica acurcia e exibindo os resultados atravs da interface Weka.

O mesmo feito para o algoritmo de fragmentao Holdout. Por restries de espao, nos abstivemos de entrar em detalhes.

4. Trabalhos Relacionados
Como trabalhos correlatos, destacamos dois, Weka Parallel [Celis & Musicant 2003] e Grid Weka [Khoussainov et al 2004], que tm uma abordagem similar nossa. O primeiro paraleliza apenas o algoritmo de fragmentao Cross-Validation, fazendo com que os diferentes pares de conjuntos treinamento-teste sejam executados em diversas mquinas. Para tanto, exigido do usurio que ele instale o software nas mquinas que se deseja executar. Como uma desvantagem desta abordagem, destacamos que no dado um bom suporte s falhas que eventualmente acontecem na rede. Pensando justamente neste problema, foi desenvolvido um software que uma evoluo do Weka Parallel: o Grid Weka. Apesar de este trabalho dar um melhor tratamento a este problema, algumas limitaes perduram, das quais destacamos duas: o usurio precisa ter acesso s mquinas que deseja executar: usurios comumente precisam de mais mquinas do que as que possuem e, para conseguir acesso novas mquinas preciso uma negociao off-line com administradores de redes, muitas vezes sem sucesso. Em nosso trabalho, alm das mquinas que usurios tm acesso, existem tambm aquelas que esto disponveis em outros domnios administrativos j que o OurGrid uma grade aberta onde qualquer um pode se juntar. Alm disso, no h preocupao com tratamento de quedas na rede, que tambm funo do OurGrid; apenas um algoritmo paralelizado: comprovado pela literatura que um mesmo algoritmo de classificao pode conseguir resultados distintos quando associados com diferentes algoritmos de fragmentao [Santos 2005]. Adicionalmente, no h uma tcnica que seja melhor para todos os casos. Sendo assim, dar a opo ao usurio de paralelizar apenas uma tcnica pouco. Por isso, nosso trabalho oferece outros algoritmos paralelizados.

5. Consideraes Finais
Elaboramos este trabalho com o intuito de ajudar os usurios de minerao de dados a processar de forma mais rpida seus bancos de dados. muito comum que usurios executem algoritmos diferentes para um mesmo banco de dados ou ainda que executem o mesmo algoritmo vrias vezes, mas com parmetros diferentes. Da a necessidade de uma ferramenta como esta. A concepo da ferramenta foi pensada de forma que facilita a vida do usurio quanto a outros aspectos tambm: Custo financeiro: usando uma grade computacional aberta como o OurGrid, permite que empresas e laboratrios que no tm condies de investir em supercomputadores, tenham acesso a recursos computacionais de alto desempenho de forma barata; Software Livre: mesmo construindo uma ferramenta genrica que atende a vrias realidades, usurios podero alterar a ferramenta a fim de adequ-la de uma forma melhor a sua realidade, se for o caso, ou ainda aperfeio-la;

Flexibilidade: a ferramenta bastante flexvel, dando aos usurios muitas opes, das quais destacamos que eles tm acesso a uma biblioteca de algoritmos de minerao e podem optar por fazer suas execues na grade ou no. Como trabalhos futuros, pretendemos finalizar a primeira verso da ferramenta e disponibiliz-la para a comunidade atravs do site SourceForge. Tambm faremos teste de desempenho no intuito de avaliar melhor os resultados obtidos. Com isto, poderemos, por exemplo, avaliar se vale a pena ou no enviar uma execuo para a grade computacional possvel que o tempo de overhead faa com que o tempo de execuo total acabe sendo maior do que uma execuo standalone. Estes testes de avaliao ajudaro em outro ponto: at agora s estamos trabalhando com algoritmos de fragmentao, portanto, tambm investigaremos os algoritmos de classificao, por exemplo, para paraleliz-los, caso seja necessrio.

6. Bibliografia:
BASU, Sugato; MELVILLE, Prem. Weka Tutorial. University of Texas at Austin. Disponvel em: < http://www.cs.utexas.edu/users/ml/tutorials/Weka-tut/sld002.htm >. Acesso em: 8 de outubro 2005. CELIS, Sebastian; MUSICANT, David R.. Weka Parallel: Machine Learning in Parallel. Relatrio Tcnico, 2003. CIRNE Walfredo, BRASILEIRO Francisco, SAUV Jacques, ANDRADE Nazareno, MEDEIROS Raissa, PARANHOS Daniel, SANTOS-NETO Elizeu. Grid Computing for Bag of Tasks Apllications. Proceedings of the Third IFIP Conference on ECommerce, E-Business and E-Goverment . Setembro, 2003. CIRNE, Walfredo. Grids Computacionais: Arquiteturas, Tecnologias e Aplicaes. Proceedings of the Third Workshop on High Perfomance Computing Systems. 2005. FAYYAD, U.; PIATETSKY-SHAPIRO G.; Smyth P. Data mining and knowledge discovery in databases: an overview. Comm. of the ACM, vol. 39, n.11, 1996. HAN, J, MICHELINE, K. Data Mining: concepts and techniques. Morgan Kaufmann Publishers, 2001, 550 p. KHOUSSAINOV, R.; ZUO, Xin; KUSHMERICK, Nicholas. "Grid-enabled Weka: A Toolkit for Machine Learning on the Grid". ERCIM News, No. 59, October 2004. MENDONA, Manoel. Minerao de Dados. Relatrio Tcnico, 2002. SANTOS, David Moises B. Seleo de modelos de classificao usando heursticas. Dissertao, Universidade Federal de Campina Grande, 2005. WITTEN, Ian H.; FRANK Eibe. Data Mining: Practical machine learning tools and techniques, 2nd Edition, Morgan Kaufmann, San Francisco, 2005.