Implementação em Java de um Algoritmo

download Implementação em Java de um Algoritmo

of 10

Transcript of Implementação em Java de um Algoritmo

  • 8/2/2019 Implementao em Java de um Algoritmo

    1/10

    Implementao em Java de um Algoritmo de rvore de Deciso Acoplado aum SGBD Relacional

    Mauricio Onoda & Nelson F. F. EbeckenCOPPE/UFRJ Universidade Federal do Rio de Janeiro

    [email protected] [email protected]

    Resumo Atualmente um dos tpicos mais pesquisados em data mining a sua integrao com banco de dados. Os

    reflexos destes esforos j aparecem nos grandes bancos de dados comerciais, que esto fornecendo solues

    integradas de data mining. Este trabalho avalia o acoplamento de um algoritmo de rvore de deciso no usual

    com um sistema gerenciador de banco de dados relacional e analisa o desempenho da sua implementao em

    Java.

    AbstractNowadays one of the most researched topics in data mining is its integration with database. The reflexes of these

    efforts already appear in the major commercial databases, which are supplying integrated solutions of data

    mining. This work evaluates the coupling of an unusual decision tree algorithm to a relational database

    management system, and analyzes the performance of the implementation in Java.

    1. Introduo

    As pesquisas iniciais em data mining foram concentradas na definio de novasoperaes de minerao e no desenvolvimento de algoritmos, sendo a maioria dos sistemas dedata mining implementada utilizando sistema de arquivos e estrutura de dados especfica.Estes sistemas que operam diretamente num arquivo de dados (normalmente todo carregadona memria principal) tornaram-se insuficientes medida que as aplicaes envolveram aminerao de grandes data warehouses. Apesar da utilizao de SGBD (Sistema Gerenciadorde Banco de Dados) em data mining no ser nova, a maioria das aplicaes ainda utiliza aarquitetura fracamente acoplada, onde os dados so lidos diretamente do banco de dados,tupla a tupla, usando a interface de cursor do SGBD. Este acoplamento fraco caracteriza-sepelo sistema de banco de dados ser executado num espao de endereamento diferente doprocesso de data mining.

    Este trabalho avalia o desempenho da implementao em Java de um algoritmo dervore de deciso no usual, em ambiente de microinformtica, numa abordagem fracamenteacoplada. Este algoritmo, denominado PUBLIC (PrUning and BuiLding Integrated inClassification) [1], diferencia-se dos demais por realizar a poda da rvore durante a fase decrescimento. No PUBLIC, a fase de crescimento baseada no algoritmo SPRINT (ScalablePaRallelizable INduction on decision Trees) [2], considerado o estado da arte na classificaode grande volume de dados, e a fase de poda baseia-se no princpio do MDL (Minimum

    Description Length) [3]. Estas caractersticas tornam este algoritmo adequado para o ambientecomputacional escolhido. A utilizao do Java proporciona uma soluo mais verstil eabrangente, uma vez que a maioria dos grandes bancos de dados comerciais j possui versesonde est embutida uma mquina virtual Java (JVM - Java Virtual Machine). Para

  • 8/2/2019 Implementao em Java de um Algoritmo

    2/10

    comparao de desempenho com o Java, o mesmo algoritmo tambm foi implementado emPL/SQL, aproveitando-se das caractersticas do banco de dados Oracle utilizado.

    O trabalho est organizado como apresentado a seguir. A seo 2 mostra umaclassificao das principais arquiteturas para integrao entre data mining e banco de dados.A seo 3 apresenta um resumo sobre rvores de deciso. O detalhamento da implementao

    deste trabalho est na seo 4. A seo 5 contm a descrio das bases de dados utilizadaspara testes e os resultados obtidos. Finalmente, na seo 6 so reunidas as concluses destetrabalho.

    2. Arquiteturas para integrao entre data mining e SGBD

    Uma classificao abrangente para as diversas alternativas de arquiteturas paraacoplamento entre data mining e um sistema de banco de dados apresentada em BEZERRAet al. [4], onde as abordagens foram divididas em trs categorias principais: convencional,fortemente acoplada e caixa-preta (black box). Na categoria convencional, tambm chamadade fracamente acoplada, no h integrao entre o SGBD e a aplicao de data mining. Os

    dados so lidos, tupla a tupla, do banco de dados utilizando o mecanismo de cursor do SGBD.Na categoria fortemente acoplada, as operaes intensivas de dados e as operaes queconsomem muito tempo do algoritmo de data mining so inseridas no SGBD. Esta categoriapode ser subdividida em duas abordagens: SQL aware e Extensions aware. Na abordagemSQL aware, estas operaes so mapeadas em SQL padro, enquanto que na Extensionsaware as aplicaes de data mining utilizam extenses do banco de dados e extenses doSQL. A abordagem Extensions aware agrega as seguintes opes:

    Funes internas: uma funo interna um pedao de cdigo escrito como UDF (user-defined function), no IBM DB2/CS, ou como stored procedure, no Oracle PL/SQL. Nestaabordagem, parte do algoritmo de data mining expressa como uma coleo de UDF ou destored procedures, os quais so apropriadamente utilizados em expresses SQL.

    Tipos de dados: neste caso, as aplicaes de data mining utilizam alguns tipos de dadosespecficos do SGBD para melhorar o tempo de execuo do algoritmo.

    Extenses do SQL: o SQL estendido para permitir execues de operaes intensivas dedados no SGBD na forma de primitivas. Assim, as vantagens das extenses do SQL soutilizadas pelas aplicaes para realizar suas tarefas de minerao. Uma vantagem dautilizao de extenses do SQL sobre o SQL padro (SQL aware) que algumasinformaes, como por exemplo sumrios estatsticos, que poderiam ser obtidas atravs deuma seqncia de comandos SQL, podem ser conseguidas atravs de um nmero menor derequisies ao SGBD.

    Na categoria caixa-preta, os algoritmos de data mining so totalmente inseridos noSGBD. Neste caso, a aplicao envia ao SGBD uma simples requisio, que normalmente uma expresso de consulta, solicitando a extrao de determinado conhecimento. A maiordesvantagem desta abordagem devido ao fato que nenhum algoritmo de data mining omais adequado para todos os conjuntos de dados. Assim, no h meios do algoritmoimplementado no SGBD ser o melhor em todas as situaes.

  • 8/2/2019 Implementao em Java de um Algoritmo

    3/10

    3. rvores de deciso

    rvores de deciso so modelos estatsticos utilizados em problemas de prediosupervisionada, onde um conjunto de atributos utilizado para predizer o valor de um atributode sada (resultado), sendo o mapeamento destas entradas para a sada denominado modelo

    preditivo. Os dados usados para estimar um modelo preditivo so um conjunto de casos(observaes, exemplos) que contm valores das entradas e do resultado. Este modelo aplicado em novos casos onde o resultado desconhecido. Uma rvore de deciso possui estenome pois o modelo preditivo pode ser representado numa estrutura semelhante a uma rvore.A rvore de deciso sempre lida de forma descendente, iniciando-se pelo n raiz. Cada ninterno representa uma quebra baseada nos valores de um atributo de entrada, o qual podeaparecer em outras quebras na rvore. Os ns terminais de uma rvore so chamados folhas,que representam o resultado predito. Quando o resultado discreto, o modelo chamado dervore de classificao, onde as folhas fornecem a classe predita e a sua probabilidade.Quando o resultado contnuo, o modelo chamado de rvore de regresso. Neste caso, asfolhas fornecem apenas uma predio de valor do resultado.

    O mtodo padro usado no crescimento da rvore de deciso baseado em partiesrecursivas, que um algoritmo guloso descendente. Comeando no n raiz, um nmero dequebras pertinentes a um atributo de entrada examinado. Para entradas contnuas, asdivises so segmentos disjuntos dos valores de entrada, enquanto que para entradas discretasas divises so subconjuntos disjuntos das categorias de entrada. Vrias estratgias podem serutilizadas para determinar o conjunto de pontos de quebra, sendo que um critrio usado paraescolher qual a melhor opo. Ento, os casos no n raiz so divididos de acordo com aquebra selecionada. A diviso repetida para cada n filho como se ele fosse a raiz de umanova rvore. A profundidade da rvore controlada pelo critrio de parada.

    Uma rvore de deciso pode crescer at todo n ser puro (rvore mxima), quando elater 100% de preciso nos dados de treinamento. A rvore mxima o resultado deoverfitting, pois ela se adapta variao sistemtica do resultado (sinal) e da variaoaleatria (rudo). Com isso, ela no generaliza bem os novos dados, os quais normalmentecontm muito rudo. Ao contrrio, uma rvore pequena com somente poucos ramos podesubaproveitar os dados (underfitting) e, conseqentemente, pode falhar na adaptao ao sinal.Isto resulta numa generalizao pobre. Para evitar estes problemas, necessrio executar apoda da rvore, que pode ser do tipo descendente ou ascendente. Na poda descendente (top-down pruning), ou pr-poda (pre pruning), podem ser utilizados os seguintes critrios deparada: limite na profundidade da rvore, limite na quantidade de fragmentao (por exemplo,no dividir um n se o nmero de casos ficar abaixo de determinado limite) ou significnciaestatstica (quando o teste chi-quadrado utilizado como critrio de quebra). Na podaascendente (bottom-up pruning), tambm chamada de ps-poda (post pruning), uma grandervore gerada e ento os ramos so cortados de maneira reversa usando um critrio deseleo de modelo. A pr-poda normalmente mais rpida, mas consideravelmente menoseficiente que a ps-poda.

    4. Implementao

    Existem vrios classificadores que constroem rvore de deciso, sendo que geralmenteeles geram toda a rvore para depois pod-la. Esta fase de poda serve para melhorar a precisoe prevenir contra o overfitting. Entretanto, a gerao de uma rvore de deciso em duas fasesdistintas pode resultar num desperdcio de esforo considerado se uma subrvore inteira

  • 8/2/2019 Implementao em Java de um Algoritmo

    4/10

    construda na primeira fase for podada na segunda fase. Se durante a fase de construo, antesde dividir um n, puder ser concludo que ele ser podado na prxima fase, este esforo podeser evitado. Desta forma, como as leituras dos dados so repetidas vrias vezes para gerar umasubrvore, pode-se conseguir redues significativas de I/O e melhorar o desempenho doprocesso.

    Este trabalho est baseado no PUBLIC, que um classificador tipo rvore de decisoque integra as duas fases. Se ele parar a expanso de um n somente quando determinado queo mesmo ser podado na prxima fase, h a garantia de que a rvore gerada exatamente amesma do que a obtida pela execuo das duas fases separadamente, uma aps a outra.Entretanto, determinar, durante a fase de construo, se um n ser podado na outra fase problemtico porque a rvore ainda est parcialmente gerada. Isto requer que seja estimadopara cada folha desta rvore parcial, baseado nos registros contidos na folha, o menor custo dasubrvore originada por esta folha. Quanto maior este valor, maior a quantidade de podapossvel na fase de construo da rvore. Apesar do PUBLIC utilizar a entropia paraselecionar o melhor ponto de diviso dos dados, neste trabalho utilizou-se o ndice Gini,originalmente proposto por BREIMAN et al. [5], como definido no SPRINT. A grande

    vantagem deste ndice que seus clculos necessitam somente da distribuio dos valores declasses em cada partio.

    Enquanto que os conhecidos classificadores CART [5] e C4.5 [6] utilizam ocrescimento da rvore em profundidade (depth-first), no PUBLIC o crescimento da rvore feito em largura (breadth-first) para permitir que a poda possa ser realizada de formaintegrada. Durante esta fase de crescimento, o objetivo em cada n determinar o ponto dequebra que melhor divide os dados de treinamento pertencentes a esta folha. Para descobrir amelhor quebra para um n so avaliadas todas as quebras dos atributos, sendo escolhido paradividir o n o atributo que contm o ponto de quebra com o menor valor de ndice Gini. Nestetrabalho, como so utilizadas somente rvores binrias, um algoritmo guloso aplicado ematributos discretos para dividir os valores sempre em dois grupos.

    Para prevenir o overfitting, o princpio do MDL utilizado para a poda da rvore,tornando-a menos especfica. A poda baseada no MDL possui as seguintes vantagens emcomparao com outros algoritmos de poda: produz rvores com boa preciso para umagrande variedade de conjuntos de dados, produz rvores de menor tamanho e computacionalmente eficiente. O princpio do MDL afirma que a melhor rvore aquela quepode ser codificada usando o menor nmero de bits [1]. Assim, o desafio para a fase de poda achar a subrvore de uma rvore que pode ser codificada com o menor nmero de bits. Ocusto de codificao de rvore compreende trs custos separados: o custo para codificar aestrutura de uma rvore, o custo para codificar cada diviso, com o atributo e o respectivovalor e o custo para codificar as classes dos registros em cada folha da rvore.

    A estrutura de uma rvore pode ser codificada usando um simples bit para cada n poisprecisa especificar apenas se um n interno ou uma folha. Como no PUBLIC soconsideradas somente rvores binrias, esta tcnica de codificao para representar rvores quase tima [1]. No custo para codificar cada diviso, o atributo a ser dividido pode sercodificado usando log2a bits (a o nmero de atributos), enquanto que o valor do atributodepende se ele contnuo ou discreto. Sendo v o nmero de valores distintos para o atributo aser dividido, se o mesmo for contnuo, h v-1 pontos diferente onde o n pode ser dividido, elog2(v-1) bits so necessrios para codificar o ponto de quebra. Se o atributo for discreto,existem 2v subconjuntos diferentes de valores, sendo seu custo de diviso log2(2

    v-2). Para umn interno N, seu custo de diviso ser denotado por Csplit(N). O custo para codificar os

  • 8/2/2019 Implementao em Java de um Algoritmo

    5/10

    registros em cada folha dado pela Equao 4.1 [3], sendo S um conjunto que contm nregistros pertencentes a uma das k classes e ni o nmero de registros com classe i.

    ++=i

    k

    i

    i

    k

    nk

    n

    nnSC

    2

    log

    2

    log

    2

    1log)(

    2

    222

    (4.1)

    Depois de formulado o custo de uma rvore, o objetivo calcular o custo mnimo deuma rvore gerada na fase de construo. Sendo S um conjunto de registros em N e N1 e N2so filhos de N, a subrvore de custo mnimo de raiz N, se N uma folha, ele mesmo. Ocusto da subrvore de N com menor valor C(S)+1 ( requerido 1 bit para especificar se o n uma folha). Se N um n interno da rvore com dois filhos N1 e N2, ento h duas opespara a subrvore de custo mnimo: somente o n N (isto corresponde a podar os dois filhos don N e convert-lo numa folha), ou N junto com seus dois filhos e as subrvores de customnimo de N1 e N2. Destas duas opes, a que possui menor custo ser a subrvore de custo

    mnimo para o n N. O custo da primeira opo C(S) +1. Para calcular o custo da segundaopo, o procedimento chamado recursivamente para processar o custo mnimo dasubrvore de cada um dos filhos. O custo desta segunda opo fica entoCsplit (N)+1+minCustoN1+minCustoN2. Neste algoritmo, os filhos de um n N so podados seo custo para codificar os registros de dados em N menor que o custo de codificao dasubrvore de custo mnimo de N.

    Como no PUBLIC a poda deve ser realizada numa rvore parcial, no se pode assumirque o custo da subrvore de menor valor de uma folha N seja C(S)+1. Isto verdade para umarvore j totalmente construda, mas falso para uma rvore parcial pois esta folha pode aindaser dividida posteriormente. Conseqentemente, o custo da subrvore de N pode ser um poucomenor que C(S)+1 como resultado da sua diviso. Se C(S)+1 sobre-estimar o custo dasubrvore de menor valor de N, pode ocorrer o over-pruning, ou seja, ns podem ser podadosdurante a fase de construo, mas que no seriam realmente durante a fase de poda. Isto indesejvel, pois a proposio do PUBLIC que a rvore induzida por este classificador sejaa mesma que a construda por um classificador tradicional. RASTOGI et al. [1] propem queseja subestimado o custo mnimo da subrvore de cada n folha que ainda pode serexpandido. Com a subestimao deste custo, os ns podados so um subconjunto daquelesns que, de qualquer forma, teriam sido podados durante a fase de poda. Assim, a podaexecutada em PUBLIC distingue trs tipos de ns folha: o primeiro tipo de folhas so aquelasque ainda precisam ser expandidas, o segundo tipo so aquelas que j so resultantes de umapoda e o terceiro consiste naquelas que no precisam ser expandidas pois so ns puros. No

    primeiro tipo, determinado um limite inferior dos custos das subrvores destas folhas. Nosoutros dois tipos, utilizado o custo de C(S)+1. Alm disso, quando os filhos de um n N sopodados, todos os seus descendentes so removidos da fila Q utilizada pelo procedimento deconstruo. Desta forma fica garantido que eles no sero expandidos por este procedimento.O algoritmo de poda do PUBLIC mostrado na Figura 4.1 chamado pelo programa deconstruo da rvore periodicamente, ou depois que um certo nmero de ns dividido (estepode ser um parmetro definido pelo usurio), a partir do n raiz da rvore parcialmentegerada. Neste trabalho a poda est sendo executada da segunda forma. importante ressaltarque, depois de concluda a fase de construo, no existir nenhum n folha que ainda precisaser expandido.

  • 8/2/2019 Implementao em Java de um Algoritmo

    6/10

    Procedimento ProcessaCusto&PodaPUBLIC(N N)

    1. Se N uma folha ainda a ser expandida2. Retornar o limite inferior do custo da subrvore de N

    3. Se N uma folha j podada ou uma folha no expansvel2. Retornar C(S)+13. minCustoN1 = ProcessaCusto&PodaPUBLIC(N1)4. minCustoN2 = ProcessaCusto&PodaPUBLIC(N2)5. minCustoN = min{C(S)+1, Csplit(N)+1+minCustoN1+minCustoN2}6. Se minCustoN = C(S)+17. Podar ns filhos N1 e N2 da rvore8. Remover ns N1 e N2 e todos os seus descendentes da fila Q9. Marcar o n N como j podado

    10. Retornar minCustoN

    Figura 4.1 Algoritmo de poda do PUBLIC

    Qualquer subrvore de um n N deve ter um custo de pelo menos 1, e este valor unitrio uma simples, mas conservadora, estimativa para o custo da subrvore de menor valor de umn folha que ainda poder ser expandido. Dois outros algoritmos foram testados porRASTOGI et al. [1] para melhorar esta estimativa de custo mnimo das subrvores dos nsfolhas. Estes dois estimadores foram bem melhores mas no o suficiente para promoverganhos significativos no nmero de ns podados com relao primeira estimativa. Osresultados indicaram que uma significativa melhora do desempenho pode ser realizadasomente utilizando o custo unitrio.

    4.1. Ambiente computacional

    Com o intuito de avaliar o desempenho do algoritmo PUBLIC implementado em Javautilizou-se o Oracle 8i v.8.1.7 (release 3) configurado em um microcomputador Pentium II350Mhz com 128MB de memria principal e executando o Windows NT Server 4.0, onde foiinstalado o pacote Java SDK 2 v.1.3.0. O acesso da aplicao Java ao banco de dados Oracle realizado atravs do driver JDBC Thin. Com o objetivo de ter uma referncia paracomparao de desempenho, este algoritmo PUBLIC tambm foi implementado numaarquitetura fortemente acoplada, onde os procedimentos foram escritos em Oracle PL/SQL,que uma extenso do SQL, e armazenados dentro do dicionrio de dados do Oracle. Autilizao da linguagem PL/SQL s foi possvel devido sua capacidade de trabalhar comSQL dinmico, no possuindo similar em outros bancos de dados. Uma caractersticaoperacional do PL/SQL que, por ser uma linguagem de programao proprietria, suautilizao fica restrita aos bancos de dados da Oracle. Uma avaliao de desempenho de umaabordagem fortemente acoplada com PL/SQL em ambiente Oracle paralelo mostrada emSOUSA et al. [7]. Observa-se que, em ambas as implementaes (Java e PL/SQL), oscomandos SQL executados so os mesmos.

  • 8/2/2019 Implementao em Java de um Algoritmo

    7/10

    4.2. Java

    Em trs anos, o Java passou de uma linguagem de programao usada nodesenvolvimento de simples programas com interface grfica que podiam ser enviados pelaWeb para uma plataforma para desenvolvimento e disponibilizao de aplicaes corporativas

    e de Internet. O Java tornou-se muito popular entre os desenvolvedores de aplicao porqueos deixou mais produtivos e por ser uma linguagem moderna, robusta e orientada a objeto.Alm disso, segundo ORACLE [8], a popularidade sem precedentes do Java decorrente detrs benefcios:

    1. O desenvolvimento de aplicaes mais simples: o Java oferece caractersticas como osuporte para rede e para programao concorrente (multithreading), que tornam odesenvolvimento de aplicaes mais simples que a maioria dos seus predecessores;

    2. As aplicaes so independentes de plataforma: o mesmo cdigo binrio Java pode serexecutado em qualquer plataforma que suporta uma mquina virtual Java, incluindomainframes;

    3. As aplicaes podem ser desenvolvidas como componentes: o Java oferece um modelo decomponentes, o JavaBeans, que permite aos desenvolvedores definir e encapsularcomponentes que podem ser montados com componentes escritos por outrosdesenvolvedores.

    Atravs de um programa Java, h duas opes para acessar banco de dados: o JDBCe/ou o SQLJ, onde ambos so APIs (tambm denominados drivers, pacotes). O JDBC (Java

    Database Connectivity) um padro independente de fabricante, desenvolvido pela empresaJavasoft, o qual foi modelado com base no ODBC, desenvolvido pela Microsoft. O JDBC atualmente o mtodo "de facto" para acessar banco de dados com o Java. Muitas empresas,entre as quais Oracle, Intersolv e Weblogic, desenvolveram tipos de drivers JDBC. O SQLJ um padro para embutir SQL diretamente em programas Java. Ele um produto de uma

    juno de esforos da Oracle, IBM, Sybase, Tandem e Informix. Apesar do JDBC e do SQLJserem complementares, o JDBC necessrio quando se utiliza SQL dinmico, que o casodesta aplicao, enquanto que o SQLJ utilizado para SQL esttico.

    A Oracle oferece dois drivers JDBC para o lado cliente, o Thin e o OCI, e um driverJDBC para servidor (dentro do Oracle JServer). O Thin um driver tipo 4, escrito totalmenteem Java, enquanto o OCI um driver tipo 2, que um nvel implementado no topo do OracleCall Interface (biblioteca C para acessar o SGBD Oracle). O driver JDBC para servidor executado no mesmo espao de endereamento e processo do banco de dados, acessandodiretamente SQL e PL/SQL.

    5. Estudo de casos

    Para avaliar a implementao realizada neste trabalho, foram conduzidos experimentosutilizando as seguintes bases de dados: base de dados real de domnio pblico, base de dadosde meteorologia e base de dados de companhia de seguro. Estas duas ltimas bases, quetambm contm dados reais, foram consideradas pois possuem uma dimensionalidadeadequada aos testes pretendidos, uma vez que as bases de dados reais de domnio pblicogeralmente so pequenas. Estes experimentos utilizaram o mtodo denominado holdout [9]para a estimativa de taxa de erro, onde uma parte dos dados reservada para treinamento e o

  • 8/2/2019 Implementao em Java de um Algoritmo

    8/10

    restante utilizado para teste. Na prtica, foi selecionado aleatoriamente 30% dos dados parateste, ficando os 70% restantes para treinamento.

    Base de dado real de domnio pblico: foi utilizada a base de dados denominada Adult,uma das maiores do UCI Machine Learning Repository [10], com 48.842 registros. Esta

    base possui 8 atributos discretos e 6 atributos contnuos, com 2 classes de sada. Almdisso, tambm possui valores ausentes. Base de dados meteorolgicos:so dados adquiridos no Aeroporto do Rio de Janeiro, cuja

    finalidade a previso de nevoeiro. Os arquivos texto gerados, um para cada ano, com oregistro da observao meteorolgica horria de superfcie com informaes de 36atributos coletados diariamente foram concatenados numa nica base de dados,totalizando 28.596 registros. COSTA [11] realizou uma limpeza nestes dados devido aogrande nmero de inconsistncias e rudos, o que resultou num conjunto com 18 atributosde entrada e 1 atributo de sada, para um total de 26.492 registros.

    Base de dados de companhia de seguro: estes dados foram extrados de um datawarehouse que coleta e analisa dados de uma companhia privada de seguro de vida. Os

    arquivos disponibilizados pela companhia descrevem o relacionamento entre clientes,contratos de seguro e componentes de tarifa, sendo que a identificao de alguns atributos,bem como a explicao sobre o contedo dos mesmos, esto protegidas por questes desigilo. As tabelas inicialmente armazenadas no servidor paralelo Oracle do NACAD/UFRJforam agrupadas numa nica tabela, com 80 atributos e 147.478 registros. Aps a limpezados dados realizada por COSTA [11], o conjunto resultante ficou com 130.143 registros e64 atributos, assim distribudos: 9 atributos com informaes de clientes, 33 atributos decaractersticas de famlia, 13 atributos de contratos de seguro, 15 atributos decomponentes de tarifa e 1 atributo contendo a classificao do cliente.

    5.1. Resultados

    O desempenho da implementao em Java e o erro calculado para as bases de dadosavaliadas esto mostrados na Tabela 5.1. Nestes resultados, como as rvores geradas sobinrias, o tamanho de cada rvore (nmero de ns) a medida da sua complexidade.

    Base de dadosTamanhoda rvore

    (ns)

    Tempo deexecuo (s)

    Java

    Erro(%)

    Adult 105 717 18,32

    Meteorologia 183 379 36,75

    Seguro 267 39.006 30,86

    Tabela 5.1 Resultados da implementao em Java

    Na Tabela 5.2 compara-se o desempenho do algoritmo PUBLIC implementado em Javae em PL/SQL.

  • 8/2/2019 Implementao em Java de um Algoritmo

    9/10

    Base de dadosTempo de

    execuo (s)Java

    Tempo deexecuo (s)

    PL/SQL

    Adult 717 797

    Meteorologia 379 398

    Seguro 39.006 38.413

    Tabela 5.2 Comparao entre Java e PL/SQL

    6. Concluses

    Enquanto a maioria das pesquisas envolvendo a integrao de SGBD com data miningdireciona-se a melhorar a escalabilidade e o desempenho das tcnicas de anlise de dados,

    este trabalho mostrou que completamente vivel a execuo de data mining em ambiente demicroinformtica com Java. A caracterstica de poda integrada do algoritmo PUBLIC foifundamental para o sucesso nas execues dos experimentos pois, devido capacidade deprocessamento do microcomputador, invivel aguardar o final da construo da rvore paragrandes bases de dados no caso de ps-poda.

    Um ponto que ressaltou nos experimentos realizados foi o desempenho semelhanteentre o Java e o PL/SQL. No incio deste trabalho alguns desenvolvedores experientesafirmaram que, neste tipo de aplicao, o Java seria muito mais lento que o PL/SQL. Este fatomostra que a utilizao do Java deve ser considerada em solues de data mining integradascom SGBD pois tambm garante aplicao uma grande portabilidade, uma vez que osprincipais bancos de dados comerciais j interagem com o Java.

    Os resultados desta implementao abrem possibilidades para pesquisas na rea de datamining incremental utilizando este tipo de plataforma, cujo conjunto aproximar-se-ia dasnecessidades das corporaes, onde a repetio de todo o processo de minerao para umadeterminada base de dados devido incluso de novos registros computacionalmenteonerosa.

    Referncias bibliogrficas

    [1] RASTOGI, R., SHIM, K., PUBLIC: A Decision Tree Classifier that IntegratesBuilding and Pruning. In: Proceedings of the 24th International Conferenceon Very Large Databases (VLDB), New York, USA, 1998. http://www.bell-

    labs.com/user/rastogi/pub.html.[2] SHAFER, J., AGRAWAL, R., MEHTA, M., SPRINT: A Scalable Parallel

    Classifier for Data Mining. In: Proceedings of the 22nd InternationalConference on Very Large Databases (VLDB), Mumbai (Bombay), India,1996. http://www.almaden.ibm.com/cs/quest/PUBS.html.

    [3] MEHTA, M., RISSANEN, J., AGRAWAL, R., MDL-based Decision TreePruning. In: Proceedings of the International Conference on Knowledge

    Discovery in Databases and Data Mining (KDD), Montreal, Canada, 1995.http://www.almaden.ibm.com/cs/quest/PUBS.html.

  • 8/2/2019 Implementao em Java de um Algoritmo

    10/10

    [4] BEZERRA, E., MATTOSO, M., XEXO, G., An analysis of the integrationbetween data mining applications and database systems, In: Proceedings ofthe 2nd International Conference on Data Mining (Data Mining II), pp. 151-160, Cambridge, UK, 2000.

    [5] BREIMAN, L., FRIEDMAN, J. H., OLSHEN, R. A., et al., Classification and

    Regression Trees, First CRC Press reprint, Boca Raton, USA, Chapman &Hall / CRC, 1998.[6] QUINLAN, J. R., C4.5: Programs for Machine Learning, 7 ed., San Mateo,

    USA, Morgan Kaufmann Publishers, 1993.[7] SOUSA, M. S. R., MATTOSO, M., EBECKEN, N. F. F., Mining a large

    database with a parallel database server, IDA Intelligent Data Analysis,n.3 (1999), pp. 437-451, Oct.1999.

    [8] ORACLE CORPORATION, Developing Stored Procedures In Java, OracleTechnical White Paper, Redwood Shores, USA, 1999.

    [9] WITTEN, I. H., FRANK, E., Data Mining Practical Machine Learning Toolsand Techniques with Java Implementations, 1st ed., San Francisco, USA,

    Morgan Kaufmann Publishers, 2000.[10] UCI MACHINE LEARNING REPOSITORY. http:///www.ics.uci.edu/~mlearn/

    MLRepository.html.[11] COSTA, M. C. A, Data Mining em Computadores de Alto Desempenho

    Utilizando-se Redes Neurais, Tese de D.Sc., COPPE/UFRJ, Rio de Janeiro,1999.