Uma Abordagem Baseada em Componentes - mtc-m16c:80

Propaganda
XII Workshop de Computação Aplicada - WORCAP 2012
Um Framework Baseado em Componentes para Aplicações de
Descoberta de Conhecimento em Banco de Dados
Wanderson Gomes de Almeida1, Walter Abrahão dos Santos2,
Fernando Manuel Ramos2
1
Programa de Mestrado em Computação Aplicada – CAP
Instituto Nacional de Pesquisas Espaciais – INPE
2
Laboratório Associado de Computação e Matemática Aplicada – LAC
Instituto Nacional de Pesquisas Espaciais – INPE
[email protected], {walter.abrahao,fernando}@lac.inpe.br
Resumo. A pesquisa de eventos climáticos tem grande importância nas
políticas de tomada de decisões e tem um impacto social e econômico. O
desenvolvimento de ferramentas eficazes para suporte deste processo é
altamente desejável, sobretudo se elas provêm visualização de fenômenos. Este
trabalho apresenta uma ferramenta que apoia as etapas de descoberta de
conhecimento em banco de dados em séries espaço-temporal, ou seja préprocessamento, mineração de dados (DM) e pós-processamento. A ferramenta,
aqui denominada de ERB-ArrayTools, foi desenvolvida em Java utilizando
soluções de código aberto como componentes e prototipada para consultas
SQL de estatísticas espaço-temporal de conjuntos de dados disponíveis na web
a partir do Centro Nacional de Pesquisa Atmosférica da agência de
Administração Nacional do Oceano e da Atmosfera (NOAA), contribuindo
para aumento de produtividade na análise e visualização de dados.
Palavras-chave: Desenvolvimento Baseado em Componentes, Software Aberto,
KDD, Mineração de Dados, NetCDF, Visualização Científica, Séries EspaçoTemporal.
Abstract. Research in the area of weather events is quite important for decision
making policies and has both social and economic impacts. The development of
effective tools for supporting this process is highly recommended as they
increase productivity and reliability mainly if they provide phenomena
visualization. This paper presents a tool addressing the phases of knowledge
discovery in databases for temporal-spatial series that is pre-processing, data
mining (DM) and post-processing. The tool, here named ERB-ArrayTools, has
been developed in Java employing component-based open source solutions and
prototyped for dealing with time-spatial statistical SQL queries from datasets
available over the web from the National Center for Atmospheric Research of
the National Oceanic and Atmospheric Administration (NOAA) catering to
higher productivity on data analysis and visualizations.
Key-words: Component-Based Development, Open Software, KDD, Data
Mining, NetCDF, Scientific Visualization, Space-Time Series.
1. Introdução
Mudanças climáticas envolvem um dinamismo mais complexo do que a simples
elevação da média térmica, por exemplo. Por este motivo, tipicamente estes fenômenos
possuem um comportamento de reação em cadeia que deve ser avaliado em profundidade
XII Workshop de Computação Aplicada - WORCAP 2012
através da interpretação dos dados quantitativos e qualitativos e que podem ter impacto
em perdas e prejuízos sócio-ambiental. Esta interpretação requer técnicas que buscam
transformar os dados armazenados de diversas séries históricas em conhecimento para
posterior análise.
Um ferramental que facilite estudos de mudanças climáticas é essencial pela
diversidade de formatos de dados envolvidos que usualmente necessitam de uma fase de
pré-processamento geralmente tediosa. O desenvolvimento softwares neste contexto deve
gerar resultados que satisfaçam as necessidades de usuários deste domínio. Por este
motivo, é sempre desejável a construção de softwares que resultem num conjunto de
artefatos flexíveis, incluindo modelos e que muitas vezes podem ser utilizados em outras
aplicações semelhantes. Este argumento é baseado no que a Engenharia de Software
preconiza como reutilização de software e em particular desenvolvimento baseado em
componentes.
Este trabalho explora a abordagem de componentes como uma alternativa para a
obtenção de soluções reutilizáveis para o processo de desenvolvimento de software,
visando maior produtividade e menor custo. A aplicação aqui abordada lida com o
processo de Descoberta de Conhecimento em Banco de Dados, do inglês Knowledge
Discovery in Databases (KDD) [Botia et al., 2002].
O processo de KDD é a descoberta da informação útil e implícita em grandes bases
de dados e em geral emprega técnicas de DM. Para se obter estas informações, foi
desenvolvido um aplicativo em Java, chamado ERB-ArrayTools, como protótipo
utilizando a abordagem DBC capaz de realizar o pré-processamento, a mineração e o
pós-processamento possibilitando KDD para os estudos da meteorologia e do clima.
Este artigo é organizado da seguinte forma. A seção 2 introduz o processo KDD. A
seção 3 apresenta alguns conceitos de engenharia baseada componentes. A seção 4 trata
da arquitetura proposta e descreve um estudo de caso relatando o resultado encontrado.
Na Seção 5 são apresentados os trabalhos futuros seguido das conclusões finalizando este
trabalho na seção 6.
2. KDD – O Processo de Descoberta de Conhecimento
O processo de KDD é composto de três grandes fases, mostradas na Figura 1: (1)
Pré-processamento que contempla a seleção, o processamento e a transformação; (2) DM
para o descobrimento de padrões nos dados e, (3) Pós-processamento que contempla os
padrões, a visualização e interpretação do conhecimento descoberto.
Figura 1. KDD e suas 3 fases essenciais [Paiva, 1996].
Na fase de pré-processamento são utilizadas as funções responsáveis pela captação,
organização e tratamento dos dados. Esta fase tem como objetivo a preparação dos dados
para os algoritmos da fase seguinte, a mineração de dados [Paiva, 1996].
A DM é a principal fase do processo de KDD. Nesta fase se aplica técnicas e
algoritmos em busca de conhecimentos úteis sobre os dados do problema. Dentre as
XII Workshop de Computação Aplicada - WORCAP 2012
principais técnicas existentes citam-se: Redes Neurais, Algoritmos Genéticos, Modelos
Estatísticos e probabilísticos [Goldschmidt, 2005].
A escolha da técnica de DM depende do tipo de tarefa a ser realizada no KDD,
como por exemplo, a Descoberta de Associação, a Classificação, a Regressão, a
Clusterização, a Sumarização, a Detecção de Desvios, a Descoberta de Sequências e a
Previsão de Séries Temporais.
Finalmente, a fase de pós-processamento é responsável pelo tratamento do
conhecimento obtido na DM visando a utilidade do conhecimento descoberto [Fayyad et
al., 1996]. As principais funções desta fase são a elaboração, organização e a
simplificação do conhecimento obtido, a construção de gráficos, diagramas, relatórios
demonstrativos e entre outros cruciais para uma possível tarefa de tomada de decisão.
3. A Engenharia de Software Baseado em Componentes
A principal motivação para emprego de Desenvolvimento Baseado em
Componentes (DBC) são as mudanças que ocorrem com a tecnologia da computação,
como na computação distribuída e no desenvolvimento para WEB. Define-se em
[Sametinger, 1997] que, de forma abrangente, “componentes de software reutilizáveis
são artefatos auto-contidos, claramente identificáveis, que descrevem ou realizam uma
função específica e têm interfaces claras, documentação apropriada e um grau de
reutilização definido”.
Para o emprego de DBC, atualmente existem várias Interfaces de Programação de
Aplicativos, do inglês, Application Programming Interfaces (APIs) e Ambiente de
Desenvolvimento Integrado, do inglês, Integrated Development Environment (IDEs) que
fornecem interfaces padrão permitindo que terceiros possam criar os seus plug-ins de
forma a interagir com a aplicação principal, como por exemplo, o Eclipse, o NetBeans, o
jEdit, entre outros.
Algumas vantagens do uso de componentes são a confiança nos componentes, pois
estes foram utilizados e testados em outros sistemas; os erros serão detectados mais
rapidamente, minimizando os riscos do projeto; consegue-se estipular o custo com os
componentes, facilitando a gerência do projeto.
O uso de componentes na arquitetura utilizada favorece o encapsulamento destes e
a sua modificação. Entretanto, um grave problema pode ocorrer ao utilizar um
componente que não tenha o código-fonte disponível, pois se o sistema requisitar
mudanças, os custos de projetar e implementar o componente pode inviabilizar sua
utilização [Oliveira & Paula].
A construção de aplicativos computacionais dentro da área de KDD requer que
analista e programador de projetos busquem facilitar o acesso às ferramentas de KDD e
Inteligência Artificial. Isto porque a utilização de técnicas de KDD sem um ambiente
iterativo e simples torna o processo inviável a um usuário que não tenha grandes
conhecimentos técnicos. Dificuldades estas agravadas ainda mais devido à necessidade
de treinamentos dentre os vários sistemas distintos com seus diversos algoritmos
necessários no processo de KDD. Por isso a solução aqui adotada é a componentização.
Dentro deste contexto, a utilização de uma arquitetura baseada a componentes na
construção de sistema apresenta grandes vantagens, visto que é necessário apenas lidar
com aspectos de interface entre componentes responsáveis pelas várias técnicas de KDD
no formato de plug-ins. Desta forma, usuários exigirão apenas um treinamento focado o
que aumenta sua usabilidade, produtividade e confiabilidade no processo de KDD.
XII Workshop de Computação Aplicada - WORCAP 2012
4. Proposição e Resultados Iniciais da Arquitetura Componentizada
O sistema ERB-ArrayTools proposto foi implementado utilizando a abordagem
DBC com a integração de quatro grandes componentes: (1) componente para Análises
Estatísticas Matriciais (AEM) em MatLab, (2) ChronosGIS, (3) NetCDF-Java e (4) IDV.
Para isso, foi necessária a adaptação destes componentes e suas interfaces visando sua
integração. Este sistema é um framework agregador que interage com o usuário e integra
os demais componentes. Na Figura 2 é apresentada a arquitetura proposta mapeada no
processo KDD e seus principais componentes integrados.
Figura 2. ERB-ArrayTools e seus componentes mapeados para KDD.
O componente ChronosGIS é responsável pelo pré-processamento realizando a
carga dos dados espaço-temporal de um arquivo NetCDF, do inglês Network Common
Data Form, obtido via FTP [NOAA, 2012] da NOAA para um banco de dados PostGIS
facilitando o acesso e manipulação destes dados. Este componente é uma evolução do
software de mesmo nome desenvolvido pelos alunos Almeida e Borges, Santos e
publicado em um artigo para o WORCAP do ano de 2011 [ALMEIDA et al., 2011 ]. A
Figura 3 mostra as tabelas criadas no banco de dados PostGIS utilizando dados espaçotemporal de temperatura via componente ChronosGIS.
Figura 3. Tabelas espaço-temporal de temperatura em ChronosGIS
Com a exportação dos dados do arquivo NetCDF para o banco de dados PostGIS é
possível a realização de estatísticas básicas levando-se em consideração a localização
geográfica das informações analisadas, o que não era possível com as informações
empacotadas no formato netCDF. Como exemplo de utilização, a consulta SQL abaixo
faz aquisição das estatísticas de temperatura e gera sua saída de resultados na Tabela 1.
SELECT AVG(air) temperatura_media, MIN(air) temperatura_min,
MAX(air) temperatura_max, STDDEV(air) desvio_padrao,
VARIANCE(air) variancia
FROM
noaa_point, noaa_data
WHERE (noaa_point.id = noaa_data.point_id)
AND point_degree BETWEEN '32.5W5.0N' AND '75.0W30.0S'
AND time_date BETWEEN '2000/01/01' AND '2006/12/01'
XII Workshop de Computação Aplicada - WORCAP 2012
Tabela 1. Estatística espaço-temporal pelo componente ChronosGIS.
Temperaturas
Média
Mínima
Máxima
Desvio Padrão
Variância
22.373
-8.721
31.868
5.185
26.889
Com a facilidade de manipulação de dados, o ChronoGIS permite salvá-los em um
arquivo texto e exportá-los em um novo arquivo NetCDF pré-processado. Para isso, é
necessário que o usuário realize uma filtragem espaço-temporal da informação que lhe
interessará no KDD. O ERB-ArrayTools provê ao usuário a escolha de janelas de datas e
coordenadas para filtragem da massa inicial dos dados a ser usada na fase seguinte de
DM. Adicionalmente, o ERB-ArrayTools possibilita uma interface onde o usuário abri
um arquivo texto com os dados pré-processados obtidos do CPTEC/INPE, por exemplo.
Usando jargão de genética, a Tabela 2, mostra um conjunto de dados de expressão
filtrados pelo usuário enquanto a Tabela 3 define descritores de experimento envolvendo
dados climáticos oriundos de cidades da Amazônia.
Tabela 2. Conjunto de dados de expressão filtrados espaço-temporalmente.
Coordenadas
Unique ID
Janeiro00
Fevereiro00
Marco00
32.5W5.0N
1
0.533288061
0.488976361
0.044804371
35.0W5.0N
2
-0.273295616
0.314799153
-1
37.5W5.0N
3
0.559329225
0.525230441
-0.390690715
Tabela 3. Descritor de dados climáticos oriundos de cidades da Amazônia.
Patient Array
Humaita
Manicore
Obidos
Índice integrado
Janeiro00
2
1
1
1
Fevereiro00
1
1
1
1
Marco00
1
1
1
1
Para a fase de mineração destes dados, foi desenvolvido o componente AEM com
o uso a biblioteca Matlabcontrol versão 4.0 [Matlabcontrol, 2012] para a realização de
cálculos estatísticos matriciais. Esta implementação trata da evolução do código legado
de um projeto descontinuado chamado Array Statistical Analysis System (ASAS)
[Carvalho et al., 2011]. O componente AEM aplica a técnica de Microarray de DNA nos
dados pré-processados e plota os resultados estatísticos obtidos. Na tabela 4 é
apresentado uma amostra dos resultados encontrados da “Classe A x B” para o descritor
“Humaita” mostrado na tabela anterior.
Tabela 4. Estatísticas de classes usadas na mineração de dados climáticos.
Classes_A_x_B
P-Values
T-Scores
PFDR
Q-Values
PFDRBH
32.5W5.0N
0.486796
0.636839
0.151201
0.149935
0.712212
35.0W5.0N
0.569566
0.510339
0.161872
0.161872
0.768913
37.5W5.0N
0.344869
-0.88859
0.131561
0.130503
0.619906
O componente seguinte, NetCDF-Java, é fornecido pela [UNIDATA, 2012] e seus
resultados são armazenados em um novo NetCDF para visualização pelo recurso de
GridView e ImageView disponíveis neste componente [NetCDF-Java, 2012]. Este novo
arquivo NetCDF também poderá ser visualizado pelo componente de visualização em 3D
chamando Integrated Data Viewer (IDV) disponível no site [IDV, 2012]. A Figura 4
apresenta as plotagens dos resultados estatísticos gerados pelo componente AEM e as
visualizações dos arquivos NetCDF com os resultados obtidos.
XII Workshop de Computação Aplicada - WORCAP 2012
Figura 4. Componentização de ferramentas de visualização após mineração de dados.
Para o funcionamento do componente IDV foi necessária a instalação do Java
Development Kit versão 6 e da API Java 3D disponibilizados pela Oracle nos sites
[JavaJDK, 2012] e [Java3D, 2012]. A Figura 5 apresenta um esquema de como estes
componentes interagem.
Figura 5. Esquema de integração dos componentes do sistema.
Diversas outras APIs de arquivos NetCDF também podem ser encontradas no site
NOAA disponíveis em [EPIC, 2012], como por exemplo podemos citar: (1) DapperM Uma interface de Matlab para Dapper - Serviço de dados de um OPeNDAP in-situ; (2)
ncBrowse - Navegador e visualizador de NetCDF e OpeNDAP; (3) MultiView Visualizador de meta arquivos Plot Plus; (4) OceanShare - Ferramenta colaborativa para
fornecer acesso local e de rede de dados oceanográficos; (5) Java OceanAtlas (JOA) Aplicativo para visualização e manipulação de dados de perfis oceanográficos e (6)
NdEdit - Ferramenta interativa para selecionar graficamente e sub-configurar grandes
coleções de dados in-situ.
5. Trabalhos Futuros
Por este sistema ser baseado em componentes, podem-se agregar diversas outras
funcionalidades, algumas são citadas a seguir: (1) Melhorias na interface principal de
acordo com as necessidades do usuário, (2) Maior exploração do componente
ChronosGIS para armazenamento e acesso à base de dados, (3) Transcrição código
Matlab, proprietário, para Octave, sistema totalmente livre e independente de plataforma,
(4) Adição de novas formas de visualização e melhorar as já existentes e (5) Realização
de cálculos estatísticos com ou sem a utilização de scripts como é feito no GrADS.
XII Workshop de Computação Aplicada - WORCAP 2012
6. Conclusões
A adoção de Desenvolvimento Baseado em Componentes neste trabalho foi
oportuna devido ao ineditismo do framework ERB-ArrayTools que agrega diversas
ferramentas isoladas e comprometidas às fases do processo de KDD. Isto envolveu
extensa pesquisa e experimentação de componentes, adaptação de existentes e mesmo
escrita de novos componentes respeitando todos os detalhes de interface entre os mesmos
e o agregador. O framework atual possui quatros componentes: (1) AEM, para análises
estatísticas matriciais em MatLab, (2) ChronosGIS, (3) NetCDF-Java e (4) IDV.
Entretanto ele provê extensibilidade, visto que se podem agregar novas técnicas de KDD
na forma de novos componentes respeitando apenas os detalhes de interface.
Adicionalmente, permite o aumento na testabilidade, reusabilidade e, consequentemente,
rapidez na escrita de cada componente.
Neste trabalho, primou-se pela área de visualização de dados científicos como
coadjuvante ao processo de KDD, pois com uma grande massa de dados, é muito fácil
perder o senso comum dos mesmos. Nisto a visualização adiciona uma dimensão extra ao
processo de KDD, auxilia na interpretação dos dados extraídos e permite experimentação
de cenários acelerando a tarefa de análise de mudanças climáticas por exemplo.
Referências
Almeida, W. G. D.; Borges, M. E. G.; Santos, P. L. B. D.; Anochi, J. A.; Santos, W. A. D.
Automação do Pré-processamento de Séries Temporais de Dados da NOAA para
Mineração de Dados. In: Workshop dos Cursos de Computação Aplicada do INPE,
11. (WORCAP), 2011. Anais... São José dos Campos: INPE, 2011.
Carvalho, O. L. Júnior, C. R. Ruivo, H. M. Array Statistical Analysis System (A.S.A.S).
Código-fonte legado de projeto conjunto da Universidade Federal de Itajubá (UNIFEI)
e Instituto Nacional de Pesquisas Espaciais (INPE), 2011.
EPIC. Pacific Marine Environmental Laboratory. Disponível em:
<http://www.epic.noaa.gov/epic/software/ep_java.htm> Acessado em 30 de agosto de
2012.
FAYYAD, U.M. et al. Advances in Knowledge Discovery and Data Mining. California:
AAAI Press, 1996.
FAYYAD, U.; PIATETSKY-SHAPIRO, G.; SMYTH, P. From data mining to
knowledge discovery: an overview. In: FAYYAD, U.; PIATETSKY-SHAPIRO, G.;
SMYTH, P; UTHHURUSANY, R., Eds., Advances in knowledge discovery.
Cambridge: MIT Press, 1996, p. 1-36.
GOLDSCHMIDT , R.; PASSOS, E.. Data Mining: um Guia Prático. 1ª ed: Campus,
2005
IDV. Integrated Data Viewer. Disponível em:
<http://www.unidata.ucar.edu/software/idv/#home >. Acessado em 30 de ag. de 2012.
JavaJDK. Java SE 6 Update 35. Disponível em:
<http://www.oracle.com/technetwork/java/javase/downloads/index.html>. Acessado
em 30 de agosto de 2012.
Java3D. Java 3D 1.1.3 API Install Notes. Disponível em:
<http://www.oracle.com/technetwork/java/javase/java3d-install-139068.html>.
Acessado em 30 de agosto de 2012.
Matlabcontrol.
A
Java
API
to
interact
with
MATLAB.
Disponível
em
XII Workshop de Computação Aplicada - WORCAP 2012
<http://code.google.com/p/matlabcontrol/> Acessado em 30 de agosto de 2012.
NetCDF-Java. NetCDF-Java library version 4.2.32 . Disponível em:
<http://www.unidata.ucar.edu/software/netcdf-java/>. Acessado em 30 de ag. de 2012.
NOAA. About NOAA. National Oceanic and Atmospheric Administration. United
States Department of Commerce. Disponivel em: <http://www.noaa.gov/aboutnoaa.html >. Acesso em: 30 de agosto de 2012.
Oliveira, F. C. Paula, L. L. Engenharia de Software baseada em componentes: uma
abordagem prática em ambientes Web. Monografia. Curso de Ciência da
Computação. Departamento de Ciência da Computação. Universidade de Brasília.
Brasília, 2009.
Paiva, C. Técnicas de Construção de Aplicações Dirigida a Componentes “Um
Estudo de Casos em um Sistema de KDD”. Monografia. Curso de Ciência da
Computação. Faculdade de Jaguariúna. Jaguariúna, 2006.
UNIDATA. Unidata Overview. Disponível em: <http://www.unidata.ucar.edu>. Acessado
em 30 de agosto de 2012.
Download