Artigo SQL Magazine 10 - Explorando visualmente informações em grandes bases de dados utilizando a ferramenta FMDB

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Artigo da Revista SQL Magazine -Edição 10.

Atenção: por essa edição ser muito antiga não há arquivo PDF para download.
Os artigos dessa edição estão disponíveis somente através do formato HTML.

Clique aqui para ler todos os artigos desta edição

Explorando visualmente informações em grandes bases de dados utilizando a ferramenta FMDB

 

Um dos objetivos das organizações que utilizam sistemas computacionais é armazenar os dados coletados para que eles sejam utilizados em seus procedimentos. O problema é que muitas empresas acreditam que apenas armazenar esses dados lhes garante toda a informação necessária. Entretanto, muitos dos dados guardados são sub-utilizados, e na maioria das vezes nunca mais serão acessados.

Como modeladores e gerentes de bases de dados, é importante que nós analisemos esse panorama: esforço humano e gasto em armazenamento para coletar e guardar um volume crescente de dados que na maioria não serão utilizados novamente. O problema não está em guardar esses dados, que de fato ocultam muita informação útil mas sim, em não termos mecanismos apropriados para analisá-los. Daí a necessidade de utilização de técnicas automatizadas, ou ao menos semi-automatizadas que possibilitem recuperar informações relevantes.

Algumas análises podem ser obtidas nos sistemas de gerenciamento de bancos de dados (SGBDs) através de consultas SQL. Um exemplo típico é: “Quais são os produtos vendidos em uma concessionária de veículos que realizaram uma margem de lucro acima de 30%?”.

Por outro lado, se o interesse do gerente da concessionária é saber qual o relacionamento entre as vendas de diferentes produtos, outros tipos de consultas deveriam ser feitas. Exemplificando, constatações do tipo: “Quando o cliente troca o filtro de gasolina, existe uma probabilidade de 80% dele também trocar o filtro de ar”, poderiam ser levantadas se as tabelas de dados fossem exploradas por procedimentos estatísticos de análise. Complicando um pouco mais, uma informação realmente estratégica para a empresa seria descobrir quais são todos os pares de produtos que freqüentemente (mas nem sempre) são comprados juntos, ou melhor, com poucos dias de separação entre uma compra e outra. Veja que é possível existir muitos pares que ocorrem com freqüência sem que seja intuitivo descobri-los. Embora essa informação esteja na base de dados, ela está ocultada pelo grande volume de dados armazenados, e desenvolver um procedimento de análise para identificá-la não é uma tarefa trivial.

Neste contexto, esse artigo apresenta uma ferramenta para exploração visual de dados denominada FMDB (FastMap in Databases).

A Ferramenta FMDB

O FMDB é uma ferramenta para exploração visual de dados que utiliza a técnica FastMap para efetuar o mapeamento entre itens de dados quaisquer (espaciais, categóricos ou mesmo métricos) para um espaço euclidiano (ver nota 1). Para isto, é necessário que haja uma função de distância (ver nota 2) definida sobre esses dados. No entanto, nem todo espaço é euclidiano, o que implica na necessidade de mapeamento. Por exemplo, se você estiver numa cidade em que todas as ruas são quarteirões, a distância mais próxima para ir a algum lugar a partir de onde você está não é um caminho reto, mas a soma de cada trecho caminhado. Outro exemplo é quando uma coordenada não tem valores contínuos, mas discretos, como o cargo de funcionários de uma empresa (são atributos categóricos). 

 

Nota 1

Um espaço euclidiano é aquele que estamos acostumados, com três dimensões – altura, largura e profundidade – e onde a distância mais curta entre dois pontos é um caminho reto.

 

Nota 2

A função de distância é responsável por calcular quão semelhantes são dois objetos através da análise de seus atributos e, a partir deste cálculo, gerar uma distância no espaço euclidiano entre eles. Os atributos utilizados pela função de distância podem ser quaisquer dados: numéricos (contínuos ou discretos), datas (considerando a contagem de dias a partir de uma data-referência), dados similares (por exemplo, que cargo é mais parecido: um gerente e um diretor, ou um gerente e um manobrista?) ou textuais (considerando a função Ledit, a qual indica o número mínimo de caracteres inseridos, removidos ou substituídos para transformar uma palavra em outra. A diferença entre ‘gato’ e ‘rato’ é um, pois a troca de uma letra muda uma em outra, e a diferença entre gato e garfo é dois, pois troca-se uma letra e insere-se outra). Por exemplo, uma função de distância que envolva os atributos {preço, código} usa a diferença entre o valor numérico de preço e a diferença Ledit de código para definir quão diferentes são dois dados armazenados. Estes dados ainda podem ser ponderados, normalizados, e/ou utilizados em escala linear ou logarítmica. A função de distância criada é então utilizada para indicar o relacionamento entre os itens de dados, guiando a geração de um gráfico em três dimensões.

 

Suponha que você queira verificar se existe uma tendência entre o tempo de permanência de um empregado na empresa e seu salário. Como o tempo de permanência e o salário são números contínuos, você pode traçar a curva de tempo de permanência versus salário, e provavelmente vai perceber que com o aumento do tempo, o salário tende a aumentar. E se você quiser ver o relacionamento entre salário e cargo? Como cargo não é um valor contínuo (mas categórico), o máximo que se pode fazer é traçar gráficos de barras, tortas etc. Mas, e se você quiser cruzar isso com o tempo de permanência? E com outros fatores? O objetivo do FMDB é justamente imaginar que cada atributo pode ser tratado como uma coordenada em algum espaço e mapear esse espaço para um espaço euclidiano tri-dimensional. Com isso podemos usar nossa habilidade de interpretação visual para analisar os dados que as empresas armazenam e descobrir, minerar visualmente, a informação oculta. Assim, o FMDB permite ao analista perceber como os itens de dados estão relacionados, quais são os padrões envolvidos e detectar agrupamentos e elementos de exceção.

 

Nota

O FMDB está sendo desenvolvido em uma parceria entre o Laboratório de Bases de Dados e Imagens (GBdI) coordenado pelo Prof. Caetano Traina Jr. do Departamento de Ciências de Computação e Estatística da USP no Campus de São Carlos, SP; e o Database Group coordenado pelo Prof. Christos Faloutsos da Carnegie Mellon University, em Pittsburgh, Pennsylvania, nos EUA.

Visualização de Dados

A ferramenta FMDB utiliza a técnica FastMap, proposta originalmente pelo Prof. Faloutsos (Faloutsos & Lin 1995), que efetua o mapeamento entre itens de dados quaisquer (espaciais, categóricos ou mesmo métricos) para um espaço euclidiano (visual), desde que haja uma função de distância definida sobre esses dados.

 

Nota

A técnica FastMap foi apresentada à comunidade cientifica em  Faloutsos, C. and K.-I. D. Lin (1995). FastMap: A Fast Algorithm for Indexing, Data Mining and Visualization of Traditional and Multimedia Datasets. ACM International Conference on Data Management (SIGMOD), San Jose, CA, ACM Press. Vale destacar que a SIGMOD (Special Interest Group in Management Of Data) é a principal conferência em banco de dados da ACM (Association for Computing Machinery).

 

Na ferramenta FMDB, o algoritmo FastMap é utilizado de maneira que um dado conjunto de informações n-dimensional, onde n é o número de atributos da tabela, tenha seu número de dimensões reduzido para 3, garantindo que cada dimensão resultante seja contínua. De maneira geral, a utilização básica da ferramenta FMDB corresponde à execução dos seguintes passos:

 

1- Escolher uma base de dados relacional;

2- Definir as tabelas da base que serão utilizadas no processo de análise;

3- Selecionar os atributos que irão compor a visualização;

4- Definir os parâmetros da visualização (cores etc.);

5- Observar e interagir com a visualização resultante.

 

Para exemplificarmos o uso da ferramenta, utilizamos dados de domínio público que estão disponíveis em:

 

·         Machine Learning Repository da Universidade da Califórnia em Irvine (ftp://ftp.ics.uci.edu/pub/machine-learning-databases/breast-cancer-wisconsin) Neste local estão disponíveis diversos conjuntos de dados. Aqui utilizamos o conjunto BreastCancer, que guarda 11 atributos de exames de pacientes com suspeita de câncer de mama obtidos no Hospital Universitário da Universidade of Wisconsin, Madison.

·         Câmara dos Deputados: dados colhidos como resultado de 15 votações realizadas entre 20/03/2002 e 18/06/2002 pelos deputados federais no Congresso Nacional (http://www.camara.gov.br/internet/plenario - variando de lv1760 a lv1781). Deve-se escolher “ Resultado da votação eletrônica e lista de presença” e depois escolher as votações de cada data desejada.

 

Para facilitar a criação dos exemplos os dois bancos de dados, no formato Paradox, estão disponíveis para download no site da revista.

A seguir percorreremos cada um dos 5 passos colocados acima, lembrando que se pode retornar aos passos anteriores a qualquer momento da execução do FMDB.

 

Figura 1. Interagindo com a janela principal do FMDB.

 

Passo 1 - Escolha de uma base de dados

A Figura 1 mostra a tela principal do FMDB. Ela guia o usuário na execução dos primeiros passos na utilização da ferramenta. Inicialmente, uma lista das conexões com bases de dados registradas no BDE ou ODBC é apresentada ao usuário (destaque 1 na Figura 1).

 

Passo 2 - Definição das tabelas da base que serão utilizadas

Depois que a base de dados é escolhida, uma lista de todas as suas tabelas é apresentada e uma tabela base é então escolhida pelo usuário (destaque 2 na Figura 1), neste caso, a BreastCancer. A tabela base é aquela que centralizará os processos de visualização que serão efetuados. A partir dela, outras tabelas podem ser acessadas desde que tenham uma ligação de chave estrangeira com ela (ou com outras já ligadas), gerando uma tabela de trabalho denominada tabela operacional.

 

Passo 3 - Seleção dos atributos para compor a visualização

Neste passo, os atributos da tabela (disponíveis no destaque 3 da Figura 1) são selecionados para fazerem parte do conjunto de atributos que devem ser usados para criar a visualização (destaque 4 da Figura 1). Além de selecionar atributos da tabela base, também é possível selecionar atributos resultantes de comandos “GROUP BY” usando sum, min, max, avg e count.

A ferramenta FMDB permite que o usuário prossiga incluindo tabelas adicionais para compor a tabela operacional que poderá então ser mapeada/visualizada. A opção de junção está disponível por meio do botão “Join tables” (destaque 5 da Figura 1).

 

Passo 4 - Definição dos parâmetros da visualização

Nesta ferramenta, cada linha da tabela base é representada através de um ponto. Neste passo o analista escolhe como (por exemplo, cor e formato) ele quer que os pontos representem os dados que sejam de seu interesse. Uma opção interessante é escolher um dos atributos disponíveis como “classificador” (destaque 6 da Figura 1), fazendo com que linhas pertencentes a diferentes classes sejam representadas em diferentes cores e formatos na visualização.

Da mesma maneira, um atributo pode ser selecionado como referência para o tamanho dos pontos visualizados. Ou seja, tendo definido um atributo como base, o tamanho dos pontos na tela irão variar de acordo com diferença existente entre o atributo de um determinado ponto e o valor do atributo base. A escala de variação de tamanho é baseada no valor definido pelo usuário no campo “Maximum dot size” (destaque 7 da Figura 1).

Como o mapeamento dos objetos da base para o espaço cartesiano é realizado através da distribuição de distâncias entre os mesmos, é importante definir a função de distância para os objetos e atribuir a cada atributo pesos variados. Isso é feito através dos controles marcados no destaque 8 da Figura 1. A tela principal mostra apenas o peso atribuído a cada atributo selecionado. Clicando-se no peso de um dado atributo com o botão direito, abre-se uma janela específica para tratar das opções desse atributo (Figura 2). Através dessa janela, o usuário pode indicar que um atributo é mais importante do que outros, aumentando seu peso (destaque 1 da Figura 2), ou vice-versa. Também é possível realizar outras operações sobre os valores de um determinado atributo, como por exemplo, compensar variações muito grandes das faixas de valores, trabalhando seu logaritmo (destaque 2 da Figura 2). A definição da função de distância para os objetos é realizada conforme o destaque 3 da Figura 2. As opções são as funções padrão Euclidiana, Manhattan (que corresponde a distância em quarteirões), distâncias de projeções (Chebychev), ou mesmo funções definidas pelo usuário.

 

Figura 2. Janela de propriedades do atributo BARE_NUCLEI.

 

Passo 5 - Visualização interativa do resultado

Terminado o passo 4, é possível visualizar os dados por meio do botão “View” (destaque 5 da Figura 1). No exemplo da Figura 3 foram escolhidos 9 atributos dos 11 existentes. É importante ressaltar que, graças ao algoritmo FastMap, todos os atributos contribuem para a composição das 3 dimensões finais, e neste exemplo onde o peso foi mantido igual a 1 para todos os atributos, os nove atributos contribuem da mesma maneira. Sem realizar redução de dimensionalidade, só poderíamos visualizar 3 atributos por vez e não seria possível ter uma idéia global do conjunto de atributos sem utilizar cálculos complexos e custosos.

A janela do módulo visualizador da ferramenta é mostrada na Figura 3. A visualização gerada pode ser explorada e manipulada interativamente através de translação, rotação e escala.

 

 

Figura 3. Explorando a visualização dos dados da tabela breastcancer.

 

O módulo visualizador é composto basicamente de duas apresentações: visualização estática dos dados mapeados (janela 1 da Figura 3) e visualização dos dados transformados pelo processo interativo (janela 2 da Figura 3). A primeira janela apresenta um cubo tridimensional que delimita os pontos mapeados mostrados na segunda visualização. Através de movimentos de rotação, translação e escala realizadas com o mouse sobre esse cubo, o usuário pode observar a nova disposição dos dados e assim analisá-los sob diferentes ângulos, posicionamentos e aproximações.

A Figura 3 apresenta a visualização dos dados de exames de pacientes com suspeita de câncer de mama do conjunto BreastCancer, considerando o atributo CLASS como classificador. A ferramenta atribui automaticamente uma cor e um formato de ponto para cada classe, e indica qual cor e formato representa cada classe na legenda “Classes” disponível logo abaixo na janela de visualização. Se quiser, o usuário pode clicar no botão “Customize” ao lado dessa janela e escolher outra cor ou formato para os pontos. A visualização resultante permite a identificação de pelo menos um agrupamento bem definido, que é aquele dos exames que foram classificados como benignos (em vermelho na Figura 3), e podem ser usados para ajudar a classificar um novo resultado. Por exemplo, se mapearmos os resultados de um novo exame, já poderíamos ter uma boa idéia para classificá-lo como benigno ou maligno apenas olhando onde ele seria representado.

Em alguns casos é interessante identificar um determinado ponto ou subconjunto de pontos da visualização, tal como obter a identificação do paciente correspondente a um determinado ponto no espaço visualizado. Esta funcionalidade está disponível por meio do botão Select (destaque 1 da Figura 4).

 

Figura 4. Efetuando o mapeamento inverso a partir da visualização.

 

Agora analisaremos o conjunto de dados referentes às votações da Câmara dos Deputados realizadas entre 20/03/2002 e 18/06/2002, considerando apenas os deputados presentes. Aqui usamos o partido de cada deputado como o atributo classificador. Assim, cada deputado aparece como um ponto na cor e forma associada ao seu partido. Pelos resultados apresentados pelo FMDB, pode-se analisar questões como coesão partidária e até mesmo reconhecer quais deputados não estão votando conforme a orientação de seus partidos.

Para gerar a visualização mostrada na Figura 5, foi solicitado que se visualizasse somente os resultados de votações dos partidos PFL (elementos verdes), PSDB (elementos azuis) e PT (elementos vermelhos). Pode-se observar que grande parte dos congressistas petistas está agrupada e separada dos congressistas pefelistas e psdbistas. Porém, alguns petistas estão mais afastados de seu grupo e há mesmo até alguns poucos que se comportam como os congressistas do PFL e PSDB. Note que essa figura é calculada geometricamente, utilizando uma expressão matemática que se baseia exclusivamente no voto que cada deputado deu para cada uma das 15 matérias votadas no período em questão. Não existe aqui nenhuma interferência proveniente de fatores subjetivos.

 

Figura 5. Explorando a visualização dos dados da tabela PolíticosBR para os partidos ‘PT’, ‘PSDB’ e ‘PFL’.

 

Como esta ferramenta é voltada fundamentalmente para a análise interativa dos dados, existem muitas opções que o analista pode usar para explorá-los. Por exemplo, outros partidos políticos poderiam ser escolhidos e comparados. Poder-se-ia dar pesos diferentes para cada um dos diversos assuntos votados, ou escolher outros conjuntos de leis, ou mesmo estabelecer regras para trabalhar com estatísticas que envolvessem cada deputado e seu suplente, além de outras possibilidades. Pode-se também trabalhar com sub-conjuntos de pontos (deputados), e analisar cada grupo separadamente. Obviamente, cada um dos “pontos” pode ser identificado pelo nome do respectivo deputado.

 

Figura 6. Alterando dinamicamente a visualização dos dados da tabela PolíticosBR para os Partidos ‘PT’, ‘PSDB’ e ‘PFL’.

 

Entre outras opções disponíveis na ferramenta, é possível também acompanhar todas as sentenças SQL e os parâmetros passados por ela (menu “Tools”, item “Show SQL”). Assim, profissionais de informática podem verificar as consultas que a ferramenta faz na base de dados.

Conclusão

Os testes efetuados até aqui no FMDB têm sido motivantes a partir do momento que ele tornou possível a descoberta de algumas informações nos dados que anteriormente não haviam sido sequer cogitadas.

A ferramenta é free e ainda está em desenvolvimento. Atualmente está sendo construído um novo módulo que permitirá a análise de dados que mudam com o tempo. Isso facilitará acompanhar a evolução dos dados que estejam sendo coletados.

A versão atual e seu manual estão disponíveis na seção de downloads no site do Grupo de Bases de Dados e Imagens do ICMC/USP em http://gbdi.icmc.usp.br, onde também serão mantidas as novas versões. 

 

Prof. Dr. Caetano Traina Júnior (caetano@icmc.usp.br) é Professor Associado (livre-docente) do Departamento de Ciências de Computação do ICMC-USP e pesquisador na área de banco de dados. Seus interesses incluem o suporte a dados não convencionais em bancos de dados, tais como imagens, áudio e séries temporais, bem como técnicas de mineração de dados e suporte informacional a aplicações da área médica. Realizou estágio de pós-doutoramento na Carnegie Mellon University, é autor de mais de 140 publicações nacionais e internacionais na área de banco de dados, e já orientou mais de 30 trabalhos de mestrado e doutorado.

Profa. Dra. Agma Juci Machado Traina (agma@icmc.usp.br) é Professora Associada (livre-docente) do Departamento de Ciências de Computação do ICMC-USP e pesquisadora na área de Processamento de Imagens e Indexação de Dados Multimídia. Seus interesses incluem o tratamento de imagens de exames médicos e sistemas de visualização de dados científicos, bem como mineração de dados multimídia e aplicações na área médica. Realizou estágio de pós-doutoramento na Carnegie Mellon University, é autora de mais de 120 publicações nacionais e internacionais na área de Imagens e Banco de Dados, e já orientou mais de 15 trabalhos de mestrado e doutorado.

Humberto Razente (hlr@icmc.usp.br) é responsável pela manutenção dos sistemas computacionais do Laboratório de Banco de Dados e Imagens do Departamento de Ciências de Computação do ICMC-USP e pelo suporte à construção de aplicativos envolvendo bancos de dados, imagens e mineração de dados. Atualmente está engajado em programa de mestrado no ICMC-USP.

Ms. Maria Camila Nardini Barioni (mcamila@icmc.usp.br) é aluna de doutorado do Programa de Pós-Graduação em Ciências de Computação e Matemática Computacional do ICMC-USP. Seus interesses incluem o acesso a dados não convencionais em bancos de dados e mineração de dados, incluindo técnicas de realimentação de interesse para navegação e visualização de grandes volumes de dados multimídia.

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?