Você está na página 1de 10

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

Mauricio Onoda & Nelson F. F. Ebecken COPPE/UFRJ Universidade Federal do Rio de Janeiro monoda@uninet.com.br nelson@ntt.ufrj.br

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.

Abstract
Nowadays 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 novas operaes de minerao e no desenvolvimento de algoritmos, sendo a maioria dos sistemas de data mining implementada utilizando sistema de arquivos e estrutura de dados especfica. Estes sistemas que operam diretamente num arquivo de dados (normalmente todo carregado na memria principal) tornaram-se insuficientes medida que as aplicaes envolveram a minerao de grandes data warehouses. Apesar da utilizao de SGBD (Sistema Gerenciador de Banco de Dados) em data mining no ser nova, a maioria das aplicaes ainda utiliza a arquitetura 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-se pelo sistema de banco de dados ser executado num espao de endereamento diferente do processo de data mining. Este trabalho avalia o desempenho da implementao em Java de um algoritmo de rvore de deciso no usual, em ambiente de microinformtica, numa abordagem fracamente acoplada. Este algoritmo, denominado PUBLIC (PrUning and BuiLding Integrated in Classification) [1], diferencia-se dos demais por realizar a poda da rvore durante a fase de crescimento. No PUBLIC, a fase de crescimento baseada no algoritmo SPRINT (Scalable PaRallelizable INduction on decision Trees) [2], considerado o estado da arte na classificao de 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 ambiente computacional escolhido. A utilizao do Java proporciona uma soluo mais verstil e abrangente, uma vez que a maioria dos grandes bancos de dados comerciais j possui verses onde est embutida uma mquina virtual Java (JVM - Java Virtual Machine). Para

comparao de desempenho com o Java, o mesmo algoritmo tambm foi implementado em PL/SQL, aproveitando-se das caractersticas do banco de dados Oracle utilizado. O trabalho est organizado como apresentado a seguir. A seo 2 mostra uma classificao 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 utilizadas para testes e os resultados obtidos. Finalmente, na seo 6 so reunidas as concluses deste trabalho. 2. Arquiteturas para integrao entre data mining e SGBD Uma classificao abrangente para as diversas alternativas de arquiteturas para acoplamento entre data mining e um sistema de banco de dados apresentada em BEZERRA et al. [4], onde as abordagens foram divididas em trs catego rias principais: convencional, fortemente acoplada e caixa-preta (black box). Na categoria convencional, tambm chamada de 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 que consomem muito tempo do algoritmo de data mining so inseridas no SGBD. Esta categoria pode ser subdividida em duas abordagens : SQL aware e Extensions aware. Na abordagem SQL aware, estas operaes so mapeadas em SQL padro, enquanto que na Extensions aware as aplicaes de data mining utilizam extenses do banco de dados e extenses do SQL. A abordagem Extensions aware agrega as seguintes opes: Funes internas: uma funo interna um pedao de cdigo escrito como UDF (userdefined function), no IBM DB2/CS, ou como stored procedure, no Oracle PL/SQL. Nesta abordagem, parte do algoritmo de data mining expressa como uma coleo de UDF ou de stored procedures, os quais so apropriadamente utilizados em expresses SQL. Tipos de dados: neste caso, as aplicaes de data mining utilizam alguns tipos de dados especficos do SGBD para melhorar o tempo de execuo do algoritmo. Extenses do SQL: o SQL estendido para permitir execues de operaes intensivas de dados no SGBD na forma de primitivas. Assim, as vantagens das extenses do SQL so utilizadas pelas aplicaes para realizar suas tarefas de minerao. Uma vantagem da utilizao de extenses do SQL sobre o SQL padro (SQL aware) que algumas informaes, como por exemplo sumrios estatsticos, que poderiam ser obtidas atravs de uma seqncia de comandos SQL, podem ser conseguidas atravs de um nmero menor de requisies ao SGBD. Na categoria caixa-preta, os algoritmos de data mining so totalmente inseridos no SGBD. Neste caso, a aplicao envia ao SGBD uma simples requisio, que normalmente uma expresso de consulta, solicitando a extrao de determinado conhecimento. A maior desvantagem desta abordagem devido ao fato que nenhum algoritmo de data mining o mais adequado para todos os conjuntos de dados. Assim, no h meios do algoritmo implementado no SGBD ser o melhor em todas as situaes.

3. rvores de deciso rvores de deciso so modelos estatsticos utilizados em problemas de predio supervisionada, onde um conjunto de atributos utilizado para predizer o valor de um atributo de 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 este nome 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 n interno representa uma quebra baseada nos valores de um atrib uto de entrada, o qual pode aparecer 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 de rvore 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, as folhas fornecem apenas uma predio de valor do resultado. O mtodo padro usado no crescimento da rvore de deciso baseado em parties recursivas, que um algoritmo guloso descendente. Comeando no n raiz, um nmero de quebras pertinentes a um atributo de entrada examinado. Para entradas contnuas, as divises so segmentos disjuntos dos valores de entrada, enquanto que para entradas discretas as divises so subconjuntos disjuntos das categorias de entrada. Vrias estratgias podem ser utilizadas para determinar o conjunto de pontos de quebra, sendo que um critrio usado para escolher qual a melhor opo. Ento, os casos no n raiz so divididos de acordo com a quebra selecionada. A diviso repetida para cada n filho como se ele fosse a raiz de uma nova rvore. A profundidade da rvore controlada pelo critrio de parada. Uma rvore de deciso pode crescer at todo n ser puro (rvore mxima), quando ela ter 100% de preciso nos dados de treinamento. A rvore mxima o resultado de overfitting, pois ela se adapta variao sistemtica do resultado (sinal) e da variao aleatria (rudo). Com isso, ela no generaliza bem os novos dados, os quais normalmente contm muito rudo. Ao contrrio, uma rvore pequena com somente poucos ramos pode subaproveitar os dados (underfitting) e, conseqentemente, pode falhar na adaptao ao sinal. Isto resulta numa generalizao pobre. Para evitar estes problemas, necessrio executar a poda da rvore, que pode ser do tipo descendente ou ascendente. Na poda descendente (topdown pruning), ou pr-poda (pre pruning), podem ser utilizados os seguintes critrios de parada: 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 significncia estatstica (quando o teste chi-quadrado utilizado como critrio de quebra). Na poda ascendente (bottom-up pruning), tambm chamada de ps-poda (post pruning), uma grande rvore gerada e ento os ramos so cortados de maneira reversa usando um critrio de seleo de modelo. A pr-poda normalmente mais rpida, mas consideravelmente menos eficiente que a ps-poda. 4. Implementao Existem vrios classificadores que constroem rvore de deciso, sendo que geralmente eles geram toda a rvore para depois pod- la. Esta fase de poda serve para melhorar a preciso e prevenir contra o overfitting. Entretanto, a gerao de uma rvore de deciso em duas fases distintas pode resultar num desperdcio de esforo considerado se uma subrvore inteira

construda na primeira fase for podada na segunda fase. Se durante a fase de construo, antes de dividir um n, puder ser concludo que ele ser podado na prxima fase, este esforo pode ser evitado. Desta forma, como as leituras dos dados so repetidas vrias vezes para gerar uma subrvore, pode-se conseguir redues significativas de I/O e melhorar o desempenho do processo. Este trabalho est baseado no PUBLIC, que um classificador tipo rvore de deciso que integra as duas fases. Se ele parar a expanso de um n somente quando determinado que o mesmo ser podado na prxima fase, h a garantia de que a rvore gerada exatamente a mesma 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 estimado para cada folha desta rvore parcial, baseado nos registros contidos na folha, o menor custo da subrvore originada por esta folha. Quanto maior este valor, maior a quantidade de poda possvel na fase de construo da rvore. Apesar do PUBLIC utilizar a entropia para selecionar 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 de classes em cada partio. Enquanto que os conhecidos classificadores CART [5] e C4.5 [6] utilizam o crescimento 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 forma integrada. Durante esta fase de crescimento, o objetivo em cada n determinar o ponto de quebra que melhor divide os dados de treinamento pertencentes a esta folha. Para descobrir a melhor quebra para um n so avaliadas todas as quebras dos atributos, sendo escolhido para dividir o n o atributo que contm o ponto de quebra com o menor valor de ndice Gini. Neste trabalho, como so utilizadas somente rvores binrias, um algoritmo guloso aplicado em atributos 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 em comparao com outros algoritmos de poda: produz rvores com boa preciso para uma grande variedade de conjuntos de dados, produz rvores de menor tamanho e computacionalmente eficiente. O princpio do MDL afirma que a melhor rvore aquela que pode 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. O custo de codificao de rvore compreende trs custos separados: o custo para codificar a estrutura de uma rvore, o custo para codificar cada diviso, com o atributo e o respectivo valor 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 pois precisa especificar apenas se um n interno ou uma folha. Como no PUBLIC so consideradas 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 ser codificado usando log2 a bits (a o nmero de atributos), enquanto que o valor do atributo depende se ele contnuo ou discreto. Sendo v o nmero de valores distintos para o atributo a ser dividido, se o mesmo for contnuo, h v-1 pontos diferente onde o n pode ser dividido, e log2 (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 (2v -2). Para um n interno N, seu custo de diviso ser denotado por Csplit (N). O custo para codificar os

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

n k 1 n 2 C ( S ) = ni log 2 + log 2 + log 2 ni 2 2 k i 2

(4.1)

Depois de formulado o custo de uma rvore, o objetivo calcular o custo mnimo de uma rvore gerada na fase de construo. Sendo S um conjunto de registros em N e N1 e N2 so filhos de N, a subrvore de custo mnimo de raiz N, se N uma folha, ele mesmo. O custo 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 opes para a subrvore de custo mnimo: somente o n N (isto corresponde a podar os dois filhos do n N e convert- lo numa folha), ou N junto com seus dois filhos e as subrvores de custo mnimo 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 segunda opo, o procedimento chamado recursivamente para processar o custo mnimo da subrvore de cada um dos filhos. O custo desta segunda opo fica ento Csplit (N)+1+minCustoN1 +minCustoN2 . Neste algoritmo, os filhos de um n N so podados se o custo para codificar os registros de dados em N menor que o custo de codificao da subrvore de custo mnimo de N. Como no PUBLIC a poda deve ser realizada numa rvore parcial, no se pode assumir que o custo da sub rvore de menor valor de uma folha N seja C(S)+1. Isto verdade para uma rvore j totalmente construda, mas falso para uma rvore parcial pois esta folha pode ainda ser dividida posteriormente. Conseqentemente, o custo da subrvore de N pode ser um pouco menor que C(S)+1 como resultado da sua diviso. Se C(S)+1 sobre-estimar o custo da subrvore de menor valor de N, pode ocorrer o over-pruning, ou seja, ns podem ser podados durante 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 seja a mesma que a construda por um classificador tradicional. RASTOGI et al. [1] propem que seja subestimado o custo mnimo da subrvore de cada n folha que ainda pode ser expandido. Com a subestimao deste custo, os ns podados so um subconjunto daqueles ns que, de qualquer forma, teriam sido podados durante a fase de poda. Assim, a poda executada em PUBLIC distingue trs tipos de ns folha: o primeiro tipo de folhas so aquelas que ainda precisam ser expandidas, o segundo tipo so aquelas que j so resultantes de uma poda 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. Nos outros dois tipos, utilizado o custo de C(S)+1. Alm disso, quando os filhos de um n N so podados, todos os seus descendentes so removidos da fila Q utilizada pelo procedimento de construo. 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 de construo da rvore periodicamente, ou depois que um certo nmero de ns dividido (este pode ser um parmetro definido pelo usurio), a partir do n raiz da rvore parcialmente gerada. Neste trabalho a poda est sendo executada da segunda forma. importante ressaltar que, depois de concluda a fase de construo, no existir nenhum n folha que ainda precisa ser expandido.

Procedimento ProcessaCusto&PodaPUBLIC(N N) 1. 2. 3. 2. 3. 4. 5. 6. 7. 8. 9. 10. Se N uma folha ainda a ser expandida Retornar o limite inferior do custo da subrvore de N Se N uma folha j podada ou uma folha no expansvel Retornar C(S)+1 minCustoN1 = ProcessaCusto&PodaPUBLIC(N 1 ) minCustoN2 = ProcessaCusto&PodaPUBLIC(N 2 ) minCustoN = min{C(S)+1, Csplit (N)+1+minCustoN1 +minCustoN2 } Se minCustoN = C(S)+1 Podar ns filhos N1 e N2 da rvore Remover ns N1 e N2 e todos os seus descendentes da fila Q Marcar o n N como j podado 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 um n folha que ainda poder ser expandido. Dois outros algoritmos foram testados por RASTOGI et al. [1] para melhorar esta estimativa de custo mnimo das subrvores dos ns folhas. Estes dois estimadores foram bem melhores mas no o suficiente para promover ganhos significativos no nmero de ns podados com relao primeira estimativa. Os resultados indicaram que uma significativa melhora do desempenho pode ser realizada somente utilizando o custo unitrio. 4.1. Ambiente computacional Com o intuito de avaliar o desempenho do algoritmo PUBLIC implementado em Java utilizou-se o Oracle 8i v.8.1.7 (release 3) configurado em um microcomputador Pentium II 350Mhz com 128MB de memria principal e executando o Windows NT Server 4.0, onde foi instalado 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 para comparao de desempenho, este algoritmo PUBLIC tambm foi implementado numa arquitetura 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. A utilizao da linguagem PL/SQL s foi possvel devido sua capacidade de trabalhar com SQL dinmico, no possuindo similar em outros bancos de dados. Uma caracterstica operacional do PL/SQL que, por ser uma linguagem de programao proprietria, sua utilizao fica restrita aos bancos de dados da Oracle. Uma avaliao de desempenho de uma abordagem fortemente acoplada com PL/SQL em ambiente Oracle paralelo mostrada em SOUSA et al. [7]. Observa-se que, em ambas as implementaes (Java e PL/SQL), os comandos SQL executados so os mesmos.

4.2. Java Em trs anos, o Java passou de uma linguagem de programao usada no desenvolvimento de simples programas com interface grfica que podiam ser enviados pela Web para uma plataforma para desenvolvimento e disponibilizao de aplicaes corporativas e de Internet. O Java tornou-se muito popular entre os desenvolvedores de aplicao porque os 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 de trs benefcios: 1. O desenvolvimento de aplicaes mais simples: o Java oferece caractersticas como o suporte para rede e para programao concorrente (multithreading), que tornam o desenvolvimento de aplicaes mais simples que a maioria dos seus predecessores; 2. As aplicaes so independentes de plataforma: o mesmo cdigo binrio Java pode ser executado em qualquer plataforma que suporta uma mquina virtual Java, incluindo mainframes; 3. As aplicaes podem ser desenvolvidas como componentes: o Java oferece um modelo de componentes, o JavaBeans, que permite aos desenvolvedores definir e encapsular componentes que podem ser montados com componentes escritos por outros desenvolvedores. Atravs de um programa Java, h duas opes para acessar banco de dados: o JDBC e/ou o SQLJ, onde ambos so APIs (tambm denominados drivers, pacotes). O JDBC (Java Database Connectivity) um padro independente de fabricante, desenvolvido pela empresa Javasoft, 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 SQLJ serem complementares, o JDBC necessrio quando se utiliza SQL dinmico, que o caso desta 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 driver JDBC para servidor (dentro do Oracle JServer). O Thin um driver tipo 4, escrito totalmente em Java, enquanto o OCI um driver tipo 2, que um nvel implementado no topo do Oracle Call 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, acessando diretamente SQL e PL/SQL. 5. Estudo de casos Para avaliar a implementao realizada neste trabalho, foram conduzidos experimentos utilizando as seguintes bases de dados: base de dados real de domnio pblico, base de dados de meteorologia e base de dados de companhia de seguro. Estas duas ltimas bases, que tambm contm dados reais, foram consideradas pois possuem uma dimensionalidade adequada aos testes pretendidos, uma vez que as bases de dados reais de domnio pblico geralmente so pequenas. Estes experimentos utilizaram o m todo denominado holdout [9] para a estimativa de taxa de erro, onde uma parte dos dados reservada para treinamento e o

restante utilizado para teste. Na prtica, foi selecionado aleatoriamente 30% dos dados para teste, 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. Alm disso, 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 o registro da observao meteorolgica horria de superfcie com informaes de 36 atributos coletados diariamente foram concatenados numa nica base de dados, totalizando 28.596 registros. COSTA [11] realizou uma limpeza nestes dados devido ao grande nmero de inconsistncias e rudos, o que resultou num conjunto com 18 atributos de 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 data warehouse 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 de sigilo. As tabelas inicialmente armazenadas no servidor paralelo Oracle do NACAD/UFRJ foram agrupadas numa nica tabela, com 80 atributos e 147.478 registros. Aps a limpeza dos dados realizada por COSTA [11], o conjunto resultante ficou com 130.143 registros e 64 atributos, assim distribudos: 9 atributos com informaes de clientes, 33 atributos de caractersticas de famlia, 13 atributos de contratos de seguro, 15 atributos de componentes 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 dados avaliadas esto mostrados na Tabela 5.1. Nestes resultados, como as rvores geradas so binrias, o tamanho de cada rvore (nmero de ns) a medida da sua complexidade. Tamanho da rvore (ns) 105 183 267 Tempo de execuo (s) Java 717 379 39.006 Erro (%) 18,32 36,75 30,86

Base de dados Adult Meteorologia Seguro

Tabela 5.1 Resultados da implementao em Java Na Tabela 5.2 compara-se o desempenho do algoritmo PUBLIC implementado em Java e em PL/SQL.

Base de dados Adult Meteorologia Seguro

Tempo de execuo (s) Java 717 379 39.006

Tempo de execuo (s) PL/SQL 797 398 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 mining direciona-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 de microinformtica com Java. A caracterstica de poda integrada do algoritmo PUBLIC foi fundamental para o sucesso nas execues dos experimentos pois, devido capacidade de processamento do microcomputador, invivel aguardar o final da construo da rvore para grandes bases de dados no caso de ps-poda. Um ponto que ressaltou nos experimentos realizados foi o desempenho semelhante entre o Java e o PL/SQL. No incio deste trabalho alguns desenvolvedores experientes afirmaram que, neste tipo de aplicao, o Java seria muito mais lento que o PL/SQL. Este fato mostra que a utilizao do Java deve ser considerada em solues de data mining integradas com SGBD pois tambm garante aplicao uma grande portabilidade, uma vez que os principais bancos de dados comerciais j interagem com o Java. Os resultados desta implementao abrem possibilidades para pesquisas na rea de data mining incremental utilizando este tipo de plataforma, cujo conjunto aproximar-se-ia das necessidades das corporaes, onde a repetio de todo o processo de minerao para uma determinada base de dados devido incluso de novos registros computacionalmente onerosa. Referncias bibliogrficas [1] RASTOGI, R., SHIM, K., PUBLIC: A Decision Tree Classifier that Integrates Building and Pruning. In: Proceedings of the 24th International Conference on Very Large Databases (VLDB), New York, USA, 1998. http://www.belllabs.com/user/rastogi/pub.html. SHAFER, J., AGRAWAL, R., MEHTA, M., SPRINT: A Scalable Parallel Classifier for Data Mining. In: Proceedings of the 22nd International Conference on Very Large Databases (VLDB), Mumbai (Bombay), India, 1996. http://www.almaden.ibm.com/cs/quest/PUBS.html. MEHTA, M., RISSANEN, J., AGRAWAL, R., MDL-based Decision Tree Pruning. 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.

[2]

[3]

[4]

[5]

[6] [7]

[8] [9]

[10] [11]

BEZERRA, E., MATTOSO, M., XEXO, G., An analysis of the integration between data mining applications and database systems, In: Proceedings of the 2nd International Conference on Data Mining (Data Mining II), pp. 151160, Cambridge, UK, 2000. 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. QUINLAN, J. R., C4.5: Programs for Machine Learning, 7 ed., San Mateo, USA, Morgan Kaufmann Publishers, 1993. 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. ORACLE CORPORATION, Developing Stored Procedures In Java, Oracle Technical White Paper, Redwood Shores, USA, 1999. WITTEN, I. H., FRANK, E., Data Mining Practical Machine Learning Tools and Techniques with Java Implementations, 1st ed., San Francisco, USA, Morgan Kaufmann Publishers, 2000. UCI MACHINE LEARNING REPOSITORY. http:///www.ics.uci.edu/~mlearn/ MLRepository.html. 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.