• Nenhum resultado encontrado

Uma solução software livre para mineração de dados em grades computacionais

N/A
N/A
Protected

Academic year: 2021

Share "Uma solução software livre para mineração de dados em grades computacionais"

Copied!
7
0
0

Texto

(1)

Uma solução software livre para mineração 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. Mineração de dados é uma tecnologia que permite extrair informações úteis de grandes quantidades de dados. Entretanto, minerar um banco de dados freqüentemente requer um alto poder computacional. Para resolver este problema, este trabalho demonstra a aplicação de software livre para construir uma ferramenta que executa de forma paralela algoritmos de mineração. Como ambiente para tal execução, usamos uma grade computacional por agregar inúmeros recursos dentro de um WAN.

Palavras-chave: mineração de dados, grades computacionais, paralelização, software livre

1. Introdução

A cada dia, as bases de dados das organizações vêm assumindo maiores proporções, e extrair informação útil a partir desta grande quantidade de dados passou a ser uma tarefa fundamental. Infelizmente, a extração realizada apenas por consultas rotineiras dos usuários não mais satisfaz a esta necessidade e são precisas outras formas de extração para que informações sejam descobertas a partir desta massa de dados — principalmente aquelas ocultas, imperceptíveis à intuição ou aos olhos humanos.

Neste cenário, a mineração de dados surgiu como uma solução extremamente útil às organizações que querem melhor explorar a informação que possuem em seus repositórios de dados [Mendonça 2002]. Segundo [Fayyad et al 1996], mineração de dados “é o processo de descoberta de padrões válidos, novos, potencialmente úteis e compreensíveis embutidos nos dados”.

Um claro exemplo de mineração de dados é o caso de uma loja que a partir de sua base de dados com informações sobre seus clientes e suas compras, podem traçar perfis de

(2)

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 mineração de dados é elevado. Uma possível solução para tal problema é a paralelizar algoritmos de mineração uma vez que, pelo menos, muitos deles podem ser compostos de tarefas independentes; conseqüentemente, as tarefas podem ser executadas paralelamente. Sendo assim, a mineração de dados de forma paralela pode reduzir bastante o custo computacional, caso seja executada utilizando diversas máquinas, que estarão compartilhando seus processadores e memória.

Entretanto, para realizar tal atividade é preciso ter um ambiente adequado onde haja máquinas conectadas por uma rede para que as tarefas sejam executadas. Dentre os ambientes existentes, destacamos uma grade computacional, que é uma plataforma para execução de aplicações paralelas que possui uma alta dispersão geográfica, heterogênea no sentido de hardware e software, compartilhada, sem controle central e com múltiplos domínios administrativos [Cirne et al 2002].

Grades computacionais surgiram na década de 90 para tornar possível a execução paralela de aplicações em recursos geograficamente distribuídos. A idéia de grades computacionais é bastante simples: executar aplicações de forma paralela em recursos abundantes sem a necessidade de se investir em um supercomputador, muitas vezes inviável.

Outro ponto importante é que existem poucas ferramentas disponíveis no mercado que fazem mineração de dados em paralelo, e “muitas” destas poucas se focam em apenas um algoritmo. Isto não é suficiente para o usuário uma vez que os resultados gerados por dois algoritmos distintos são muito instáveis no sentido de que um é melhor em alguns casos e o outro é melhor em outros casos [Santos 2005]. Em outras palavras, freqüentemente o usuário precisa executar mais de um algoritmo para encontrar o resultado final desejável.

A proposta deste artigo é confeccionar uma ferramenta de código aberto que viabilize a execução de mineração de dados de forma paralela através de um ambiente em grade computacional.

Uma vez que já existem algumas ferramentas de mineração de código aberto no mercado, nosso primeiro passo foi escolher uma para reusarmos. O mesmo fizemos quanto a tecnologia de grades computacionais. Detalhes de tais escolhas são o tema da Seção 2. Em seguida, nos detivemos em nosso foco: a paralelização dos algoritmos de mineração. Para isto, integramos as duas ferramentas escolhidas, o que descrevemos na Seção 3. Os trabalhos correlatos ao nosso são discutidos na Seção 4. Por fim, fechamos com as conclusões do trabalho e traçamos perspectivas.

2. Escolha das Ferramentas de Software Livre para Mineração de Dados e

Grades Computacionais

Atualmente, já existem ferramentas de mineração e grades computacionais portadas para o ambiente de software livre. Infelizmente, muitas delas não têm as características que julgamos fundamentais para o nosso trabalho.

(3)

Das ferramentas de mineração, esperamos, pelo menos, que sejam contempladas muitos algoritmos de mineração. Da tecnologia de grades computacionais, buscamos aquela que fosse aberta, isto é, que permite que qualquer usuário se junte a ela sem precisar fazer negociações off-line.

A seguir, descrevemos com mais detalhes nossas escolhas. Por restrições de espaço, nos abstivemos de fazer comparações diretas com outras ferramentas.

2.1. Mineração de Dados: WEKA

O WEKA é uma ferramenta para mineração de dados, de interface amigável, que agrega um conjunto de algoritmos de classificação, regras de associação, regressão, pré-processamento e clustering, todos implementados em JAVA [Witten & Frank 2005; Basu & Melville 2005]. Além disso, a aplicação WEKA pode acessar dados oriundos de bancos de dados (via JDBC) ou através da chamada de arquivos de dados próprios.

Todas estas características fazem desta ferramenta, desenvolvida por pesquisadores da Universidade de Waikato na Nova Zelândia, uma das ferramentas mais populares entre a comunidade de mineração de dados.

Por ter sido desenvolvido usando a abordagem de framework, WEKA é facilmente extensível, permitindo, portanto, que novos algoritmos ou funcionalidades sejam adicionadas de maneira relativamente confortável.

O processo de mineração de dados é composto de algumas fases que serão descritas a seguir:

1. Preparação dos dados: fase em que há necessidade de formatação dos dados, pois em uma amostra retirada de um repositório há dados “sujos” e inexistentes, no caso de um determinado campo que não seja obrigatório e não tenha sido preenchido, por exemplo;

2. Fase de fragmentação: a amostra será dividida em subconjuntos que servirão de conjuntos de teste e treinamento;

3. Mineração de dados: nesta fase ocorre a aplicação do algoritmo de indução de conhecimento gerando um modelo de conhecimento que é diretamente relacionado com o algoritmo escolhido. Um exemplo é o conhecimento na forma de regras de classificação, caso for usado o algoritmo Prism;

4. Avaliação do conhecimento inferido: a qualidade do conhecimento extraído deve ser analisada.

A realização de cada etapa não é isolada, ou seja, uma está relacionada com a outra. Por exemplo, a avaliação deve ser feita através de técnicas de fragmentação as quais dividem os dados a minerar em dois sub-conjuntos: treinamento (fragmento utilizado para a indução do conhecimento) e teste (fragmento utilizado para avaliar o conhecimento induzido). Como exemplo de técnica de fragmentação 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 laboratórios de pequeno, médio e até de grande porte, onde cada

(4)

empresa/laboratório equivale a um peer [CIRNE et al 2003]. Ao contrário de outras soluções existentes, como Globus que é complexo de instalar e requer uma negociação off-line para que o usuário faça parte da grade, o OurGrid é bastante simples de instalar, se configura automaticamente, além de não haver necessidade de nenhuma negociação ou intervenção humana. Possui seu foco em aplicações Bag-of-Tasks, ou seja, aplicações cujas tarefas são independentes e não há necessidade de comunicação entre elas para que completem sua computação. Podemos citar como exemplo deste tipo de aplicação, a mineração de dados, que é justamente o foco de nosso trabalho.

O OurGrid possui três principais componentes necessários para sua compreensão: 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 série de abstrações que permite o uso conveniente da grade. Uma máquina que possui o MyGrid, que também pode ser chamada de home machine (hum), é responsável por escalonar as tarefas para executar nas maquinas da grade, denominadas grids machines (gums), que é onde o processamento das tarefas ocorre e que também executa o componente User Agent que será descrito mais à frente. A grade possui acesso descentralizado que permite múltiplos usuários, cada um usando uma instancia do MyGrid.

O Peer é um componente que executa em uma máquina que como função organizar e prover gums para que tarefas sejam executadas no próprio domínio administrativo; porém, se as maquinas do próprio domínio não forem suficientes, as de outros domínios serão usadas. Temos duas visões distintas em relação aos peers, que são as seguintes: (i) a visão do usuário: um peer é um provedor de gums dinâmico para execução das tarefas, e (ii) a visão do administrador: um peer determina como e quais máquinas serão usadas para executar alguma tarefa.

O User Agent é o componente que executa em todas as gums e provê processamento para a hum, além de fornecer suporte básico para manipulação de falhas. Juntamente com o componente peer, permite o uso de computadores em redes privadas, mesmo que estejam em um domínio administrativo diferente ou protegido por um firewall.

Figura 1 - Arquitetura do OurGrid

(5)

3. Integração

Nesta seção, descrevemos como se dá a integração da ferramenta Weka juntamente com o OurGrid. O usuário poderá escolher se quer executar a mineração na grade ou não apenas clicando em checkbox na interface do Weka. É importante salientar que consideramos que o ambiente OurGrid já está configurado, pronto para o usuário utilizar.

Inicialmente, nosso trabalho está focado em paralelizar os algoritmos de fragmentação. Para exemplificar, mostraremos como estamos fazendo com o Cross Validation, que é uma das técnicas de fragmentação aplicadas no processo de mineração de dados. Com a paralelização desta técnica, já será possível reduzir o custo computacional de muitos algoritmos de mineração já que muitos deles, especialmente os de classificação, estão atrelados às técnicas de fragmentação.

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 são 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 média da taxa de acerto, denominada acurácia, para se obter uma estimativa final da qualidade do conhecimento induzido. O pseudocódigo desta técnica está descrito na Figura 2.

Divide os dados em k grupos

Faça 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

Faça a média dos resultados obtidos nos testes

Figura 2. Algoritmo do Cross Validation

A integração se dá no momento em que o algoritmo Cross Validation divide em k grupos o conjunto inicial, e para cada interação do for, será enviado o conjunto de teste da interação i juntamente com os conjuntos de treinamento que executarão em uma máquina do OurGrid que esteja disponível. Sendo assim, as tarefas deverão ser executadas em k máquinas diferentes, cada uma tendo um par de conjuntos de treinamento-teste diferente das outras.

Como algoritmo para indução de conhecimento, poderá ser usado qualquer um dos muitos existentes no Weka. Ao final da execução de cada tarefa, as máquinas enviam os resultados para a home machine que submeteu o job. Esta pega todos os resultados e faz uma média obtendo uma única acurácia e exibindo os resultados através da interface Weka.

(6)

O mesmo é feito para o algoritmo de fragmentação Holdout. Por restrições de espaço, 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 têm uma abordagem similar à nossa. O primeiro paraleliza apenas o algoritmo de fragmentação Cross-Validation, fazendo com que os diferentes pares de conjuntos treinamento-teste sejam executados em diversas máquinas. Para tanto, é exigido do usuário que ele instale o software nas máquinas que se deseja executar. Como uma desvantagem desta abordagem, destacamos que não é dado um bom suporte às falhas que eventualmente acontecem na rede.

Pensando justamente neste problema, foi desenvolvido um software que é uma evolução do Weka Parallel: o Grid Weka. Apesar de este trabalho dar um melhor tratamento a este problema, algumas limitações perduram, das quais destacamos duas:

 o usuário precisa ter acesso às máquinas que deseja executar: usuários comumente precisam de mais máquinas do que as que possuem e, para conseguir acesso à novas máquinas é preciso uma negociação off-line com administradores de redes, muitas vezes sem sucesso. Em nosso trabalho, além das máquinas que usuários têm acesso, existem também aquelas que estão disponíveis em outros domínios administrativos já que o OurGrid é uma grade aberta onde qualquer um pode se juntar. Além disso, não há preocupação com tratamento de quedas na rede, que também é função do OurGrid;

 apenas um algoritmo é paralelizado: é comprovado pela literatura que um mesmo algoritmo de classificação pode conseguir resultados distintos quando associados com diferentes algoritmos de fragmentação [Santos 2005]. Adicionalmente, não há uma técnica que seja melhor para todos os casos. Sendo assim, dar a opção ao usuário de paralelizar apenas uma técnica é pouco. Por isso, nosso trabalho oferece outros algoritmos paralelizados.

5. Considerações Finais

Elaboramos este trabalho com o intuito de ajudar os usuários de mineração de dados a processar de forma mais rápida seus bancos de dados. É muito comum que usuários executem algoritmos diferentes para um mesmo banco de dados ou ainda que executem o mesmo algoritmo várias vezes, mas com parâmetros diferentes. Daí a necessidade de uma ferramenta como esta.

A concepção da ferramenta foi pensada de forma que facilita a vida do usuário quanto a outros aspectos também:

 Custo financeiro: usando uma grade computacional aberta como o OurGrid, permite que empresas e laboratórios que não têm condições de investir em supercomputadores, tenham acesso a recursos computacionais de alto desempenho de forma barata;

 Software Livre: mesmo construindo uma ferramenta genérica que atende a várias realidades, usuários poderão alterar a ferramenta a fim de adequá-la de uma forma melhor a sua realidade, se for o caso, ou ainda aperfeiçoá-la;

(7)

 Flexibilidade: a ferramenta é bastante flexível, dando aos usuários muitas opções, das quais destacamos que eles têm acesso a uma biblioteca de algoritmos de mineração e podem optar por fazer suas execuções na grade ou não.

Como trabalhos futuros, pretendemos finalizar a primeira versão da ferramenta e disponibilizá-la para a comunidade através do site SourceForge. Também faremos teste de desempenho no intuito de avaliar melhor os resultados obtidos. Com isto, poderemos, por exemplo, avaliar se vale a pena ou não enviar uma execução para a grade computacional — é possível que o tempo de overhead faça com que o tempo de execução total acabe sendo maior do que uma execução standalone. Estes testes de avaliação ajudarão em outro ponto: até agora só estamos trabalhando com algoritmos de fragmentação, portanto, também investigaremos os algoritmos de classificação, por exemplo, para paralelizá-los, caso seja necessário.

6. Bibliografia:

BASU, Sugato; MELVILLE, Prem. “Weka Tutorial”. University of Texas at Austin. Disponível 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”. Relatório Técnico, 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 E-Commerce, E-Business and E-Goverment . Setembro, 2003.

CIRNE, Walfredo. “Grids Computacionais: Arquiteturas, Tecnologias e Aplicações”. 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.

MENDONÇA, Manoel. Mineração de Dados. Relatório Técnico, 2002.

SANTOS, David Moises B. “Seleção de modelos de classificação usando heurísticas”. Dissertação, 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.

Referências

Documentos relacionados

Este artigo está dividido em três partes: na primeira parte descrevo de forma sumária sobre a importância do museu como instrumento para construção do conhecimento, destaco

Os casos não previstos neste regulamento serão resolvidos em primeira instância pela coorde- nação do Prêmio Morena de Criação Publicitária e, em segunda instância, pelo

(a) uma das formas para compatibilizar direitos consagrados na Constituição Federal de 1988 diretamente relacionados com a dignidade da pessoa humana – como o respeito à vida privada

O termo extrusão do núcleo pulposo aguda e não compressiva (Enpanc) é usado aqui, pois descreve as principais características da doença e ajuda a

 Forte parceria com todas as incorporadoras listadas e mais de 600 incorporadores não listados gera grandes oportunidades para a Brasil Brokers para a venda de Remanescentes;

Os ativos não circulantes classificados como disponível para venda são mensurados pelo menor montante entre o seu custo contábil e o seu valor justo, líquido das despesas com a

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

Cadastro de Procedimentos e Tabelas de Preço.. Um procedimento pode ser uma consulta normal, pode ser um exame, uma cirurgia ou ainda um procedimento complexo, que