data miningdata mining e ee e data warehousingdata ... · criação dos modelos de dados ......

110
Data Mining Data Mining Data Mining Data Mining e e e e Data Warehousing Data Warehousing Data Warehousing Data Warehousing da exploração de dados à descoberta de informação da exploração de dados à descoberta de informação da exploração de dados à descoberta de informação da exploração de dados à descoberta de informação Cláudia Antunes (Professora Auxiliar) Instituto Superior Técnico Departamento de Engenharia Informática Draft 2.0 Março 2008

Upload: dinhdiep

Post on 26-Jan-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Data MiningData MiningData MiningData Mining e e e e Data WarehousingData WarehousingData WarehousingData Warehousing

da exploração de dados à descoberta de informaçãoda exploração de dados à descoberta de informaçãoda exploração de dados à descoberta de informaçãoda exploração de dados à descoberta de informação

Cláudia Antunes (Professora Auxiliar)

Instituto Superior Técnico

Departamento de Engenharia Informática

Draft 2.0 Março 2008

Page 2: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

i

Conteúdos CONTEÚDOS ........................................................................................ I

TABELA DE FIGURAS............................................................................ V

TABELA DE ALGORITMOS .....................................................................IX

TABELA DE EXPRESSÕES .....................................................................XI

INTRODUÇÃO....................................................................................... 1

Sistemas de apoio à decisão.......................................................... 2

Organização do texto...................................................................... 5

Parte I Data warehousing................................................................ 7

MODELO MULTIDIMENSIONAL................................................................ 9

Elementos básicos........................................................................ 10

Factos...............................................................................................................................10

Dimensões........................................................................................................................11

Tabelas de factos e de dimensões ....................................................................................11

Desenho de modelos multidimensionais .................................... 14

Esquema em estrela .........................................................................................................14

Esquema em floco de neve...............................................................................................15

Cubos............................................................................................. 16

Outros elementos.......................................................................... 18

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

ii

Tabelas de factos sem factos............................................................................................18

Dimensões degeneradas ..................................................................................................19

Dimensões junk ................................................................................................................20

Sumário.......................................................................................... 21

DATA WAREHOUSING ......................................................................... 22

Arquitectura de dados .................................................................. 22

The data warehouse bus...................................................................................................22

Criação dos modelos de dados .........................................................................................22

Arquitectura técnica...................................................................... 22

Aquisição de dados (back room) .......................................................................................22

Acesso aos dados ou front room .......................................................................................22

Infra-estrutura................................................................................ 22

Sumário.......................................................................................... 22

EXPLORAÇÃO DE DADOS.................................................................... 22

Operações OLAP........................................................................... 22

MDX................................................................................................ 22

Elementos básicos............................................................................................................22

Interrogações MDX...........................................................................................................22

Sumário.......................................................................................... 22

Parte II Data mining....................................................................... 22

CONCEITOS BÁSICOS......................................................................... 22

Preparação de dados .................................................................... 22

Integração de dados .........................................................................................................22

Limpeza de dados.............................................................................................................22

Redução de dados............................................................................................................22

Data mining.................................................................................... 22

Derivação de dependências..............................................................................................22

Segmentação (clustering) .................................................................................................22

Classificação ....................................................................................................................22

Avaliação ....................................................................................... 22

Sumário.......................................................................................... 22

Page 3: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Conteúdos

iii

REGRAS DE ASSOCIAÇÃO................................................................... 22

Análise de cabazes...........................................................................................................22

Algoritmos ..................................................................................... 22

Métodos de geração e teste de candidatos .......................................................................22

Métodos de crescimento de padrões.................................................................................22

Sumário.......................................................................................... 22

SEGMENTAÇÃO ................................................................................. 22

K-means ...........................................................................................................................22

EM....................................................................................................................................22

Algoritmos hierárquicos e dendogramas............................................................................22

Avaliação dos resultados da segmentação ................................ 22

Sumário.......................................................................................... 22

CLASSIFICAÇÃO ................................................................................ 22

Classificação baseada em instâncias.......................................... 22

Classificador naïve Bayes ............................................................ 22

Manipulação de atributos numéricos .................................................................................22

Árvores de decisão ....................................................................... 22

Algoritmo ID3....................................................................................................................22

Algoritmo C4.5 ..................................................................................................................22

Algoritmo CART................................................................................................................22

Redes neuronais ........................................................................... 22

Máquinas de vectores de suporte................................................ 22

Determinação do hiperplano óptimo de separação............................................................22

Mapeamento para o espaço de características..................................................................22

Redes de Bayes............................................................................. 22

Treino de redes de Bayes .................................................................................................22

Avaliação de modelos................................................................... 22

Sumário.......................................................................................... 22

NOVOS DESAFIOS.............................................................................. 22

Protecção da privacidade............................................................. 22

Bases de dados hipocráticas.............................................................................................22

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

iv

Aplicação de operações....................................................................................................22

Exploração de séries temporais................................................... 22

Representação de séries temporais ..................................................................................22

Medidas de semelhança ...................................................................................................22

Aplicação de operações....................................................................................................22

Extracção de padrões estruturados ............................................ 22

Descoberta de padrões em sequências.............................................................................22

Descoberta de padrões em grafos ....................................................................................22

Exploração de texto ...................................................................... 22

Representação do texto ....................................................................................................22

Aplicação de operações....................................................................................................22

Exploração da Web ....................................................................... 22

Descoberta de conteúdo ...................................................................................................22

Descoberta da estrutura....................................................................................................22

Descoberta de modos de utilização...................................................................................22

Exploração de data streams......................................................... 22

Actualização de modelos de classificação.........................................................................22

Actualização de regras de associação ..............................................................................22

Descoberta guiada por conhecimento de domínio..................... 22

Utilização de restrições .....................................................................................................22

Utilização de ontologias ....................................................................................................22

Sumário.......................................................................................... 22

REFERÊNCIAS ................................................................................... 22

Page 4: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

v

Tabela de Figuras Figura 1 – Processo de tomada de decisão.................................................................................................. 1

Figura 2 – Arquitectura típica de um sistema de apoio à decisão ............................................................ 3

Figura 3 – Relação entre as tecnologias do apoio à decisão e os seus utilizadores (adaptado de

[Han 2001a]) ........................................................................................................................................ 4

Figura 4 – Modelo da tabela de factos – Vendas ...................................................................................... 13

Figura 5 – Modelos das tabelas de dimensão Data, Loja, Produto e Promoção ..................................... 13

Figura 6 – Esquema em estrela ................................................................................................................. 14

Figura 7 – Esquema em floco de neve....................................................................................................... 16

Figura 8 – Hierarquia das dimensões Loja (à esquerda) e Produto (à direita) ...................................... 17

Figura 9 – Cubo base para três dimensões............................................................................................... 18

Figura 10 – Esquema em estrela com tabela de factos sem factos ♦♦♦♦...................................................... 19

Figura 11 – Esquema em estrela com dimensão degenerada.................................................................. 20

Figura 12 – Esquema em estrela com uma junk dimension ♦♦♦♦................................................................. 21

Figura 13 – The data warehouse bus matrix.............................................................................................. 22

Figura 14 – Modelo geral da arquitectura técnica de uma data warehouse .......................................... 22

Figura 15 – Esquema associado à tabela de erros.................................................................................... 22

Figura 16 – Operação roll-up na dimensão Data ..................................................................................... 22

Figura 17 – Operação drill-down segundo a dimensão Data ................................................................... 22

Figura 18 – Operação slice para Local igual a L.NY ............................................................................... 22

Figura 19 – Operação dice para Loja igual a L.NY e Produto igual a Humanos ................................... 22

Figura 20 – Operação drill-through para Data igual a 2005 ................................................................... 22

Figura 21 – Operação pivoting................................................................................................................... 22

Figura 22 – Cubo resultante da Expressão 2............................................................................................ 22

Figura 23 – Processo CRISP-DM (adaptado de [Shearer 2000]) ........................................................... 22

Figura 24 – FP-Tree para o conjunto de transacções apresentado e ordem alfabética........................ 22

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

vi

Figura 25 – FP-Tree para o conjunto da Tabela 3, usando ordem {B, E, C, A, D}............................... 22

Figura 26 – FP-tree completa para o exemplo da Tabela 3 .................................................................... 22

Figura 27 – FP-tree para o conjunto de transacções da Tabela 3 .......................................................... 22

Figura 28 – Exploração dos dados da Tabela 3 com o algoritmo FP-growth........................................ 22

Figura 29 – Conjunto de instâncias a segmentar ..................................................................................... 22

Figura 30 – Conjunto de instâncias segmentadas depois da 1ª iteração do K-means........................... 22

Figura 31 – Segmentação obtida pelo K-means♦♦♦♦ .................................................................................... 22

Figura 32 – Distribuição das probabilidades de x ter sido gerado por Z1 e Z2♦♦♦♦................................... 22

Figura 33 – Exemplo de um dendograma................................................................................................. 22

Figura 34 – Exemplo de uma árvore de decisão para determinar o risco de acidente ......................... 22

Figura 35 – Sub-espaços correspondentes às classificações segundo as árvores de decisão para a

conjunção e disjunção exclusiva ...................................................................................................... 22

Figura 36 – Variação da entropia para duas classes ............................................................................... 22

Figura 37 – Construção de uma árvore de decisão com o algoritmo ID3, 1º passo .............................. 22

Figura 38 – Construção de uma árvore de decisão com o algoritmo ID3, 2º passo .............................. 22

Figura 39 –Árvore de decisão determinada pelo algoritmo ID3 ............................................................ 22

Figura 40 – Construção de uma árvore de decisão com o algoritmo C4.5, 1º passo............................. 22

Figura 41 – Árvore de decisão determinada pelo algoritmo C4.5 .......................................................... 22

Figura 42 – Construção de uma árvore de decisão com o algoritmo CART, 1º passo.......................... 22

Figura 43 – Árvore de decisão determinada pelo algoritmo CART, antes da poda ............................. 22

Figura 44 – Exemplo de uma rede neuronal ............................................................................................ 22

Figura 45 – Redes neuronais para a conjunção e disjunção exclusiva e sub-espaços correspondentes

............................................................................................................................................................ 22

Figura 46 – Arquitectura da rede neuronal para determinar o risco de acidente ................................ 22

Figura 47 – Exemplo de conjunto de instâncias em RRRR2 ........................................................................... 22

Figura 48 – Hiperplanos de separação para o conjunto de treino da Figura 47 ................................... 22

Figura 48 – Exemplo da margem γγγγ de um classificador linear ............................................................... 22

Figura 49 – Hiperplano de margem máxima e vectores de suporte....................................................... 22

Figura 50 – Instâncias de treino para o problema da determinação do risco de acidente representadas

em RRRR3 .................................................................................................................................................. 22

Figura 51 – Hiperplano de margem máxima para o problema da determinação do risco de acidente22

Figura 52 – Conjunto de dados em RRRR2 (à esquerda) e mapeamento para RRRR3 por aplicação da função φφφφ,

com ( )2

221

2

1 ,2,)( xxxxx =r

φ (à direita)............................................................................................. 22

Figura 53 – Conjunto de dados em RRRR2 não separáveis linearmente ....................................................... 22

Figura 54 – Conjunto de dados ilustrados na Figura 53 mapeados para RRRR3 por aplicação da função φφφφ,

com ( )2

221

2

1 ,2,)( xxxxx −=r

φ .............................................................................................................. 22

Figura 55 – Exemplo de uma rede de Bayes............................................................................................. 22

Figura 56 – Rede de Bayes com variáveis não observáveis ..................................................................... 22

Figura 57 – Matriz de confusão para classificação binária..................................................................... 22

Figura 58 – Exemplo de um ROC chart para dois modelos, A e B ........................................................ 22

Page 5: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Tabela de Figuras

vii

Figura 59 – ROC chart e respectiva tabela de pontuações ..................................................................... 22

Figura 60 – Exemplo de um Lift chart...................................................................................................... 22

Figura 61 – Arquitectura de uma base de dados Hipocrática ([Agrawal 2002])................................... 22

Figura 62 – Ilustração do comportamento do algoritmo GSP................................................................ 22

Figura 63 – Ilustração do comportamento do algoritmo PrefixSpan .................................................... 22

Figura 64 – Geração de candidatos no algoritmo FSG ........................................................................... 22

Page 6: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

ix

Tabela de Algoritmos Algoritmo 1 – Pseudocódigo do algoritmo Apriori.................................................................................. 22

Algoritmo 2 – Pseudocódigo do procedimento apriori-gen..................................................................... 22

Algoritmo 3 – Pseudocódigo para a construção de uma FP-Tree .......................................................... 22

Algoritmo 4 – Pseudocódigo do algoritmo FP-growth ............................................................................ 22

Algoritmo 5 – Pseudocódigo do algoritmo K-means ............................................................................... 22

Algoritmo 6 – Pseudocódigo do algoritmo EM (Expectation / Maximization) para segmentação........ 22

Algoritmo 7 – Pseudocódigo do algoritmo do vizinho mais próximo..................................................... 22

Algoritmo 8 – Pseudocódigo do algoritmo k-vizinhos mais próximos (Knn) ........................................ 22

Algoritmo 9 – Pseudocódigo do algoritmo naïve Bayes........................................................................... 22

Algoritmo 10 – Pseudocódigo do algoritmo ID3 ...................................................................................... 22

Algoritmo 11 – Pseudocódigo do algoritmo de retro-propagação (backpropagation)........................... 22

Algoritmo 12 – Pseudocódigo do algoritmo do gradiente ascendente.................................................... 22

Algoritmo 13 – Pseudocódigo do algoritmo EM para treino de Redes de Bayes .................................. 22

Page 7: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

xi

Tabela de Expressões Expressão 1 – Número de cubos para a uma tabela de factos ligada a n dimensões ............................ 17

Expressão 2 – Exemplo de interrogação sem restrições .......................................................................... 22

Expressão 3 – Exemplo de utilização de COLUMNSCOLUMNSCOLUMNSCOLUMNS e ROWSROWSROWSROWS ................................................................ 22

Expressão 4 – Exemplo de interrogação com restrições.......................................................................... 22

Expressão 5 – Exemplo de interrogação com escolha da medida........................................................... 22

Expressão 6 – Exemplo de interrogação com definição de uma nova medida ...................................... 22

Expressão 7 – Exemplo de interrogação que aplica a função CrossJoinCrossJoinCrossJoinCrossJoin .............................................. 22

Expressão 8 – Exemplo de interrogação que aplica a função TopCountTopCountTopCountTopCount ............................................. 22

Expressão 9 – Exemplo de interrogação que aplica a função TopCountTopCountTopCountTopCount ............................................. 22

Expressão 10 – Suporte da regra A⇒⇒⇒⇒B .................................................................................................... 22

Expressão 11 – Confiança da regra A⇒⇒⇒⇒B ................................................................................................ 22

Expressão 12 – Lift da regra A⇒⇒⇒⇒B............................................................................................................ 22

Expressão 13 – Valor esperado de cada variável escondida ................................................................... 22

Expressão 14 – Probabilidade de x ser gerado por uma variável normal ............................................. 22

Expressão 15 – Fórmula para o Erro Quadrático Médio no contexto da segmentação ....................... 22

Expressão 16 – Fórmula para o Coeficiente de Silhueta ......................................................................... 22

Expressão 17 – Classificação pela hipótese de máxima verosimilhança ................................................ 22

Expressão 18 – Teorema de Bayes ............................................................................................................ 22

Expressão 19 – Conjunto de instâncias do tipo <a1=v1...ak=vn> ............................................................. 22

Expressão 20 – Probabilidade de uma instância pertencer a uma classe .............................................. 22

Expressão 21 – Teorema da Independência de Variáveis ....................................................................... 22

Expressão 22 – Classificação pelo naïve Bayes ........................................................................................ 22

Expressão 23 – Determinação da classificação mais provável para um condutor jovem, do sexo

feminino e com veículo vermelho..................................................................................................... 22

Expressão 24 – Função de densidade de probabilidades para X~NNNN (µ, σ2)............................................. 22

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

xii

Expressão 25 – Determinação da classificação mais provável para um condutor de 20 anos, do sexo

feminino e com veículo vermelho..................................................................................................... 22

Expressão 26 – Fórmula da entropia ........................................................................................................ 22

Expressão 27 – Fórmula do ganho de informação................................................................................... 22

Expressão 28 – Cálculo da entropia associada ao conjunto de treino da Tabela 10............................. 22

Expressão 29 – Cálculo do ganho de informação para o atributo Cor................................................... 22

Expressão 30 – Cálculo do ganho de informação para o atributo Sexo e Faixa Etária ........................ 22

Expressão 31 – Cálculo da entropia para o subconjunto de condutores adultos .................................. 22

Expressão 32 – Ganho de informação do atributo Cor no subconjunto SAdulto ...................................... 22

Expressão 33 – Ganho de informação do atributo Sexo no subconjunto SAdulto .................................... 22

Expressão 34 – Cálculo da entropia associada ao subconjunto de condutores jovens ......................... 22

Expressão 35 – Cálculos necessários à determinação do ramo referente ao subconjunto dos

condutores jovens.............................................................................................................................. 22

Expressão 36 – Fórmula da informação ganha pela partição (splitInfo) ............................................... 22

Expressão 37 – Fórmula do gain ratio ...................................................................................................... 22

Expressão 38 – Fórmula do ganho de informação na presença de valores omissos.............................. 22

Expressão 39 – Fórmula da splitInfo na presença de valores omissos ................................................... 22

Expressão 40 – Cálculo da splitInfo associada aos atributo Sexo e Cor ................................................. 22

Expressão 41 – Cálculo da splitInfo associada ao atributo Faixa etária ................................................ 22

Expressão 42 – Cálculo do gain ratio para cada atributo........................................................................ 22

Expressão 43 – Entropia associada ao subconjunto de veículos não vermelhos .................................... 22

Expressão 44 – Cálculos para os atributos Sexo e Faixa Etária no subconjunto SCor=O........................ 22

Expressão 46 – Fórmula do índice de gini ................................................................................................ 22

Expressão 47 – Fórmula do índice de Gini associado a uma partição (ginisplit)..................................... 22

Expressão 48 – Índice de gini para as partições segundo os atributos Sexo e Cor ................................ 22

Expressão 49 – Cálculo do índice de gini associado à partição segundo o atributo Faixa etária para

cada um dos testes possíveis ............................................................................................................. 22

Expressão 50 – Cálculo do índice de gini para o subconjunto dos adultos e jovens ............................. 22

Expressão 51 – Índice de gini para o subconjunto dos condutores não idosos e veículo não vermelho22

Expressão 52 – Fórmula para a saída da unidade de processamento j.................................................. 22

Expressão 53 – Função sigmóide............................................................................................................... 22

Expressão 54 – Equação reduzida do plano de separação definido pela unidade j ................................. 22

Expressão 55 – Função de erro típica ....................................................................................................... 22

Expressão 56 – Regra de actualização dos pesos da rede........................................................................ 22

Expressão 57 – Cálculo do resultado processado pela unidade 8 ........................................................... 22

Expressão 58 – Cálculo dos resultados processados pelas unidades 9 e 10............................................ 22

Expressão 59 – Cálculo das saídas das unidades 11, 12 e 13................................................................... 22

Expressão 60 – Função de erro para a rede da Figura 46....................................................................... 22

Expressão 61 – Cálculo das derivadas parciais do erro para as unidades de saída............................. 22

Expressão 62 – Actualização dos pesos associados à unidade de saída σσσσ11 ........................................... 22

Page 8: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Tabela de Expressões

xiii

Expressão 63 – Cálculo das derivadas parciais do erro para as unidades intermédias........................ 22

Expressão 64 – Equação do hiperplano de separação ............................................................................. 22

Expressão 65 – Valor da margem do hiperplano 0=+• bxwrr

............................................................ 22

Expressão 66 – Restrições lineares de um problema de optimização..................................................... 22

Expressão 67 – Formulação dual do problema de optimização.............................................................. 22

Expressão 68 – Equação do hiperplano de separação óptimo ................................................................ 22

Expressão 69 – Função de decisão............................................................................................................. 22

Expressão 70 – Restrições lineares para determinação do hiperplano de separação para o problema

da determinação do risco de acidente.............................................................................................. 22

Expressão 71 – Funções características .................................................................................................... 22

Expressão 72 – Equação do hiperplano de separação no espaço de características de dimensão N ... 22

Expressão 73 – Função de decisão no espaço de características............................................................. 22

Expressão 74 – Função kernel ................................................................................................................... 22

Expressão 75 – Função de decisão usando kernels .................................................................................. 22

Expressão 76 – Restrições para a determinação do hiperplano de margem máxima usando funções de

kernel ................................................................................................................................................. 22

Expressão 77 – Kernels mais usados......................................................................................................... 22

Expressão 78 – Restrições para determinação do hiperplano de separação pontos de uma hipérbole

definida em R2 ................................................................................................................................... 22

Expressão 79 – Independência entre variáveis......................................................................................... 22

Expressão 80 – Independência condicionada entre variáveis e conjuntos de variáveis........................ 22

Expressão 81 – Distribuição conjunta para as variáveis do problema .................................................. 22

Expressão 82 – Cálculo do gradiente ........................................................................................................ 22

Expressão 83 – Estimador de máxima verosimilhança para cada entrada da tabela de probabilidades

condicionadas .................................................................................................................................... 22

Expressão 84 – Propriedade das funções de probabilidade .................................................................... 22

Expressão 85 – Estimativa da probabilidade condicionada.................................................................... 22

Expressão 86 – Cálculo do número esperado de instâncias .................................................................... 22

Expressão 87 – Cálculo de P(A|SF) ........................................................................................................... 22

Expressão 88 – Precisão de um classificador............................................................................................ 22

Expressão 89 – Sensibilidade ou TPrate de um classificador binário.................................................... 22

Expressão 90 – FPrate de um classificador binário................................................................................. 22

Expressão 91 – Especificidade de um classificador binário .................................................................... 22

Expressão 92 – Estimação da função de densidade de probabilidades fY .............................................. 22

Expressão 93 – Precision e recall para cada uma das classes.................................................................. 22

Expressão 94 – F-measure para a avaliação dos segmentos encontrados .............................................. 22

Expressão 95 – Expressão regular exemplificativa de um padrão de extracção................................... 22

Expressão 96 – Fórmulas de actualização dos pesos no algoritmo HITS .............................................. 22

Expressão 97 – Fórmula para o prestígio de uma página no algoritmo PageRank .............................. 22

Expressão 98 – Limiar de Hoeffding......................................................................................................... 22

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

xiv

Page 9: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

1

1 Introdução

“Nada é mais difícil, e portanto mais precioso, do que ser capaz de decidir”

Napoleão Bonaparte

O desenvolvimento vertiginoso, verificado na segunda metade do século XX, devolveu

ao homem o papel central na sociedade: o de conduzir a sua história! Num mundo em

que o trabalho físico é feito pelas máquinas, e em que a análise dos registos do passado

é feita automaticamente pelos sistemas informáticos, cabe ao homem tão-somente

tomar as decisões adequadas à evolução da sociedade.

A tomada de decisão é, desde sempre, o que permite ao homem realizar acções, e é

através da tomada de decisão informada que se viabiliza a realização de acções que

cumpram objectivos previamente definidos.

Na sociedade de informação, em que a comunicação entre os indivíduos é instantânea e

o acesso aos factos ocorridos é generalizado, a dificuldade reside na gestão desta

abundância, e no aproveitamento desta para o apoio à tomada de decisão. Na verdade,

os dados são um dos principais recursos disponíveis nas organizações, e a sua

utilização adequada pode constituir por si só uma vantagem competitiva relativamente

aos seus concorrentes. No entanto, a simples existência de dados não é suficiente para

a compreensão da realidade, e sem transformar aqueles dados em informação, a sua

existência é praticamente inútil.

Dados Informação Conhecimento Acções

Figura 1 – Processo de tomada de decisão

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

2

O passo seguinte no processo de tomada de decisão (Figura 1) é a tradução da

informação em conhecimento, a partir da experiência e conhecimento de domínio

acumulados. Baseado no conhecimento adquirido, realizam-se acções concretas que

transformam a realidade, produzindo novos dados, uma vez mais passíveis de serem

utilizados em tomadas de decisão futuras.

Sistemas de apoio à decisão

É neste contexto, em que o importante é tomar decisões mais informadas, melhorar os

processos existentes e descobrir a informação escondida por detrás da abundância de

dados, que surgem os sistemas de informação, e em particular os sistemas de apoio à

decisão.

“Um Sistema de Informação pode ser definido como um conjunto de componentes

interligados, funcionando juntos para recolher, processar, armazenar, e disseminar a

informação, de modo a suportar a tomada, coordenação, controlo, análise e visualização

das decisões numa organização.” [Laudon 2000]

Perante tais funcionalidades e utilizações, torna-se clara a importância de tais sistemas

no funcionamento de qualquer organização. Porém, a diversidade de interesses,

especialidades e níveis aí existentes, é de tal ordem que um único sistema de

informação é insuficiente para dar resposta a todas as necessidades das organizações.

Dada esta diversidade, existem vários tipos de sistemas de informação, dos quais se

destacam os sistemas transaccionais ao nível operacional e os sistemas de apoio à

decisão ao nível da gestão.

Um sistema transaccional é o sistema básico de uma organização, que funcionando ao

nível operacional, executa e regista as transacções diárias efectuadas pela e na

organização. A este nível as tarefas, recursos e objectivos são pré-definidos e

fortemente estruturados, ou seja, bem conhecidos. Os sistemas transaccionais são os

sistemas fundamentais para o funcionamento diário de uma organização: qualquer falha

num destes sistemas pode inviabilizar o normal funcionamento da actividade.

Quanto aos sistemas de apoio à decisão são desenhados especialmente para

melhorar o processo de tomada de decisão. “Um sistema de apoio à decisão é um

sistema computacional ao nível da gestão de uma organização, que combina dados,

ferramentas analíticas e modelos para apoiar a tomada de decisões semi-estruturadas

ou não estruturadas” [Laudon 2000]. Por problema estruturado entenda-se um problema

frequente e conhecido pela organização, para o qual é conhecida a solução adequada;

por problema não-estruturado entenda-se um problema novo e não usual, para o qual

não é conhecida uma solução algorítmica.

Um sistema de apoio à decisão tem normalmente um maior poder analítico, e é criado

Page 10: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 1 – Introdução

3

explicitamente com uma variedade de modelos para analisar os dados. Um dos tipos de

sistemas de apoio à decisão são os sistemas de apoio à decisão orientados aos

dados, que suportam a tomada de decisão na sua capacidade de extrair informação útil

a partir das grandes quantidades de dados, armazenados pela organização, e

habitualmente recolhidos pelos seus sistemas transaccionais.

Concretamente, para que um sistema de informação seja considerado de apoio à

decisão tem de possuir três características fundamentais:

− ser suficientemente amigável para ser usado por quem toma as decisões;

− apresentar os dados / informação num formato e terminologia familiar para os

seus utilizadores;

− ser selectivo na quantidade de informação que apresenta, de modo a evitar o

bombardeamento dos utilizadores com informação menos útil.

Para atingir tais fins, os sistemas de apoio à decisão recolhem os dados dos vários

subsistemas do sistema de informação global da organização, conciliando-os e

analisando-os de modo a transformá-los na informação necessária ao apoio da tomada

de decisão. Com este objectivo em vista, os sistemas de apoio à decisão englobam

principalmente dois componentes: os repositórios de dados (data warehouse) e as

ferramentas de exploração dos mesmos (ferramentas de produção de relatórios, data

mining e ferramentas OLAP na Figura 2).

Figura 2 – Arquitectura típica de um sistema de apoio à decisão

Os repositórios de dados, usualmente designados data warehouses, são uma evolução

do conceito de base de dados tradicional, e têm por objectivo armazenar todos os dados

da organização de forma integrada e registando todo o seu histórico. Existem duas

diferenças fundamentais entre estes repositórios e as bases de dados operacionais. Por

um lado, pretendem guardar todos os dados registados ao longo do tempo, não

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

4

destruindo os que já não têm utilidade operacional. Por outro, os dados são organizados

de modo a facilitar a sua exploração em vez da sua actualização e consulta.

É para explorar os dados armazenados, que surgem as ferramentas de exploração,

usualmente conhecidas por ferramentas de Business Intelligence, e que

essencialmente englobam duas tecnologias: a tecnologia OLAP e o data mining.

A tecnologia OLAP (OnLine Analytic Processing) fornece os meios para colocar

interrogações (queries) complexas ao repositório de dados, interrogações estas que

tipicamente envolvem a conjunção e disjunção de várias restrições (cláusulas WHERE) e

a aplicação de funções estatísticas (através de operações de agregação), tais como a

média e o desvio padrão. Com os resultados destas interrogações é então habitual a

criação de relatórios (reporting) que apresentam um primeiro resumo dos dados e

permitem a sua visualização segundo ângulos diferenciados.

O Data mining é uma tecnologia com raízes na área da Inteligência Artificial, para

descobrir padrões não explícitos e relações entre os dados armazenados, de modo a

inferir regras para prever comportamentos futuros. Mais concretamente, estas

descobertas são o resultado do processo de extracção de informação (designado por

Knowledge Discovery from Databases – KDD), “extracção esta não trivial de informação

implícita, previamente desconhecida e potencialmente útil, feita a partir dos dados

registados” [Frawley 1992].

Das diferentes utilidades das componentes dos sistemas de apoio à decisão, advêm

diferentes utilizadores (Figura 3). De facto, a data warehouse como repositório de dados

que é, serve apenas como um meio para proporcionar um fim: o apoio à tomada de

decisão, e os seus utilizadores directos são unicamente os seus administradores

(técnicos capazes de garantir a sua coerência e actualidade).

Figura 3 – Relação entre as tecnologias do apoio à decisão e os seus utilizadores

(adaptado de [Han 2001a])

Por sua vez, a exploração dos dados, através das tecnologias OLAP, e a descoberta de

Page 11: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 1 – Introdução

5

informação, através do data mining, são efectuadas por analistas de dados. Enquanto

que para o primeiro caso não são necessários conhecimentos profundos sobre os

dados, graças sobretudo à existência de ferramentas avançadas de produção de

relatórios (reporting), a aplicação das técnicas de data mining exige esse conhecimento.

Como veremos mais à frente (Parte II: capítulo 5 – Conceitos Básicos), a qualidade da

informação descoberta está intimamente ligada com a habilidade do analista em

seleccionar os dados e modelos mais relevantes de acordo com o âmbito das decisões a

tomar. Por fim, a utilização dos resultados da exploração de dados é feita pelos analistas

de negócio e/ou gestores que os usam para definir as estratégias de evolução do

negócio.

Organização do texto

O presente texto visa introduzir os conceitos fundamentais de modelação e exploração

de dados para o apoio à decisão, apresentando as especificidades dos sistemas que as

suportam.

Com este objectivo em vista, o texto encontra-se dividido em duas grandes partes. A

primeira, Parte I: Data warehousing, aborda os aspectos fundamentais da construção e

manutenção de data warehouses. No capítulo 2 (Modelo Multidimensional) apresenta-se

o modelo multidimensional, adequado à representação dos dados para apoio à decisão;

no capítulo 3 – Error! Reference source not found. descreve-se todo o processo da

criação e manutenção de data warehouses, desde a sua arquitectura até ao seu

carregamento e actualização. A primeira parte termina com a apresentação da

tecnologia OLAP e da linguagem MDX, que suportam adequadamente a exploração de

dados para o apoio à decisão (capítulo 4 – Exploração de Dados).

A segunda parte, Parte II: Data mining, apresenta os conceitos fundamentais da

descoberta de informação (capítulo 5 – Conceitos Básicos), começando pela descrição

do processo que a suporta, incluindo o tratamento necessário para garantir a qualidade

dos seus resultados. Em seguida, descrevem-se sucintamente as técnicas de data

mining mais usuais, assim como as métricas de avaliação da qualidade da informação

descoberta. Nos capítulos seguintes, apresentam-se as abordagens tradicionais de data

mining: a derivação de dependências (capítulo 6 – Regras de Associação), a partição

dos dados de acordo com as semelhanças e diferenças entre os dados (capítulo 7 –

Error! Reference source not found.) e a identificação de modelos de classificação

(capítulo 8 – Classificação). Em cada um destes capítulos, descreve-se a abordagem do

ponto de vista do seu objectivo e apresentam-se os algoritmos principais usados nesse

contexto. Adicionalmente, dada a sua importância, descrevem-se as métricas mais

usadas na avaliação dos resultados obtidos.

A segunda parte termina com a discussão dos tópicos mais avançados na área da

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

6

descoberta de informação (capítulo 9 – Novos Desafios), com particular ênfase na

protecção da privacidade e no processamento de dados complexos, como são as séries

temporais, as sequências e grafos, o texto e a Web. Para além destes assuntos,

abordam-se as especificidades da descoberta de informação em ambientes que exigem

a actualização dos modelos (mining data streams) e a incorporação de conhecimento de

domínio para enriquecer o processo de descoberta de informação.

Page 12: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

7

Part

Part

Part

Parteee e I I I I

Data

Data

Data

Data WWW W

arehousingarehousingarehousingarehousing

Page 13: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

9

2 Modelo Multidimensional

O sucesso dos sistemas de informação na sociedade actual está intimamente ligado ao

sucesso da tecnologia das bases de dados, em particular das bases de dados

relacionais.

Uma base de dados não é mais do que uma colecção de dados, que tipicamente

descreve as actividades de uma ou mais organizações, relacionadas entre si

[Ramakrishnan 2000]. Tradicionalmente, estas colecções de dados eram mantidas em

ficheiros de diferentes formatos, criando diversas dificuldades quer na manutenção da

sua integridade quer no seu acesso. Na década de 60 do século XX, surgiram os

primeiros sistemas de gestão de bases de dados (SGBDs), que rapidamente

solucionaram os problemas referidos, ao garantir a independência entre os dados

registados e as aplicações que os manipulavam, assim como a eficiência de acesso,

integridade e segurança dos próprios dados.

Um aspecto importante relacionado com esta tecnologia, é o facto de os dados poderem

ser definidos em termos de um modelo de dados – uma colecção de descrições dos

dados a alto nível, que esconde os detalhes de armazenamento dos mesmos

[Ramakrishnan 2000]. O modelo de dados relacional tornou-se desde cedo no

paradigma central dos SGBDs, criando uma prática standard na construção dos

sistemas de informação das organizações. Neste modelo, uma base de dados é

simplesmente uma colecção de uma ou mais relações, cada uma delas caracterizada

por um conjunto de atributos.

Das várias vantagens introduzidas pelo modelo de dados relacional, há a destacar a

utilização de restrições de integridade para garantir a correcção dos dados registados.

De entre estas, são particularmente importantes as dependências funcionais (traduzidas

nas formas normais), que permitem a detecção e prevenção da existência de

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

10

redundância, evitando anomalias na introdução, actualização e eliminação dos dados.

No entanto, se por um lado são resolvidos os problemas usualmente enfrentados pelos

sistemas operacionais, na realização das operações diárias das organizações

(introdução, actualização e eliminação de registos), o mesmo não acontece com as

operações básicas dos sistemas de apoio à decisão – a análise dos dados. Na verdade,

a eliminação das anomalias detectadas através da identificação das dependências

funcionais implica a fragmentação das relações inicialmente identificadas, transformando

o modelo inicial, em que se modela a organização em causa evidenciando as relações

entre as várias entidades envolvidas, num modelo em que se evidenciam as relações

microscópicas existentes entre as diversas características das várias entidades e

relações. Deste modo, em vez de modelar as regras que regem o negócio da

organização em causa, são modeladas as regras que regem as relações entre os dados.

Elementos básicos

De modo a responder às necessidades de análise de dados dos sistemas de apoio à

decisão, é habitual organizar os dados de modo a que a sua consulta seja facilitada, e

que esta análise possa ser feita de múltiplas perspectivas.

É neste contexto que surge o modelo multidimensional. No essencial, este modelo

organiza-se em torno de factos, associados a um conjunto de atributos, organizados

segundo diferentes dimensões.

Factos

Um facto é simplesmente o registo de uma ocorrência. Exemplos de factos são o

número de unidades vendidas, o montante de vendas efectuado, a temperatura

registada ou o movimento de uma conta bancária.

De forma a possibilitar a análise dos factos a diferentes níveis de granularidade, é

imprescindível que os factos possam ser agregados. Deste modo, os factos tendem a

ser mensuráveis (pelo que muitas vezes são referidos como medidas), numéricos e

aditivos.

Repare que nem todos os factos numéricos são aditivos. Um exemplo paradigmático é a

temperatura: apesar de o seu valor poder ser somado, o resultado não traduz nenhuma

informação utilizável. Apesar de não ser aditivo, a temperatura continua a traduzir um

facto, nomeadamente, a média das temperaturas registadas ao longo do tempo ou em

diferentes locais traduz informação relevante.

De entre as funções de agregação habitualmente aplicáveis, podemos distinguir três

tipos:

Page 14: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 2 – Modelo Multidimensional

11

− Distributivas: se o resultado derivado da aplicação da função à agregação de n

valores é igual ao valor derivado da soma da aplicação da função a cada um dos

valores isoladamente. A contagem (count), a soma (sum), o mínimo (min) e o

máximo (max) são exemplos de funções distributivas.

− Algébricas: se a função pode ser calculada por uma função algébrica de n

argumentos, resultantes da aplicação de funções distributivas, com n um número

inteiro positivo limitado. A média (avg) é um exemplo de uma função de

agregação algébrica, visto ser calculada a partir da divisão (função algébrica) de

duas funções distributivas – a soma e a contagem (avg=sum/count) Outros

exemplos são o mínimo de n (min_N) e o desvio padrão (stdev).

− Holísticas: se não existe nenhuma função algébrica capaz de calcular a

agregação. São exemplos deste tipo de funções a moda (mode), a mediana

(median) ou a ordenação (rank).

Dimensões

Ora, cada facto está relacionado com um conjunto de atributos, que caracteriza a

ocorrência para além da medida registada, como por exemplo a data ou o local em que

se efectivou. Quando vários destes atributos descrevem uma mesma propriedade da

ocorrência, está-se na presença de uma dimensão.

Tipicamente, os atributos de uma dimensão são descritivos e não-mensuráveis,

traduzindo-se em valores textuais com um número limitado de possibilidades. É também

habitual que estes atributos possam ser organizados segundo hierarquias bem definidas,

o que possibilita a análise dos factos a diferentes níveis de granularidade. Os valores

possíveis para cada nível da hierarquia denominam-se membros.

Se os factos registam as ocorrências de um negócio, as dimensões descrevem as

condições do negócio. E são elas que fornecem as restrições mais interessantes para

análise.

Um exemplo paradigmático é a dimensão tempo, que de forma simplista, pode ser

composta pelos atributos dia, mês e ano. Caracterizando cada facto pelo instante da sua

ocorrência, torna-se possível agregar os dados registados em cada dia, de modo a

analisar as ocorrências mensais ou anuais.

Tabelas de factos e de dimensões

Tal como no modelo relacional, o modelo multidimensional concretiza-se pelo registo dos

dados em tabelas. Em particular, os factos assim como as dimensões são registadas em

tabelas individuais, inter-relacionadas pela utilização de identificadores únicos para cada

registo – as chaves primárias.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

12

A relação principal de um modelo multidimensional, que relaciona factos e dimensões, é

designada tabela de factos. Por sua vez, esta está relacionada com cada uma das

tabelas de dimensão do modelo.

Assim, as tabelas de factos contêm um ou mais factos que ocorrem numa dada

combinação de registos das várias dimensões. É esta combinação de registos que

identifica univocamente cada facto. Em concreto, uma tabela de factos traduz sempre

uma relação de muitos para muitos, possuindo uma chave primária composta por

múltiplas chaves estrangeiras (uma para cada dimensão que caracteriza a ocorrência do

facto).

Por seu lado, as tabelas de dimensão contêm os diferentes atributos respeitantes à

dimensão e um identificador unívoco para cada registo da tabela – a chave primária da

tabela. Considere-se por exemplo a dimensão tempo como anteriormente (com a

hierarquia dia < mês < ano), e um intervalo temporal de 10 anos. A tabela de dimensão

para este intervalo de tempo teria 365*10 entradas, uma por cada dia ao longo dos dez

anos (não considerando os anos bissextos).

De modo a possibilitar a análise dos dados, é importante que todos os factos digam

respeito à mesma granularidade, de modo a que seja possível agregar os dados de

forma coerente. É ainda importante, que o registo seja feito ao nível mais detalhado, ou

seja, que cada facto seja caracterizado pelos atributos mais detalhados de cada

dimensão.

Por exemplo, se o facto a registar for o montante de vendas efectuado diariamente em

cada loja, e se se considerar a dimensão tempo referida e a dimensão local (com a

hierarquia loja << cidade << país), os factos devem dizer respeito à soma das vendas

efectuadas em cada par dia / loja. Só desta forma, será possível analisar as vendas

segundo diferentes perspectivas: vendas diárias por loja, vendas diárias por cidade,

vendas diárias por país, vendas mensais por loja, vendas mensais por cidade, vendas

mensais por país, vendas anuais por loja, vendas anuais por cidade e vendas anuais por

país.

Repare-se que a utilização de uma data na tabela de factos, em vez do identificador dos

dados respectivos na tabela tempo, não retira nem introduz qualquer informação

adicional. No entanto, a utilização da data dificultaria as agregações dos factos

consoante as diferentes granularidades.

Exemplo

Considere o problema genérico do registo diário das vendas efectuadas em cada loja,

com discriminação dos produtos vendidos e da transacção efectuada. Considere ainda

que se pretende registar a quantidade de produtos vendidos, assim como o montante da

venda e o custo do produto vendido, com todos os montantes expressos em euros (€).

Page 15: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 2 – Modelo Multidimensional

13

Para além destes valores, é importante discriminar se a venda foi feita durante alguma

promoção.

A identificação dos factos é dificuldade se feita sem dificuldades, e correspondem ao

montante das vendas, ao custo unitário do produto vendido e ao número de produtos vendidos.

Também sem dificuldade se identificam as dimensões Data, Loja e Produto. Para além

destas, são também necessárias a dimensão Transacção de forma a registar a

associação entre a transacção e a venda, e a dimensão Promoção de modo a registar se

a venda foi feita no âmbito de uma promoção ou não.

Naturalmente a tabela de factos a criar, será constituída pelos três factos e por

identificadores para cada uma das dimensões em análise (como se ilustra na Figura 4).

Vendas

PK data_IDPK produto_IDPK loja_IDPK promoção_IDPK transacção_ID

Quantidade Montante Venda Custo Unitário Produto

Figura 4 – Modelo da tabela de factos – Vendas

Quanto às tabelas de dimensão, a definição dos seus atributos depende da quantidade e

qualidade dos dados disponíveis. A Figura 5 ilustra uma possibilidade para as tabelas de

dimensão Data, Loja, Produto e Promoção. O modelo da tabela de dimensão Transacção

será discutido oportunamente.

Data

PK data_ID

dia dia semana dia época mês trimestre ano época feriado dia útil

Loja

PK loja_ID

nome número endereço código postal cidade nº habitantes cidade nº lojas cidade distrito país região

Produto

PK produto_ID

nome número descrição subcategoria categoria marca nome da marca país origem marca distribuidor marca

Promoção

PK promoção_ID

nome data início data fim tipo redução custo promoção

Figura 5 – Modelos das tabelas de dimensão Data, Loja, Produto e Promoção

No que diz respeito à dimensão Data, é de salientar a existência de duas hierarquias:

uma entre os atributos dia, mês, trimestre e ano, do mais detalhado para o mais geral (que

será representado no presente texto por dia << mês << trimestre << ano) e uma segunda

para os atributos dia da época e época. Note ainda, que outros atributos (por exemplo dia

da semana) não fazem parte da hierarquia, sendo que feriado e dia útil dizem respeito a

atributos booleanos. Nas restantes dimensões a situação é idêntica, sendo de salientar a

existência de uma única hierarquia. Note que na dimensão Promoção, os atributos data

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

14

início e data fim são datas e não referências para a dimensão Data.

Desenho de modelos multidimensionais

Depois de identificados os elementos fundamentais do modelo multidimensional (factos

e dimensões), resta juntar estes elementos de modo a criar um modelo. A descrição de

cada modelo é feita através de um esquema, que estabelece as relações existentes

entre os factos e as dimensões. Para representar o modelo multidimensional são usados

essencialmente dois tipos de esquemas: os esquemas em estrela (star schemas) e os

esquemas em floco de neve (snowflake schemas).

Esquema em estrela

O esquema em estrela (star schema) é o esquema mais simples, e consiste apenas

numa tabela de factos ligada a um conjunto de tabelas de dimensão. Neste tipo de

esquema todas as tabelas de dimensão estão unicamente relacionadas com tabelas de

factos, não existindo qualquer relação entre as tabelas de dimensão.

Quando na presença de vários esquemas em estrela, em que as várias tabelas de factos

partilham as diferentes tabelas de dimensão, é habitual designar o esquema global por

esquema em constelação de factos.

Exemplo

A Figura 6 ilustra o esquema em estrela que integra a tabela de factos e as tabelas de

dimensão anteriormente descritas.

Transacção

PK transacção_ID

outros atributos

Loja

PK loja_ID

nome número endereço código postal cidade nº habitantes cidade nº lojas cidade distrito país região

Promoção

PK promoção_ID

nome data início data fim tipo redução custo promoção

Produto

PK produto_ID

nome número descrição subcategoria categoria marca nome da marca país origem marca distribuidor marca

Data

PK data_ID

dia dia semana dia época mês trimestre ano época feriado dia útil

Vendas

PK data_IDPK produto_IDPK loja_IDPK promoção_IDPK transacção_ID

Quantidade Montante Venda Custo Unitário Produto

Figura 6 – Esquema em estrela

Page 16: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 2 – Modelo Multidimensional

15

Repare na inexistência de ligações entre as diversas tabelas de dimensão. Como

referido anteriormente, apesar da existência de datas na tabela de promoções, estas

datas não são entradas na tabela de datas. ♦

Esquema em floco de neve

O esquema em floco de neve (snowflake schema) é um refinamento do esquema em

estrela, em que cada dimensão pode ser representada (e implementada) por mais do

que uma tabela de dimensão. Isto é, é permitida alguma normalização das dimensões,

essencialmente para evitar demasiada redundância, e consequentemente evitar o

desperdício de espaço.

Uma dimensão diz-se normalizada (snowflaked dimension), quando os atributos de

menor cardinalidade foram removidos da tabela de dimensão para uma tabela separada

com ligação à primeira através da utilização de uma chave primária (artificial).

Em geral, a utilização de esquemas em floco de neve não é recomendada, uma vez que

introduz complexidade na exploração dos dados e o espaço que se poupa é geralmente

negligenciável face ao espaço gasto pelo registo dos factos ocorridos.

No entanto, estes esquemas podem ser úteis quando existe uma sub-dimensão natural

numa dada dimensão. Ou seja, quando os valores de um conjunto, com mais do que um

atributo, caracteriza outro(s) atributo(s) da dimensão. Um caso paradigmático é uma

dimensão que contenha atributos referentes a dados demográficos, como é o caso da

dimensão cliente, por exemplo. O que acontece neste caso, é que associado a cada

cliente é necessário registar os dados que o caracterizam ao nível demográfico, como

por exemplo características da sua faixa etária. Repare que estes dados são repetidos

para todos os clientes da mesma faixa, e que na verdade os dados são característicos

da faixa etária e não de cada cliente individual. É ainda de notar, que nestes casos, a

actualização destes dados pode ser problemática, uma vez que alterações nas

características de uma faixa etária implicam a actualização dos dados de todos os

clientes nessa faixa. Com a normalização da dimensão, o problema fica resolvido.

Exemplo

Repare na dimensão Loja ilustrada na Figura 5. Alguns dos seus atributos são

características da cidade em que a loja se encontra, e não da loja propriamente dita.

Neste sentido, a dimensão Loja seria um forte candidata a ser desnormalizada,

transformando o esquema em estrela da Figura 6 no esquema em floco de neve

ilustrado na Figura 7.

Note que o espaço que se poupa não é a razão principal para a desnormalização. Mais

relevante que esse facto é o reconhecimento da Cidade como uma entidade própria,

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

16

passível de ser analisada por si só, e que requer actualização separadamente da

actualização dos dados referentes às lojas.

Transacção

PK transacção_ID

outros atributos

Promoção

PK promoção_ID

nome data início data fim tipo redução custo promoção

Produto

PK produto_ID

nome número descrição subcategoria categoria marca nome da marca país origem marca distribuidor marca

Data

PK data_ID

dia dia semana dia época mês trimestre ano época feriado dia útil

Vendas

PK data_IDPK produto_IDPK loja_IDPK promoção_IDPK transacção_ID

Quantidade Montante Venda Custo Unitário Produto

Loja

PK loja_ID

nome número endereço código postal cidade_ID

Cidade

PK cidade_ID

nome distrito país região nº habitantes cidade nº lojas cidade

Figura 7 – Esquema em floco de neve

De entre as dimensões em análise, a dimensão Produto apresenta características

semelhantes (neste caso os atributos relativos à marca do produto) e pelas mesmas

razões poderia dar origem a mais uma desnormalização. No entanto, é importante ter

em atenção que a desnormalização das dimensões adiciona complexidade à exploração

de dados, objecto principal dos modelos multidimensionais. Neste sentido, apenas se

deve optar por desnormalizar dimensões quando seja de facto fundamental, quer em

termos do espaço ocupado, quer pela necessidade de actualização e exploração da

própria sub-dimensão. ♦

Cubos

Um outro termo usado (e abusado) no contexto do data warehousing é o termo cubo.

Concretamente, um cubo é uma das estruturas de dados usadas para manipular os

dados que instanciam um determinado modelo multidimensional. As arestas do cubo

correspondem às diferentes dimensões do modelo, e a intersecção dos valores de cada

dimensão, designadas células, expressam a agregação dos factos registados na

combinação dessas condições.

Neste sentido, os cubos são criados de modo a pré-calcular as agregações que são

analisadas mais frequentemente, de forma a acelerar a exploração de dados.

É ainda importante ter em atenção dois aspectos. Primeiro os cubos aqui referidos na

verdade são hipercubos n-dimensionais, com n o número de dimensões em

consideração. O segundo aspecto está relacionado com o nível de detalhe a que cada

Page 17: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 2 – Modelo Multidimensional

17

célula diz respeito. Na verdade, existem vários cubos possíveis para representar um só

modelo: sendo esse número dependente do número de dimensões e do número de

níveis de granularidade de cada dimensão. O número exacto de cubos N é dado pela

Expressão 1, em que n corresponde ao número de dimensões e dimi.níveis diz respeito

ao número de níveis de granularidade para a dimensão dimi.

)1.(dim1

+= ∏=

n

ii níveisN

Expressão 1 – Número de cubos para a uma tabela de factos ligada a n dimensões

A adição de 1 ao número de níveis permite contabilizar os cubos que resultam da

combinação de várias dimensões com a agregação total segundo uma das dimensões.

O cubo que representa os factos ao mais baixo nível de detalhe designa-se por cubo

base, e o cubo ao mais alto nível de detalhe por cubo ápice.

Exemplo

Ainda para o exemplo introduzido (sem considerar a dimensão Transacção), o cubo ápice

resume-se a três valores: o primeiro relativo à quantidade total de produtos vendidos, e

os restantes relativos ao montante total de vendas e ao custo total dos produtos

vendidos.

Quanto ao cubo base, será um hipercubo de 4 dimensões (uma vez mais sem

considerar a dimensão Transacção). De modo a ilustrar o conceito, considere apenas o

montante de vendas efectuado e as dimensões Data, Produto e Loja, usando apenas três

dimensões teremos um cubo1. Considere ainda que foram registados dados durante 5

anos, o que corresponde a 1826 (5x365+1) entradas na tabela Data; e que as lojas e

produtos registados são os definidos nas hierarquias apresentadas na Figura 8.

Lojas

Europa ÁsiaAmérica

Portugal Espanha China

Xangai

EUA

Lisboa Porto Madrid PequimNova York

Amoreiras Colombo GaiaShop L.Madrid L.NY L.Xangai L.Pequim

Produtos

Música Filmes

CDs Romance

Humanos Ainda

Ficção Científica

Before Sunset

Lord of the Rings

MatrixBefore Sunrise

Figura 8 – Hierarquia das dimensões Loja (à esquerda) e Produto (à direita)

O cubo base para este caso teria uma estrutura semelhante à ilustrada na Figura 9.

1 A escolha da quantidade de três dimensões deve-se exclusivamente às restrições de visualização

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

18

Dimen

são L

oja

Matrix

Dim

ensã

o

Pro

du

to ...

Ainda

Humanos

1 2 ... 1826

Amoreiras

L.Pequim

...

Dimensão Data

Figura 9 – Cubo base para três dimensões

Note que se a dimensão Promoção fosse considerada, o cubo apresentado seria o

correcto quando se considerasse esta dimensão ao mais alto nível de granularidade (ou

seja totalmente agregada). Neste caso, cada célula diria respeito ao total das vendas

efectuadas diariamente por loja e produto, considerando todas as promoções.

Para o problema em análise, e se se considerasse apenas a hierarquia “dia << mês <<

trimestre << ano” da dimensão Data, estaríamos na presença de 120 cubos distintos,

resultantes de (4+1)x(4+1)x(3+1), de acordo com a Expressão 1. Visto que a dimensão

Loja possui a hierarquia loja << cidade << país << região, e a dimensão Produto a

hierarquia produto << subcategoria << categoria. ♦

Outros elementos

Apesar dos elementos descritos (tabelas de factos e tabelas de dimensão) solucionarem

as necessidades de grande parte dos problemas, existem situações em que aqueles

elementos não são adequados.

Tabelas de factos sem factos

Considere por exemplo a situação desencadeada por uma promoção. Durante um

determinado período de tempo, existe um conjunto de produtos que podem ser

transaccionados em condições de promoção, com preço mais baixo ou com oferta de

outro produto, por exemplo.

De acordo com o esquema em estrela proposto anteriormente, apenas os produtos que

são transaccionados (ou seja que são comprados) são registados na tabela de factos,

não havendo qualquer informação sobre que produtos eram abrangidos pela promoção e

não foram vendidos.

Repare que acrescentar a lista de produtos abrangidos pela promoção na tabela de

dimensão referente às promoções não é uma solução válida, pois relaciona duas tabelas

de dimensão perfeitamente independentes. No entanto, não registar aqueles dados

revela uma perda de informação significativa, visto que se perde a possibilidade de

Page 18: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 2 – Modelo Multidimensional

19

conhecer que produtos não foram vendidos, apesar das condições mais favoráveis.

De modo a evitar a perda de informação, a solução passa naturalmente por registar

todos os produtos abrangidos por uma promoção. Ora, apesar de não existir nenhuma

medida que associe os produtos à promoção, estas duas entidades estão relacionadas.

Neste contexto surgem as tabelas de factos sem factos (do inglês, Factless Fact

Tables).

Existem principalmente duas situações em que as tabelas de factos sem factos são

úteis: para registar a cobertura de uma determinada situação e para registar eventos que

não têm nenhuma medida associada. Em ambos os casos, a análise destas tabelas é

essencialmente feita através de contagens (count).

Exemplo

A Figura 10 apresenta um esquema em estrela capaz de representar a cobertura de uma

promoção, ou seja, um esquema que permite registar os produtos abrangidos por uma

promoção. Para tal faz-se uso de uma tabela de factos sem factos (Tabela Cobertura da

Promoção).

Promoção

PK promoção_ID

nome data início data fim tipo redução custo promoção

Produto

PK produto_ID

nome número descrição subcategoria categoria marca nome da marca país origem marca distribuidor marca

Cobertura da Promoção

PK produto_IDPK promoção_ID

Figura 10 – Esquema em estrela com tabela de factos sem factos ♦♦♦♦

Dimensões degeneradas

Assim como nem todas as ocorrências (factos) têm uma medida associada, nem todas

as dimensões têm necessariamente atributos que a descrevem.

Um exemplo deste tipo de dimensão é a dimensão Transacção introduzida no exemplo

anterior. O que caracteriza uma transacção? Nos modelos relacionais, o usual é

representar a transacção como uma relação entre o produto e o comprador, tendo como

atributos um identificador, a data e a quantidade vendida. Ora, destes atributos a data

traduz-se numa dimensão de análise e a quantidade vendida o facto registado, restando

apenas o identificador como único atributo da transacção. Na verdade, a transacção

apenas serve como elemento agregador das várias vendas efectuadas numa única

ocorrência. No entanto se não for registada, deixa de ser possível fazer essa agregação.

Neste contexto, surgem as dimensões degeneradas (do inglês degenerate

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

20

dimensions). Concretamente, são dimensões a que não estão associadas tabelas,

apenas uma chave (identificador unívoco).

Essencialmente, este tipo de dimensão é adequado para representar números de

controlo operacionais, como por exemplo o número de uma ordem de compra, de uma

guia de remessa ou de uma factura. Tipicamente ocorrem em tabelas de factos em que

se registam os vários elementos de uma entidade (por exemplo, as linhas de uma

factura, os produtos vendidos numa transacção, etc.).

Exemplo

Considere novamente o problema inicialmente apresentado, em que se pretende registar

diariamente as vendas efectuadas em cada loja, com discriminação dos produtos

vendidos, da transacção, e da existência de alguma promoção.

Loja

PK loja_ID

nome número endereço código postal cidade nº habitantes cidade nº lojas cidade distrito país região

Promoção

PK promoção_ID

nome data início data fim tipo redução custo promoção

Produto

PK produto_ID

nome número descrição subcategoria categoria marca nome da marca país origem marca distribuidor marca

Data

PK data_ID

dia dia semana dia época mês trimestre ano época feriado dia útil

Vendas

PK data_IDPK produto_IDPK loja_IDPK promoção_IDPK transacção_ID

Quantidade Montante Venda Custo Unitário Produto

Figura 11 – Esquema em estrela com dimensão degenerada

O esquema em estrela mais adequado seria semelhante ao apresentado anteriormente

(Figura 6) mas sem a tabela de dimensão Transacção, que resulta no esquema

apresentado na Figura 11.

Dimensões junk

Para além dos elementos referidos existe ainda uma outra classe de dimensões – as

junk dimensions.

Uma dimensão deste tipo é apenas uma forma conveniente de agrupar os atributos

associados aos factos, mas que não são características de nenhuma das dimensões

identificadas, e que não traduzem entidades por si só.

Page 19: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 2 – Modelo Multidimensional

21

A criação de uma dimensão deste tipo evita a proliferação de dimensões degeneradas,

reduzindo o espaço ocupado pela tabela de factos e evitando a perda de informação,

simultaneamente.

Exemplo

Considerando o mesmo problema que anteriormente, o modo de pagamento, a divisa

em que foi efectuado, e a informação sobre se o produto foi devolvido ou se houve

reclamação, são exemplos de atributos que não encaixam directamente em nenhuma

das dimensões identificadas, pelo que o mais adequado seria introduzir uma dimensão

junk, que agregasse estes atributos (como se mostra na Figura 12).

Loja

PK loja_ID

nome número endereço código postal cidade nº habitantes cidade nº lojas cidade distrito país região

Promoção

PK promoção_ID

nome data início data fim tipo redução custo promoção

Produto

PK produto_ID

nome número descrição subcategoria categoria marca nome da marca país origem marca distribuidor marca

Data

PK data_ID

dia dia semana dia época mês trimestre ano época feriado dia útil

Outros

PK outros_ID

devolvido divisa modo pagamento reclamação

Vendas

PK data_IDPK produto_IDPK loja_IDPK promoção_IDPK transacção_IDPK outros_ID

Quantidade Montante Venda Custo Unitário Produto

Figura 12 – Esquema em estrela com uma junk dimension ♦♦♦♦

Sumário

No presente capítulo introduziu-se o modelo multidimensional usado no desenho de

data warehouses, sendo apresentados os seus elementos fundamentais: os factos e

as dimensões.

A par da definição dos esquemas mais usados na criação dos modelos

multidimensionais – esquema em estrela e esquema em floco de neve, é introduzido

o conceito de cubo.

Por fim, apresentam-se outros elementos necessários à resolução de problemas na

modelação dimensional, como são as tabelas de factos sem factos, as dimensões

degeneradas e as dimensões junk.

Page 20: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

23

3 Data Warehousing

A necessidade de criar um repositório de dados exclusivamente dedicado ao apoio do

processo de tomada de decisão, que antes de mais facilitasse a análise dos dados

existentes na organização, levou a que se desenvolvesse um novo tipo de base de

dados – as data warehouses. Na medida em que se foi percebendo que estes dados

podiam traduzir-se numa vantagem competitiva para a organização, o seu tratamento e

integração começou a ser uma prioridade. Nesta perspectiva, as data warehouses

começaram por ter duas características fundamentais: integrarem todos os dados

disponíveis e manterem o histórico desses dados.

Apesar das data warehouses serem usadas universalmente no apoio à tomada de

decisão, o estudo desta área tem sido deixado de lado, existindo pouca ou quase

nenhuma fundamentação teórica para o assunto. No entanto, passada uma década da

sua utilização, os conceitos associados a este tema começam a merecer algum

consenso. Assim, uma data warehouse passou a ser vista como uma colecção de dados

temáticos, integrados, históricos e não-voláteis usados para apoiar o processo de

tomada de decisão [Inmon 1996].

O termo integrado surge para evidenciar o carácter heterogéneo da origem dos dados

armazenados na data warehouse, e reflecte o processamento a que os dados são

submetidos antes do seu carregamento. Na verdade, apesar das melhorias que se têm

verificado no desenho dos sistemas de informação em geral, a coerência entre os

diversos componentes (bases de dados) destes sistemas não é garantida, pois cada

componente tem um objectivo específico e diferenciado. Deste modo, cada um destes

componentes é optimizado de acordo com o seu objectivo principal, e a conjugação dos

dados das várias bases de dados tem de ser feita no contexto da criação da data

warehouse e não na criação de cada uma das bases de dados separadamente.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

24

Um exemplo da necessidade da integração dos dados prende-se com o problema da

identificação de identidades. Suponha a situação em que, num departamento de uma

organização, os clientes são identificados pelo primeiro e último nome (para além de um

identificador próprio) e que noutro departamento é usado o nome completo. De modo a

garantir a unicidade do cliente na data warehouse é necessário identificar o cliente como

um só, de forma a garantir a integridade dos dados.

Os termos histórico e não-volátil estão inter-relacionados e reflectem o carácter

persistente e inalterável dos dados de uma data warehouse. Na verdade, o seu horizonte

temporal é substancialmente diferente do de uma base de dados operacional. Enquanto

que esta tem como objectivo conter os dados válidos para o momento actual, a data

warehouse pretende manter os dados referentes a longos períodos de tempo

(tipicamente cinco a dez anos). Deste modo, em vez de manter apenas os registos

actuais, mantêm-se registos para os vários momentos do período de tempo considerado.

É por esta razão, que é habitual que todos os registos de uma data warehouse sejam

datados, evidenciando-se assim o período de tempo em que a validade dos registos se

verificava.

A não-volatilidade dos dados traduz a manutenção dos registos inalterados na data

warehouse, mesmo quando se efectuam alterações dos registos correspondentes na

base de dados operacional. Na medida, em que não são necessárias actualizações dos

registos da data warehouse, mas apenas a inserção de novos registos, os seus

mecanismos de gestão são bastante mais simples, não sendo necessários mecanismos

que lidem com o processamento de transacções, a recuperação de falhas ou o controlo

de concorrência. Efectivamente, apenas são necessárias operações de carregamento de

registos e de análise dos mesmos.

Finalmente, o termo temático refere-se à organização da data warehouse em redor de

um assunto específico. Este assunto não é mais do que o assunto alvo de análise, e na

data warehouse apenas são registados dados relacionados com o assunto em causa.

Na verdade, todos os dados não relacionados com este assunto são descartados, por

não serem relevantes para o apoio à decisão na área de actuação do sistema de apoio à

decisão.

Naturalmente, que a dimensão das organizações obriga à existência de diversos

assuntos que necessitam de ser analisados. Deste modo, caso a data warehouse

apenas se centrasse num assunto, haveria uma proliferação deste tipo de bases de

dados semelhante à de bases de dados operacionais. Actualmente, são os data marts

que desempenham este papel, e que registam os dados relacionados com um

determinado assunto, fornecendo os meios para o apoio à tomada de decisão nos

aspectos a ele relacionados. Uma data warehouse é então vista como uma colecção de

data marts "ligados" por uma estrutura bem definida, baseada na partilha de um conjunto

de dimensões (como se descreve mais adiante).

Page 21: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 3 – Data Warehousing

25

À data warehouse cabe portanto o papel de integrar os diversos data marts, suportando

o apoio à decisão em toda a organização. Nesta medida, a data warehouse imita a

estrutura da própria organização.

Definidos que estão os conceitos fundamentais relacionados com este tipo de base de

dados, resta perceber o processo da sua construção, manutenção e actualização. Este

processo é designado data warehousing, e é facilitado quando se apoia numa

arquitectura capaz de descrever efectiva e eficazmente a data warehouse no seu todo.

A Tabela 1 apresenta a framework proposta por Kimball [Kimball 2004] para definir a

arquitectura de uma data warehouse. Esta framework é adaptada da famosa framework

de Zachman para os sistemas de informação na sua generalidade [Zachman 1987].

Tabela 1 – Framework para a definição da arquitectura de uma data warehouse Área de arquitectura

Técnica (Como?) Nível de detalhe

Dados (O quê?) Back room Front room

Infra-estrutura (Onde?)

Requisitos do Negócio e

Que informação é necessária? Como é que os dados disponíveis se inter-relacionam?

Como se recolhem os dados, se transformam e se tornam disponíveis para o utilizador?

Quais os indicadores de negócio a ter em consideração? Como serão medidos? Como serão analisados os dados?

Que capacidades deverão ter os dispositivos físicos (hardware)? Destes, o que já existe?

Modelos de arquitectura e documentos

Modelo multidimensional: quais as principais entidades (factos e dimensões) e como se relacionam? Como estruturar estas entidades?

O que é necessário para recolher os dados, torná-los utilizáveis e disponibilizá-los no local e momento certos? Quais os armazéns de dados a criar e onde colocá-los?

De que necessitam os utilizadores para recolher a informação num formato utilizável? Quais as principais classes de análise e relatórios necessários, e quais as prioridades?

Qual a origem dos dados e para onde vão? Quais as capacidades de armazenamento e de processamento necessários? Já existem? Quem é o responsável por elas?

Modelos e especificações

detalhados

Modelos lógico e físico: quais os elementos individuais, as suas definições, domínios e regras de derivação? Quais as fontes de dados e como se mapeiam nos destinos?

Que produtos e standards fornecem as capacidades necessárias? Como se interligam? Quais os standards de desenvolvimento a usar para gestão de código, nomes, etc.?

Quais as especificações para os templates dos relatórios, incluindo linhas, colunas, cabeçalhos, secções, filtros, etc.? Quem necessita deles e quando? Como são distribuídos?

Como se interage com as capacidades de armazenamento e processamento? Quais as funcionalidades e interfaces do sistema?

Implementação Criar as bases de dados, índices, cópias de segurança, etc. Documentar.

Escrever os procedimentos de extracção e de carregamento dos dados. Automatizar o processo. Documentar.

Implementar o ambiente de criação de relatórios e de análise, construir o conjunto base de relatórios e treinar os utilizadores. Documentar.

Instalar e testar as novas componentes das infra-estruturas. Ligar as fontes aos destinos, e estes aos dispositivos de apresentação. Documentar.

Repare que nas colunas desta framework se apresentam as três áreas necessárias à

definição da arquitectura de uma data warehouse: os dados, a componente técnica e a

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

26

infra-estrutura. E que nas linhas, cada um destes aspectos é apresentado com detalhe

crescente.

Partindo desta framework, o desenvolvimento da arquitectura da data warehouse

resume-se a percorrer cada uma das colunas da matriz, da esquerda para a direita e do

topo para a base, de modo a começar pelas definições e terminar nas respectivas

implementações.

Em seguida aborda-se cada uma das áreas, seguindo de perto as contribuições de

Kimball nos seus livros sobre o assunto ([Kimball 2002a] [Kimball 2004]).

Arquitectura de dados

Tendo como objectivo principal a disponibilização dos dados e dos respectivos meios de

análise que facilitem a tomada de decisões, o modelo usado na definição de um data

mart é naturalmente o modelo multidimensional. No entanto, e como um data mart deve

apresentar os dados relevantes para a análise de um assunto, é normalmente composto

por várias tabelas de factos, reflectindo as diferentes medidas relevantes para o assunto

em análise. Deste modo, em vez de um data mart ser definido por um único esquema

em estrela (ou em floco de neve), é normalmente definido por um esquema em

constelação de factos.

Neste contexto, o desenho de uma data warehouse traduz-se no desenho dos vários

data marts que a constituem. Por seu lado, a definição de um data mart resume-se à

identificação dos factos e dimensões relevantes para o assunto a que se dedica.

Apesar da simplicidade do enunciado, o desenho de uma data warehouse requer que o

conjunto dos vários data marts traduzam a globalidade da organização, de forma

coerente e integrada.

The data warehouse bus

A simplicidade do modelo multidimensional leva a que a arquitectura de uma data

warehouse seja também ela de uma enorme simplicidade. Na verdade, a estrutura base

é assegurada por um conjunto de esquemas (em estrela ou em floco de neve), e o

aspecto fundamental é a existência de um elo entre os vários esquemas, de modo a criar

um todo coerente a partir das várias partes.

Mantendo a filosofia da simplicidade, este elo traduz-se apenas na existência de um

barramento de dimensões (do inglês bus dimensions), partilhado pelos diversos

esquemas. Deste modo, a data warehouse transforma-se num conjunto de factos

analisáveis a partir de um conjunto de perspectivas ortogonais, pré-definidas e

horizontais a toda a organização.

Page 22: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 3 – Data Warehousing

27

A estas dimensões partilhadas dá-se o nome de dimensões conformes (conformed

dimensions). O que as distingue das não-conformes é o facto da sua interpretação ser a

mesma para cada uma das tabelas de facto com elas relacionadas. Esta partilha facilita

a utilização da data warehouse, na medida em que a interface de análise dos dados

segundo cada uma das perspectivas é única para cada dimensão, havendo um só

conjunto de atributos para cada perspectiva. Assim, por exemplo, a análise temporal

quer das vendas quer das compras de uma organização será idêntica e efectuada

através da mesma interface. O aspecto mais importante é que a granularidade de

análise será idêntica para todos os factos, não existindo confusão quanto ao significado

dos resultados obtidos.

Repare que a arquitectura de barramento de dimensões não obriga a que todos os

factos sejam analisados pelo mesmo conjunto de perspectivas, mas que todas as

perspectivas de análise são únicas. Por exemplo, em cada data warehouse existirá uma

única dimensão temporal (tipicamente com a granularidade mínima diária, e com um

horizonte temporal de uma década) e uma só dimensão geográfica (tipicamente com a

granularidade mínima correspondente a um ponto geográfico – uma cidade, por

exemplo). As dimensões mais específicas de cada negócio, como os produtos ou os

clientes, habitualmente são constituídas por dezenas de atributos de modo a garantir a

cobertura de todos os aspectos de análise relevantes para os diversos factos.

Para além da existência de dimensões conformes, a definição de factos conformes

facilita a interpretação dos dados. Entende-se por facto conforme um facto que diz

respeito a uma mesma realidade em vários contextos (esquemas) e que é calculado

sempre pela mesma fórmula. Por exemplo, o lucro calculado como a diferença entre o

preço de venda e o preço de compra, é um facto conforme se for usado com o mesmo

significado em todos os esquemas que o contenham.

Para que um facto seja considerado conforme é ainda necessário que seja definido em

contextos dimensionais semelhantes (com base no mesmo conjunto de dimensões e

granularidades) e que seja expresso na mesma unidade de medida. Se um facto pode

ser descrito com naturalidade por mais do que uma unidade de medida em diferentes

contextos, o facto deve ser expresso nas diferentes variantes, de modo a garantir a

coerência da análise.

Criação dos modelos de dados

A arquitectura de uma data warehouse baseada no barramento de dimensões traz ainda

uma outra vantagem – facilita o processo de construção da data warehouse. Ao definir o

conjunto base das dimensões conformes partilhadas entre os vários data marts (e

esquemas), torna-se possível definir e construir a data warehouse de uma forma

incremental.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

28

Deste modo, o desenho de uma data warehouse consiste essencialmente na

identificação das perspectivas de análise e dos processos de negócio principais da

organização. Decompondo os últimos pelos diversos eventos que os compõem. A cada

evento corresponderá um esquema, cujos factos traduzem os eventos em causa e as

perspectivas de análise as dimensões.

Na prática, e partindo dos modelos relacionais das bases de dados operacionais, o

desenho da data warehouse traduz-se numa sequência de três passos:

1. Identificar os processos de negócio a modelar. Para cada processo identificado

criar um data mart.

2. Em cada processo de negócio identificado, seleccionar as relações de muitos-

para-muitos que contêm factos numéricos e aditivos, fazendo-os corresponder

aos factos a analisar (identificação das tabelas de facto).

3. Desnormalizar as relações restantes, definindo as dimensões de análise,

(transformando cada tabela restante do modelo relacional para uma ou mais

tabelas de dimensão).

Depois de identificados os processos de negócio, os factos e as dimensões, resta

estruturar as relações entre eles. A forma mais habitual de representar estas relações é

a utilização de uma matriz – the data warehouse bus matrix.

Dim 1

Dim 2

Dim 3

...

Processos de

Negócio

Dim n

Figura 13 – The data warehouse bus matrix

Esta matriz tem a estrutura apresentada na Figura 13, e faz a correspondência entre os

processos de negócio (representados nas linhas) e as dimensões envolvidas em cada

um deles (representadas nas colunas).

Desenho das tabelas de factos

Apesar da simplicidade do modelo multidimensional e dos esquemas que os

implementam, a complexidade dos processos de negócio existentes nas organizações

reais levam a que seja necessário ter em conta alguns aspectos adicionais na definição

quer das tabelas de factos, quer nas tabelas de dimensão.

Depois de identificadas as dimensões de análise para cada facto, o aspecto mais

Page 23: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 3 – Data Warehousing

29

relevante na definição da tabela de factos prende-se com a granularidade dos mesmos.

Essencialmente podem considerar-se três tipos de factos:

− Os factos que traduzem transacções simples (individual transactions) e que se

traduzem num (ou mais) campo(s) numérico(s) correspondente(s) ao(s) valor(es)

da transacção efectuada. São exemplos deste tipo de factos o montante de

vendas e o número de produtos vendidos.

− Os factos que reflectem uma actividade ocorrida num determinado período de

tempo (snapshots). Estes factos continuam a apresentar uma estrutura simples

mas traduzem por si só um valor agregado, por exemplo o montante de vendas

diário, o saldo de uma conta bancária ao fim de um dia, ou a temperatura média

diária.

− Os factos que correspondem aos itens que compõem uma transacção composta

(line items). Tipicamente este tipo de factos surge ligado a um documento de

controlo como são as ordens de compra ou as facturas, em que cada facto

corresponde a cada linha (item) desse documento.

É ainda importante ter em atenção que não se devem misturar factos respeitantes a

diferentes períodos de tempo ou outro tipo de agregação, só para facilitar a computação

de valores. Cada um destes factos deve portanto existir em tabelas de factos

separadamente.

Desenho das tabelas de dimensão

Os aspectos que influenciam a definição das tabelas de dimensão estão principalmente

ligados às alterações dos valores dos registos nessas dimensões.

Ao contrário dos factos que são inalteráveis por natureza, uma vez que dizem respeito a

ocorrências efectuadas e das quais se pretende manter registo, as instâncias de uma

dimensão podem sofrer alterações ao longo do tempo. Felizmente, estas alterações são

pouco frequentes mas de alguma importância, pelo que não podem ser descartadas.

Essencialmente existem três estratégias de gestão do registo destas alterações:

− Tipo I: actualizar os valores da instância que sofreu a alteração, perdendo os

valores anteriores. Este tipo de actuação apenas é adequado quando há a

detecção de um erro ou quando a análise das alterações não é considerada

relevante pelos analistas do negócio.

− Tipo II: criar uma instância nova a partir da instância que sofreu as alterações,

registando os novos valores. A par desta estratégia é habitual adicionar dois

novos atributos na dimensão – a data de início e a data de fim da validade da

instância. (Repare que são datas, e não identificadores de datas da dimensão

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

30

Tempo, de modo a manter a independência entre as dimensões.) Este tipo de

actuação é adequado quando existe uma partição clara das instâncias ao longo

do tempo. Um exemplo paradigmático é a dimensão Produto, que deve

conseguir manter registo dos diversos produtos, identificando claramente o

período de vida de cada um deles.

− Tipo III: criar um atributo adicional (valor antigo) que regista o valor anterior à

alteração. Esta estratégia é adequada quando não existe uma partição clara

entre as instâncias, e quando continua a ser possível lidar com a instância

apesar da alteração.

Das três estratégias descritas, a segunda é a mais usada por ser a mais robusta e por

não ocorrer perda de informação. No entanto, a primeira e a terceira são adequadas nas

situações descritas.

Arquitectura técnica

A arquitectura técnica cobre os processos e ferramentas a aplicar aos dados, desde os

aplicados na sua recolha dos diversos repositórios de origem, até aos aplicados para

permitir a sua disponibilização ao utilizador final, passando pelos que permitem a sua

transformação e transporte.

Front RoomBack Room

Área de Preparação de

DadosCarregamento

Ext

racç

ão

Gestão de Interrogações

Elaboração de Relatórios

Segurança e Acesso aos Dados

Monitorização

Navegação na DW

Catálogo de Metadados

Data Marts com Dados Agregados

Data Marts com Dados Atómicos

Servidores de Apresentação

DW Bus

Sistemas de Origem

Transformação

Aplicações Externas

Figura 14 – Modelo geral da arquitectura técnica de uma data warehouse

A Figura 14 apresenta o modelo geral para a arquitectura técnica de uma data

warehouse. Neste modelo existem dois tipos de elementos: os serviços representados

por setas e rectângulos e os armazéns de dados, representados por rectângulos de

cantos arredondados. Enquanto que os primeiros são responsáveis por efectuar as

tarefas necessárias na data warehouse (desde a sua construção / manutenção até ao

acesso aos seus dados), os segundos servem de repositório dos dados, desde a sua

recolha, passando pelo seu tratamento até à sua disponibilização.

Page 24: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 3 – Data Warehousing

31

De entre os armazéns de dados existentes é de salientar o catálogo de metadados.

Este repositório é a peça central da criação, manutenção e expansão da data

warehouse, uma vez que contém os dados que descrevem a localização e definição dos

armazéns de dados de origem e de destino. Para além disto, descrevem as

transformações a que os dados recolhidos são submetidos, assim como a temporização

e interdependências daquelas transformações. Por outras palavras, os metadados

determinam o percurso que os dados fazem desde os sistemas origem até ao utilizador

final.

Ao contrário do ideal, muitas vezes os metadados não estão contidos num único

repositório de dados. Em vez disto, os metadados estão distribuídos pelos vários

serviços e ferramentas, embebidos no seu código.

Para além do catálogo de metadados, a arquitectura técnica envolve mais três peças

distintas: a componente responsável pela aquisição dos dados, habitualmente designada

por back room ou data staging, a componente dedicada à disponibilização dos dados,

habitualmente designada por front room ou data access e os servidores de

apresentação.

Note que os servidores de apresentação (presentation servers) são simplesmente os

dispositivos físicos em que os dados da data warehouse são guardados, aglomerando

os diferentes data marts criados, que partilham factos e dimensões conformes.

Aquisição de dados (back room)

O back room de uma data warehouse é a componente responsável por povoar a data

warehouse com os dados necessários. Essencialmente envolve três preocupações: a

extracção dos dados das suas diferentes fontes (os repositórios dos sistemas de

origem), a sua transformação de forma adequada e o seu carregamento no seu destino

final – os servidores de apresentação.

É o conjunto destas operações que normalmente se designa por processo ETL (do

inglês Extraction, Transformation and Loading), e são elas que devidamente executadas

permitem o povoamento do data warehouse com os dados necessários à tomada de

decisão.

É ainda de salientar que com a evolução verificada no domínio do Data warehousing,

grande parte destas operações é efectuada recorrendo a ferramentas específicas para o

efeito, habitualmente disponíveis como pacotes diferenciados nas aplicações de

business intelligence.

Quer se use uma ferramenta comercial, quer se implemente uma aplicação dedicada, o

processo de preparação de dados começa pela definição de um esquema geral do fluxo

dos dados da origem até ao destino, seguindo-se a experimentação / adaptação das

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

32

ferramentas ETL para o caso em análise.

Depois da decisão de que ferramentas usar, o esquema de fluxo de dados é então

detalhado, especificando as transformações complexas a aplicar aos dados, e definindo

o processo de geração das chaves de cada uma das tabelas de dimensão. É ainda

necessário definir a sequenciação das operações a aplicar. Depois destas definições,

passa-se ao carregamento das dimensões e dos factos, terminando com a

automatização do processo.

Extracção

O primeiro grande desafio no povoamento da data warehouse é recolher os dados,

necessários e suficientes para a tomada de decisão, existentes na panóplia de bases de

dados da organização. A dificuldade prende-se particularmente com a disparidade

existente entre as múltiplas origens dos dados, o que por si só normalmente implica a

manipulação de diferentes sistemas de gestão de bases de dados, sistemas operativos e

protocolos de comunicação.

A estratégia para ultrapassar esta dificuldade passa pela elaboração de um documento

que defina o mapeamento dos dados dos sistemas origem para os sistemas destino,

identificando cada um dos elementos necessários para a análise. Este mapeamento

deve descrever de onde (de que armazém de dados / base de dados, de que tabela e de

que coluna) se extrairão os dados para povoar cada atributo das dimensões e factos da

data warehouse. Para além disto, deve conter uma descrição detalhada de cada um

destes atributos, bem como das transformações a aplicar aos dados extraídos para os

preencher.

De forma a elaborar um tal documento é habitual começar por documentar cada um dos

sistemas de origem, de modo a identificar todos os dados ali guardados. O mais

frequente é criar / analisar o diagrama ER (entidade-relação) do sistema, identificando

simultaneamente os identificadores unívocos de cada elemento, o seu tipo e a

cardinalidade das relações existentes.

É também nesta fase que se efectua uma primeira análise da qualidade dos dados.

Análise esta superficial, que visa sobretudo a identificação das múltiplas fontes para os

mesmos dados, e a identificação de situações problemáticas como é o caso da

existência de elementos com um número significativo de valores omissos (NULL values).

Para além disto é importante documentar o formato em que os dados se encontram

registados nas diversas fontes, dando particular relevo aos dados do tipo Data.

O último aspecto importante na fase de extracção é a identificação das características

dos dados nos sistemas de origem que são determinantes para a escolha de um

mecanismo de gestão de alterações. Neste contexto, o fundamental é distinguir os

dados já extraídos dos dados novos, e simultaneamente identificar alterações nos dados

Page 25: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 3 – Data Warehousing

33

registados nos sistemas de origem, de modo a propagar estas alterações para os

sistemas destino. Como foi descrito na secção anterior, as alterações nos dados de

origem podem ser geridas segundo três estratégias diferentes (tipo I, II ou III). É na fase

de extracção que estas estratégias são escolhidas, e que se determinam as técnicas de

identificação de alterações. Naturalmente, que estas técnicas dependem dos dados

registados nos sistemas origem. Os meios mais usados são descritos a seguir.

A técnica mais simples pode ser usada quando os dados dos sistemas de origem têm

associado o instante em que foram introduzidos (estes dados são normalmente

designados por campos de auditoria – audit columns). Quando isto acontece, é

suficiente comparar aquele instante com o instante da data de carregamento dos dados

na data warehouse, e adicionar apenas os dados posteriores a este último instante.

A segunda técnica (logs sniffing) baseia-se na consulta dos logs que descrevem as

operações efectuadas sobre os dados de origem, sendo suficiente recolher os dados

afectados. A maior dificuldade na utilização desta técnica reside na gestão do sistema de

origem, que muitas vezes esvazia aqueles logs, implicando a perda da informação sobre

as alterações efectuadas.

A última técnica, designada processo de eliminação (process of elimination), consiste em

manter uma cópia do último carregamento efectuado na data warehouse, e comparar o

conteúdo do sistema de origem com aquela cópia. O novo carregamento conterá apenas

os dados que pertencem ao sistema de origem e que não pertencem à cópia.

Naturalmente que depois de extraídos, os dados necessitam de ser armazenados, ainda

que temporariamente, para facilitar a sua transformação. O conjunto destes armazéns

temporários é parte integrante do back room da data warehouse e designa-se por data

staging area, ou área de preparação de dados.

Transformação

Uma vez na área de preparação de dados, e antes de proceder ao seu carregamento na

data warehouse, os dados são submetidos a um conjunto de operações de

transformação, tendo dois objectivos principais: a garantia da qualidade dos dados

(cleaning) e a conversão dos dados dos formatos de origem para o formato destino

(conforming).

Qualidade dos dados

Antes de prosseguir com a descrição das transformações a aplicar aos dados, é

necessário abordar um aspecto de enorme importância para o sucesso da data

warehouse – a qualidade dos dados.

Muito tem sido dito acerca deste assunto, em particular pelos fornecedores de

ferramentas de business intelligence. O aspecto central, é que se os dados não forem de

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

34

qualidade a data warehouse fornecerá indicações incorrectas sobre o negócio, que

poderão em vez de ajudar, prejudicar a tomada de decisão.

Em particular, para que os dados sejam considerados de qualidade têm de ser correctos,

não ambíguos, consistentes e completos.

A correcção dos dados de uma data warehouse está directamente relacionada com a

sua conformidade com os dados registados nos sistemas de origem, em particular com a

sua actualização. A não ambiguidade está relacionada com a necessidade de garantir

que a sua interpretação é unívoca e comum em toda a organização. A consistência por

sua vez, diz respeito à garantia de que não existem dados contraditórios na data

warehouse, e que simultaneamente existe uma notação única para os representar.

Desta forma, todos os elementos dos sistemas de origem que referenciam uma mesma

realidade, serão representados na data warehouse por um único elemento. Por fim, a

completude garante que não existem valores omissos (NULL values) nos dados finais,

e que na sua agregação não são perdidos registos. Note que a inexistência de valores

omissos não obriga a que todos os valores registados na data warehouse sejam

conhecidos, apenas que todos os atributos registados têm um valor associado. Deste

modo, é habitual que os valores omissos sejam codificados usando valores como “Valor

desconhecido” ou “Não aplicável”.

Apesar dos vários alertas para a necessidade de garantir a qualidade dos dados, e

sobretudo devido à falta de cuidado na construção dos primeiros sistemas de

informação, os dados nos sistemas originais padecem de vários problemas. Em

particular, é habitual encontrar o uso inconsistente e não documentado de códigos (com

significado apenas para alguns colaboradores da organização), assim como a utilização

de campos de texto para registar todo o tipo de dados importantes. Para além disso,

muitas vezes, o mesmo campo de uma tabela é usado para diferentes propósitos, umas

vezes por má utilização do sistema, outras vezes por alterações aos sistemas de recolha

de dados, mantendo o mesmo repositório de dados. Por último, são importantes a

existência de valores omissos (muitas vezes, consequência de sistemas de recolha de

dados mal desenhados) e a existência de valores incorrectos ou com múltiplas

instâncias. Um exemplo flagrante deste último caso, são as múltiplas representações

usadas para registar um mesmo nome ou morada.

A garantia da qualidade dos dados é conseguida, em primeiro lugar, com a detecção dos

erros existentes. Um contributo essencial para este esforço é o documento descritivo dos

sistemas de origem, criado durante a descoberta de dados na etapa de extracção.

Partindo deste documento e de um conjunto de operações de inspecção de qualidade, o

primeiro objectivo é criar uma tabela de erros (error event table), que nas suas linhas

contém cada erro detectado e cada aspecto relacionado com a falta de qualidade. Esta

tabela não é mais do que uma tabela de factos, cujas chaves estrangeiras dizem

respeito a três tabelas de dimensão: a tabela de datas de inspecção (date dimension), a

Page 26: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 3 – Data Warehousing

35

tabela de lotes (batch dimension) e a tabela de inspecções (screen dimension).

A tabela de datas de inspecção é uma tabela standard para a dimensão Data, e

apenas pretende registar o instante da detecção do erro. Por sua vez, a tabela de lotes

contém uma entrada para cada conjunto de inspecções programadas. Ou seja, contém

os dados relativos a cada sequência de inspecções que serão aplicadas aos dados.

Deste modo, esta dimensão conterá detalhes sobre os registos inspeccionados, desde a

duração da inspecção até ao número de registos processados. Por seu lado, a tabela de

inspecções contém os dados relativos a cada inspecção de qualidade que pode ser

efectuada, contendo atributos como a etapa do processo em que a inspecção é

efectuada, o tipo da inspecção (se verifica a correcção ou validade, por exemplo), uma

classificação da gravidade dos erros que a inspecção permite identificar e o tratamento

da excepção a aplicar quando são detectados aqueles erros. É ainda habitual que a

dimensão de inspecções contenha duas sub-dimensões: a dimensão de tabelas e a

dimensão de sistemas de origem, como se mostra no esquema em floco de neve

representado na Figura 15. Note que as tabelas na primeira dimensão, pertencem quer

aos sistemas de origem quer à data staging area. E que sempre que pertencem aos

primeiros, é possível identificar a origem dos erros, facilitando a reengenharia dos

sistemas de informação da organização.

Por último, a tabela de erros contém ainda o identificador do registo em que foi

detectado o erro, traduzindo-se este identificador numa dimensão degenerada (“registo”

na Figura 15).

Datas Inspecção

PK dataID

atributo1 atributo2 atributon

Tabelas

PK tabelasID

nome atributo 1 atributo 2 atributo n

Inspecção

PK inspecçãoID

tabelasID tipo categoria etapaETL tratamento excepção gravidade do erro sisOrigemID

Sistemas Origem

PK sisorigemID

nome atributo 1 atributo 2 atributo n

Lote

PK loteID

atributo1 atributo2 atributon

Erros

PK inspecçãoIDPK dataIDPK loteIDPK registo

gravidade total

Figura 15 – Esquema associado à tabela de erros

Contendo todos estes dados, a tabela de erros apresenta-se como uma ferramenta

fundamental para o aumento da qualidade dos dados, pois documenta todas as

situações de falta de qualidade detectadas. Com esta documentação é então possível a

correcção destas situações, quer através da transformação dos dados recolhidos, quer

pela intervenção ao nível dos sistemas operacionais.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

36

O segundo resultado do esforço de garantia da qualidade, é a criação de uma segunda

tabela – a tabela de auditoria (audit table). Esta tabela não é mais do que uma tabela

de dimensão, que pretende descrever a qualidade dos dados registados em cada

entrada das tabelas de factos da data warehouse. Deste modo, esta tabela de dimensão

passa a ser mais uma dimensão associada às tabelas de factos, permitindo a avaliação

da qualidade final dos factos registados na data warehouse.

Antes de passar à fase seguinte, é importante referir os meios mais usados na detecção

das situações de falta de qualidade dos dados. Estes meios traduzem-se

essencialmente nas inspecções a aplicar para a construção da tabela de erros. Estas

englobam essencialmente três tipos de verificação: às propriedades dos atributos

(column property enforcement), à estrutura dos dados (structure enforcement) e aos

seus valores individuais (data and value enforcement). As primeiras destas verificações

analisam cada um dos atributos de modo a identificar valores omissos, valores isolados

(outliers), valores inválidos e padrões de ocorrências. A análise da estrutura centra-se

nas relações entre os atributos, de forma a garantir a correcção das chaves primárias e

das chaves estrangeiras, assim como a verificação da integridade referencial dos vários

elementos. Por último, a verificação do valor individual dos dados faz uso do

conhecimento das regras do negócio para garantir que os dados estão de acordo com

essas regras.

É ainda importante referir que, habitualmente, estas verificações não podem ser

realizadas usando a totalidade dos dados, dadas as grandes quantidades registadas.

Em vez disso, usam-se amostras dos dados (no sentido estatístico do termo), garantindo

assim que os dados analisados são representativos da totalidade dos dados existentes.

Serviços de transformação (cleaning and conforming)

Depois de identificadas as situações de falta de qualidade, e de documentadas

convenientemente nas tabelas de erros e de auditoria, o processo centra-se na

transformação dos dados, de modo a ultrapassar aquelas situações sempre que possível

e gerar os dados finais a registar. As várias transformações a aplicar sobre os dados

recolhidos dividem-se essencialmente em quatro categorias.

A primeira categoria de serviços de transformação agrupa os serviços de integração,

que têm como função garantir a unicidade dos elementos a registar na data warehouse.

Entre estes serviços encontram-se os responsáveis pela geração de chaves unívocas (e

sem significado adicional) para cada um dos elementos, assim como o mapeamento dos

identificadores dos elementos dos sistemas de origem para os elementos da data

warehouse. São ainda estes serviços que são responsáveis por traduzir os códigos

usados e registados nos sistemas de origem, de modo a melhorar / viabilizar a

interpretação dos dados registados.

Na segunda categoria, muitas vezes confundida com a totalidade das operações de

Page 27: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 3 – Data Warehousing

37

transformação, encontram-se os serviços de limpeza (habitualmente designados em

inglês por cleansing). Entre as operações de limpeza destacam-se as dedicadas ao

processamento de nomes e moradas e as dedicadas ao tratamento de valores omissos.

O primeiro assunto é de vital importância para a eliminação de diferentes registos para

uma mesma entidade. Note que só deste modo é possível avaliar correctamente o

potencial de cada cliente, ou que se garante que uma determinada publicidade chega a

um cliente potencialmente interessado, por exemplo. O tratamento de valores omissos,

não é menos importante, uma vez que em muitos sistemas legados, o seu registo era

feito recorrendo a um valor específico (em vez do valor NULL). Neste caso, é possível e

muito frequente que os valores registados alterem significativamente o valor das

agregações efectuadas, sendo profundamente negativo o seu contributo para o processo

de tomada de decisão.

A terceira categoria engloba os serviços de conversão, autores da tradução dos dados

originais, incluindo os seus formatos e valores, nos dados a registar na data warehouse.

Entre estes serviços encontram-se os responsáveis pela conversão de tipos de dados

(por exemplo de inteiros de 16 para 32 bits), e os responsáveis por efectuar as

agregações e os cálculos necessários para gerar os dados necessários. São ainda os

serviços desta categoria que habitualmente mapeiam os dados recolhidos dos sistemas

de origem e residentes temporariamente na área de preparação de dados (data staging

area) para o modelo multidimensional, em particular para tabelas de factos e dimensões.

Uma vez que os dados recolhidos são registados quer normalizados (de acordo com o

modelo ER) quer completamente desnormalizados em ficheiros de texto, estes serviços

designam-se por serviços de desnormalização e renormalização (denormalization /

renormalization).

A última categoria engloba os serviços de validação. Estes serviços disponibilizam os

meios para verificar que os elementos a registar na data warehouse estão correctos

(data content audit) e que não existem factos que se refiram a elementos não registados

nas tabelas de dimensão. Este último aspecto é habitualmente designado por verificação

da integridade referencial (do inglês referential integrity checking). É ainda entre estes

serviços que se encontram os responsáveis pela geração de logs de auditoria (data

lineage audit), que registam todas as operações aplicadas aos dados originais, de modo

a permitir a identificação da ocorrência de erros durante o processamento.

Carregamento

Com a transformação dos dados, de modo a que fiquem de acordo com o modelo

multidimensional e simultaneamente, melhorando a sua qualidade, é então o momento

de transferir estes novos dados para o seu destino final – a data warehouse.

Esta operação é habitualmente designada carregamento (do inglês loading), e tem

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

38

como finalidade povoar a data warehouse com os dados existentes na organização.

Essencialmente distinguem-se dois tipos de extracção de dados. O primeiro, e mais

simples, designado carregamento completo (full refresh), traduz-se na recolha inicial

dos dados para efectuar o primeiro carregamento da data warehouse. Esta operação

pode ser repetida sempre que se detecta inconsistência nos dados da data warehouse.

O segundo tipo tem como fim a actualização da data warehouse com as alterações dos

registos nos sistemas operacionais, actualizações estas denominadas carregamentos

incrementais (incremental loads).

Em paralelo com a transferência dos dados para a data warehouse, são os serviços de

carregamento os responsáveis por efectuar as operações de gestão da data warehouse,

nomeadamente na criação de índices e vistas de modo a aumentar a eficiência dos

acessos aos dados. São também estes serviços que gerem a distribuição dos dados

pelos vários repositórios da data warehouse, garantindo a coerência e actualização dos

dados em todos eles (support for multiple targets).

O carregamento das data warehouses habitualmente segue uma sequência de

operações definida. No primeiro passo são carregadas as tabelas de dimensão, e só

depois deste carregamento estar terminado, se procede ao carregamento das tabelas de

factos. Seguindo esta sequência, torna-se mais fácil a verificação da integridade

referencial de todos os dados guardados.

Controlo de tarefas (job control)

O último componente da arquitectura técnica a montante da data warehouse (ainda no

back room) diz respeito ao controlo de tarefas (job control). Pois este não é mais do que

o responsável pela criação, gestão e verificação de todo o processo ETL. Em particular,

é ele quem garante a automatização da actualização periódica da data warehouse.

Entre os serviços de controlo de tarefas, podem distinguir-se duas categorias.

A primeira categoria engloba os serviços de definição e automatização do processo,

incluindo em particular a definição das tarefas (job definition) e o seu agendamento (job

scheduling). É ainda nesta categoria de serviços que se encontram os serviços

responsáveis pelo tratamento de erros e de excepções. É de notar que os erros dizem

respeito a problemas detectados no processamento das tarefas (process errors) e que

as excepções se referem a problemas detectados no valor dos dados (data exceptions).

Os serviços de monitorização constituem a segunda categoria de serviços de controlo

de tarefas e fornecem os meios para o acompanhamento e verificação da correcção da

execução do processo. Em particular é fundamental a capacidade de efectuar

notificações, de modo a avisar o gestor da data warehouse de eventuais erros e

excepções. Não menos importante é a geração de logs, que documentem a execução de

todo o processo em cada uma das actualizações da data warehouse.

Page 28: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 3 – Data Warehousing

39

O processo ETL é tipicamente composto pela sequência de onze tarefas: 1. Extracção dos dados das dimensões e registo dos metadados respectivos. 2. Extracção dos dados referentes aos factos e registo dos metadados respectivos. 3. Processamento das dimensões. 4. Processamento dos factos:

a. Verificação da integridade referencial b. Processamento de registos falhados

5. Carregamento das dimensões 6. Carregamento dos factos atómicos 7. Carregamento dos factos agregados 8. Revisão do processo de carregamento 9. Actualização dos índices e instante do carregamento 10. Registo dos metadados referentes ao controlo de tarefas 11. Verificação do sucesso do carregamento dos dados

Acesso aos dados ou front room

Enquanto que o back room é a componente responsável por povoar a data warehouse, o

front room fornece os meios essenciais ao acesso aos dados por parte quer de

utilizadores quer de outras aplicações. Repare que o front room é a face visível da data

warehouse, sendo em muitos casos confundido pelos utilizadores com a própria data

warehouse.

Neste contexto, o front room é uma peça fundamental para o sucesso do sistema. Para

que represente o seu papel ao melhor nível, o front room tem de disponibilizar os dados

registados aos utilizadores, dissimulando a sua complexidade. Deste modo, esta

componente traduz-se numa camada entre a data warehouse e os utilizadores finais.

Essencialmente o front room fornece cinco categorias de serviços.

A primeira categoria fornece os meios para a navegação na data warehouse. Com estes

torna-se possível a consulta da sua estrutura, assim como a descrição e forma de

derivação de cada um dos elementos da data warehouse (dimensões, factos e

respectivos atributos). Note que estas informações são dadas ao nível do negócio e não

ao nível técnico. Por exemplo, não é relevante de onde foram recolhidos os dados, ou

que transformações sofreram para povoar a data warehouse. Mas a forma de cálculo de

um atributo, como por exemplo, os lucros, é fundamental, para que os utilizadores

saibam exactamente como interpretar os resultados obtidos. A forma mais eficiente de

fornecer este tipo de informação é permitir a navegação sobre o próprio catálogo de

metadados da data warehouse.

Os serviços de acesso e segurança garantem que apenas os utilizadores permitidos

acedem aos dados (autenticação), e que mesmo estes apenas podem consultar os

dados para que possuem autorização. Tanto a autenticação como a autorização são

áreas bastante estudadas no domínio da segurança informática.

O terceiro conjunto de serviços possibilita a consulta dos dados sobre a utilização da

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

40

data warehouse, e designam-se serviços de monitorização da actividade. Estes

serviços devem possibilitar a avaliação do desempenho da data warehouse, de modo a

tornar possível a sua optimização (tuning). Também devem permitir o acompanhamento

da actividade dos utilizadores na sua exploração da data warehouse, de modo a ajudá-

los a melhorar as suas abordagens. Através da publicação de pequenos relatórios, estes

serviços servem para revelar o sucesso ou insucesso da utilização da data warehouse

em cada momento.

A quarta categoria acumula os serviços de gestão de interrogações, que encerra a

responsabilidade de permitir a formulação de interrogações, a sua execução sobre a

data warehouse e a entrega do resultado ao utilizador. Entre os aspectos relevantes

destacam-se a simplificação do conteúdo da data warehouse de modo a esconder

complexidade e a reformulação de interrogações, de modo a possibilitar a introdução de

interrogações complexas de uma forma simplificada, perto da linguagem do negócio.

Não menos importantes são as operações de gestão de interrogações que impedem a

execução de interrogações que prejudiquem gravemente o desempenho da data

warehouse. Entre as opções de gestão destacam-se o estabelecimento de limites para o

tempo de execução ou para a quantidade de dados a devolver.

Por último os serviços de elaboração de relatórios. Os relatórios (reports) são um

dos meios fundamentais ao apoio à decisão, uma vez que apresentam de forma sucinta

um conjunto de dados que revelam o estado da organização de acordo com

determinados ângulos de análise. Com os dados registados na data warehouse, torna-se

possível a elaboração de relatórios standard , gerados automática e regularmente. Com

este tipo de documento com formato bem definido, é então mais fácil analisar um

determinado aspecto de forma sistemática ao longo do tempo. Deste modo, os serviços

de elaboração de relatórios devem possibilitar a criação automática e previamente

agendada dos relatórios, devendo fornecer ambientes de desenvolvimento flexíveis,

capazes de produzir os modelos dos relatórios a gerar eficientemente. Os aspectos mais

relevantes nestes ambientes de desenvolvimento, são a capacidade de criar relatórios

parametrizados e de os distribuir através de meios variados, desde a sua publicação na

web, até ao seu envio por correio electrónico, passando pela sua impressão em

documentos para os gestores de topo.

Para além das cinco categorias de serviços disponibilizadas pelo front room da data

warehouse, é habitual encontrar mais duas aplicações: data mining e exploração de

dados OLAP. Ambas descritas em maior detalhe nos capítulos que se seguem.

Infra-estrutura

Quanto ao último aspecto relevante para a definição da arquitectura da data warehouse,

a infra-estrutura, esta diz respeito à(s) plataforma(s) que suporta(m) os dados e os

Page 29: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 3 – Data Warehousing

41

processos a eles aplicados. Por plataformas entendam-se os dispositivos físicos

(hardware) e os sistemas operacionais. Note que muitos destes elementos existem para

além da data warehouse, fazendo parte do sistema de informação da organização.

Os aspectos relevantes para a escolha das infra-estruturas estão essencialmente

relacionados com a quantidade de dados a registar na data warehouse, a sua

volatilidade, ou seja, a frequência das actualizações, o número de utilizadores e a

natureza da sua utilização, e o por último, mas não menos importante, o número e

complexidade dos processos de negócio que a data warehouse pretende suportar.

Para além destes factores, a decisão de que hardware e software usar é tomada tendo

em conta as políticas da organização, nomeadamente a sua experiência instalada.

Sumário

No presente capítulo apresentam-se as noções relacionadas com as bases de

dados usadas no suporte ao processo de tomada de decisão – as data warehouses,

apresentando-se o seu processo de criação e manutenção – processo de Data

warehousing.

Dos passos fundamentais do processo, apresenta-se a etapa de desenho como um

dos aspectos principais para o sucesso da data warehouse. A destacar há a

definição da arquitectura de dados e da arquitectura técnica. Nesta última, dá-se

particular relevo às etapas de extracção, transformação e carregamento dos dados,

que conjuntamente são designadas por processo ETL.

Page 30: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

43

4 Exploração de Dados

A exploração de dados necessária para a tomada de decisão efectiva e informada

apresenta exigências a que, como já foi referido, os sistemas operacionais (usualmente

designados sistemas OLTP – Online Transaction Processing) não dão uma resposta

satisfatória. Uma das razões para tal é a sua incapacidade de manipular de forma

eficiente dados agregados, capazes de explicitar as regras do negócio.

A tecnologia OLAP (Online Analytical Processing) surge para dar resposta a esta

necessidade, manipulando, em grande parte dos casos, cubos em vez de tabelas

relacionais. A sua capacidade de manipular dados agregados facilita a análise dos

dados tornando-a mais eficiente. Este aumento de eficiência deve-se sobretudo à

possibilidade de armazenar persistentemente os dados agregados (sob a forma de

cubos), eliminando a necessidade de calcular as agregações necessárias durante a fase

de análise.

Em concreto, a tecnologia OLAP distingue-se da tecnologia OLTP essencialmente em

duas vertentes: os dados manipulados e a sua finalidade.

Como se viu, a tecnologia OLAP manipula cubos, ou seja, dados multidimensionais em

vez de dados relacionais normalizados. Por outro lado, a finalidade da tecnologia OLAP

é fornecer um meio de explorar os dados registados, em vez de suportar a operação

diária do negócio. Nesta perspectiva, o OLAP pretende oferecer um acesso rápido e

flexível ao próprio negócio, permitindo para tal a identificação de tendências temporais e

outras relações importantes.

Com estes objectivos como guia, a tecnologia OLAP tornou-se amplamente usada e

aceite pela indústria, sendo reconhecida pelo seu alto desempenho e facilidade na

elaboração de relatórios (reporting) sobre grandes quantidades de dados.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

44

Operações OLAP

Apesar da inexistência de uma especificação standard , a tecnologia OLAP baseia-se

num conjunto de interrogações (queries) que se aplicam sobre cubos, dando origem a

outros cubos, mais ou menos detalhados, que permitam uma análise dos dados mais

fácil. Estas interrogações, também designadas por operações OLAP, apesar de

amplamente divulgadas são no entanto implementadas das mais diversas formas, e com

nomes distintos, nas diferentes ferramentas. No entanto, é possível identificar quatro

operações fundamentais e algumas operações auxiliares comuns às várias soluções

comerciais.

A seguir descrevem-se estas operações. De modo a ilustrar a aplicação de cada

operação, usar-se-á o cubo C, desenhado no capítulo 2 – Figura 9 e que será

reproduzido em cada operação para maior facilidade de interpretação.

Recorde-se que para o problema em análise, se consideraram as hierarquias “dia << mês

<< trimestre << ano” para a dimensão Data, a hierarquia loja << cidade << país << região

para a dimensão Loja, e a hierarquia produto << subcategoria << categoria para a

dimensão Produto.

Roll-up

A operação roll-up consiste na criação de um novo cubo pela agregação das células de

um outro cubo, segundo alguma das suas dimensões. Por outras palavras, um novo

cubo é criado subindo na hierarquia de uma dimensão particular.

A aplicação de uma operação roll-up ao cubo C segundo a dimensão D será denotada

por roll-up( C, D ).

Por exemplo, o cubo C desenhado anteriormente (reproduzido na Figura 16 à esquerda)

dá origem ao novo cubo C2 representado na Figura 16 à direita, se for aplicada uma

operação roll-up para a dimensão Data (C2�roll-up( C, Data )).

Roll-up(C, Data)

Dimen

são L

oja

Dimensão Data

Dim

ensã

o

Pro

du

to

Jan01

Fev01

...Dec05

Matrix

...

Ainda

HumanosAmoreiras

L.Pequim

...

Dimen

são L

oja

Matrix

Dim

ensã

o

Pro

du

to ...

Ainda

Humanos

1 2 ... 1826

Amoreiras

L.Pequim

...

Dimensão Data

Figura 16 – Operação roll-up na dimensão Data

Page 31: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 4 – Exploração de Dados

45

Repare que se fossem aplicadas mais três operações de roll-up2 na mesma dimensão

(Data), o cubo passaria a ser bidimensional, ou seja uma tabela apresentando o

montante de vendas de cada Produto em cada Loja.

Obviamente, a operação de roll-up aplicada ao cubo ápice não produz qualquer

resultado; o mesmo acontecendo se aplicada segundo uma dimensão não representada

no cubo alvo.

Drill-down

A operação drill-down é a inversa da operação roll-up, e portanto cria um cubo com

granularidade mais fina para a dimensão definida.

À semelhança da sua inversa, a aplicação de uma operação de drill-down ao cubo C

segundo a dimensão D será denotada por drill-down( C, D ).

Por exemplo, a aplicação da operação drill-down( roll-up( C, Data ), Data ) resulta no cubo

C (como se ilustra na Figura 17).

Drill-down(C2, Data)

Dimen

são L

oja

Matrix

Dim

ensã

o

Pro

du

to ...

Ainda

Humanos

1 2 ... 1826

Amoreiras

L.Pequim

...

Dimensão DataDimen

são L

oja

Dimensão Data

Dim

ensã

o

Pro

du

to

Jan01

Fev01

...Dec05

Matrix

...

Ainda

HumanosAmoreiras

L.Pequim

...

Figura 17 – Operação drill-down segundo a dimensão Data

Da mesma forma, que a operação de roll-up não produz efeitos quando aplicada ao cubo

ápice, a operação drill-down não produz qualquer resultado quando aplicada ao cubo

base.

Quando aplicada segundo uma dimensão não representada no cubo alvo, a operação de

drill-down cria um cubo idêntico mas com mais uma dimensão.

Slice

A operação slice, por sua vez, aplica um filtro ao cubo, devolvendo apenas os dados que

satisfazem a restrição imposta para a dimensão enunciada.

2 O primeiro roll-up resultaria num cubo semelhante mas com granularidade trimestral; com o segundo roll-up a

granularidade passaria a ser anual; e com o terceiro a dimensão Data seria completamente agregada.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

46

O subconjunto dos dados do cubo C que satisfazem a restrição R na dimensão D é

obtido pela aplicação da operação slice( C, D.member∈R). Repare que este subconjunto

dos dados continua a ser um cubo, mas com menos uma dimensão – a dimensão D.

Slice(C, Loja.member=L.NY)

Dim

ensã

o

Pro

du

to

...

L.NY

Dimensão Data1 2 1826

Dimen

são L

oja

Matrix

Dim

ensã

o

Pro

du

to ...

Ainda

Humanos

1 2 ... 1826

Amoreiras

L.Pequim

...

Dimensão Data

Matrix

...

Ainda

Humanos

Figura 18 – Operação slice para Local igual a L.NY

Por exemplo, a aplicação de slice( C, Loja.member=L.NY ) dá origem ao cubo

bidimensional representado na Figura 18 à direita, em que apenas se apresentam os

dados correspondentes às vendas efectuadas na L.NY. Repare que não é necessário

definir o nível de granularidade da dimensão, uma vez que o cubo já determina essa

granularidade.

Dice

A operação dice resulta da composição de duas operações slice, seleccionando porções

de dados na intersecção de duas dimensões. Não se tratando de uma operação

fundamental, a sua definição é útil, uma vez que evita a escrita de cadeias de

operações.

A operação dice(C, D1.member∈R1, D2.member∈R2) denota a aplicação de uma operação

dice ao cubo C, segundo as dimensões D1 e D2, que satisfazem as restrições R1 e R2,

respectivamente. Esta operação é equivalente à aplicação de

slice(slice(C, D1.member∈R1), D2.member∈R2) ou de slice(slice(C, D2.member∈R2),

D1.member∈R1).

Dice(C, Loja.member=L.NY, Produto.member=Humanos)

Humanos

...

L.NY

Dimensão Data

1 2 1826

Dimen

são L

oja

Matrix

Dim

ensã

o

Pro

du

to ...

Ainda

Humanos

1 2 ... 1826

Amoreiras

L.Pequim

...

Dimensão Data

Figura 19 – Operação dice para Loja igual a L.NY e Produto igual a Humanos

Page 32: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 4 – Exploração de Dados

47

Por exemplo, a aplicação de dice( C, Local.member=L.NY, Produto.member=Humanos) dá

origem ao cubo unidimensional representado na Figura 19 à direita, que apresenta as

vendas diárias do produto Humanos efectuadas na loja L.NY.

Drill-through

À semelhança da operação dice, a operação drill-through resulta da composição de duas

operações, desta vez de um slice e de um drill-drown aplicados sobre uma mesma

dimensão. Em concreto, esta operação cria um cubo com um nível de granularidade

mais fino na dimensão especificada, e simultaneamente filtra os dados de acordo com a

restrição definida sobre a mesma dimensão.

Deste modo, a operação drill-through(C, D, R) denota a aplicação de drill-through sobre o

cubo C, segundo a dimensão D, e considerando apenas os dados que satisfazem a

restrição R. Esta operação é equivalente a drill-down(slice(C, D.member∈R), D) e a

slice(drill-down(C, D), D.member∈R). Repare, que apesar da equivalência face a estas

duas cadeias de operações, a segunda é menos eficiente, uma vez que o filtro é

aplicado mais tarde, manipulando maior quantidade de dados.

Dim

ensã

o

Pro

du

to

2000 2001 ... 2005

Dimen

são L

oja

Dimensão Data

Drill-through(C3, Data, Data.member=2005)

Dim

ensã

o

Pro

du

to

Jan05

Fev05

...Dec05

Dimen

são L

ojaDimensão Data

Matrix

...

Ainda

Humanos

Matrix

...

Ainda

HumanosAmoreiras

L.Pequim

...Amoreiras

L.Pequim

...

Figura 20 – Operação drill-through para Data igual a 2005

Se considerar o cubo C3 resultante da aplicação de três operações roll-up sobre a

dimensão Data (Figura 20 – à esquerda), a aplicação de drill-through(C3, Data,

Data.member=2005) dá origem ao cubo C4 em que apenas os dados referentes ao ano de

2005 são representados, mas à granularidade de mês (Figura 20 – à direita).

Repare que o cubo é diferente do cubo C2 obtido com uma operação roll-up sobre o cubo

base (Figura 16). Enquanto que C2 tem 6×12 entradas na dimensão Data 3, C4 apenas

tem 12 entradas, uma para cada mês do ano 2005.

3 As 6×12 entradas da dimensão Data são referentes aos 12 meses dos 6 anos em análise.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

48

Pivoting

Ao contrário das operações anteriores a operação pivoting não dá origem a um novo

cubo, apenas o representa de um modo diferente – em planos 2D, ou seja, sob a forma

tabular.

A operação é denotada por pivoting(C), e resulta na representação de todas as

dimensões do cubo numa só tabela. Esta tabela é construída pela justaposição de

planos 2D do cubo. Por exemplo, um cubo com três dimensões dá origem a uma tabela

em que as colunas representam os valores para uma das dimensões, e as linhas pelo

produto cartesiano das duas outras dimensões. Para o caso de um cubo com quatro

dimensões, a representação é semelhante para as linhas, e as colunas dirão também

respeito ao produto cartesiano das duas dimensões restantes.

Pivoting(C3)

Dimensão Data2000

MatrixAmoreiras

L. Pequim

...

Dim

ensã

o P

rod

uto

Lo

ja

Humanos ...

Lo

ja

Ainda ...

Lo

ja

... ...

Lo

ja

2001 ... 2005

Amoreiras

Amoreiras

Amoreiras

L. Pequim

L. Pequim

L. Pequim

Dim

ensã

o

Pro

du

to

2000 2001 ... 2005

Dimen

são L

oja

Dimensão Data

Matrix

...

Ainda

HumanosAmoreiras

L.Pequim

...

Figura 21 – Operação pivoting

Para o exemplo anterior, e partindo do cubo C2, a tabela é construída pela

desnormalização da dimensão Loja, ou seja, pela inclusão da dimensão Loja para cada

produto, como se ilustra na Figura 21.

Note que a apresentação de apenas algumas dimensões é conseguida pela aplicação

de operações roll-up sobre o mesmo cubo até eliminar as dimensões que não devem ser

analisadas, ou seja, representadas na tabela.

Top / Bottom

Por último, uma operação muito frequente é a selecção das entidades que apresentam

maior ou menor valor para uma determinada medida. Estas operações são usualmente

designadas por top ou bottom, respectivamente.

Neste texto, estas operações quando aplicadas sobre o cubo C são denotadas por top(C,

D, M, n) e bottom(C, D, M, n), e resultam numa lista das n entidades da dimensão D, com

os melhores e piores resultados segundo a medida M, respectivamente.

Como os cubos usados para exemplo não têm valores registados, suponha que o

produto com melhores resultados é o produto Lord of the Rings e que as duas lojas com

Page 33: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 4 – Exploração de Dados

49

menores montantes de vendas efectuadas são as lojas GaiaShop e L.Madrid. Para obter

estes resultados aplicar-se-ião as operações top(C, Produto, Montante vendas, 1) e

bottom(C, Loja, Montante vendas, 2).

MDX

A linguagem MDX (Multidimensional Expressions), propriedade da Microsoft, é a

linguagem mais usada na escrita de interrogações OLAP, tendo sido usada por um

conjunto de ferramentas de exploração de dados, tais como o Microsoft® SQL Server™

2000 Analysis Services ou o SAS® Enterprise Intelligence Platform, que a têm tornado

uma linguagem quase standard .

À semelhança do SQL que fornece os meios necessários à exploração dos dados

registados numa base de dados relacional, o MDX apresenta os meios para a

exploração de dados estruturados segundo o modelo multidimensional, ao permitir a

criação de cubos e a sua exploração. É importante notar que o MDX não é uma

extensão do SQL, e que efectivamente o SQL consegue dar resposta às mesmas

questões, apesar de o fazer de forma menos eficiente.

No entanto, enquanto o SQL apresenta e manipula os dados numa forma tabular, em

que cada coluna diz respeito a um atributo específico, e cada linha contém as instâncias

a explorar, o MDX manipula os mesmos dados em estruturas multidimensionais – os

cubos. Assim, o MDX possui primitivas para manipular todas as “componentes” dos

cubos, nomeadamente dimensões ou eixos, níveis e membros das dimensões, células e

agregações de células – tuplos e conjuntos.

Elementos básicos

Antes de prosseguir com a descrição das interrogações MDX, é necessário apresentar a

forma como são declarados os elementos enunciados atrás: os relacionados com as

dimensões e os relacionados com as células.

Dimensões e membros

Em MDX, as dimensões são referidas como eixos (axis), e designadas pela invocação

do seu nome. Em MDX, é possível designar nomes com mais do que uma palavra ou

com números, quando isto acontece o nome é enquadrado por parêntesis rectos (“[“ e

“]”).

A par da designação das dimensões, é possível designar os seus membros em cada

nível de granularidade. Isto é feito através da invocação de nomes compostos,

resultantes da concatenação do nome da dimensão com a sequência dos nomes do

membro para cada nível da hierarquia, até ao nível pretendido. A separação das

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

50

componentes dos nomes compostos é feita pelo ponto “.”.

Por exemplo,

designa o conjunto das células do cubo referentes ao mês de Janeiro de 2005.

Note que o nome [All Data] corresponde ao nível menos detalhado da dimensão Data.

Na verdade, o nome [All nome-dimensão] referencia a agregação máxima de uma

dimensão (em que nome-dimensão corresponde naturalmente ao nome da dimensão

pretendida).

No contexto das dimensões, um aspecto importante a referenciar, é o facto de as

medidas registadas no cubo serem consideradas como uma dimensão, designada

Measures. No entanto, esta dimensão não possui uma hierarquia e portanto não possui

níveis de granularidade.

Para além dos membros existentes nas diferentes dimensões, em particular nas

medidas, a linguagem MDX permite a definição de novos membros (calculated

members), que são calculados a partir dos dados existentes no cubo durante a execução

das interrogações. Naturalmente, estes novos membros servem essencialmente para

clarificar a lógica das interrogações, aumentando quer a eficiência da execução das

interrogações quer a facilidade na sua manutenção. A eficiência da execução é

conseguida, visto que o membro é apenas calculado uma vez, mesmo que seja utilizado

várias vezes numa interrogação.

A criação de um novo membro é feita através do operador WITH de acordo com a

seguinte sintaxe:

em que nome-membro é o nome do novo membro, composto pelo caminho completo

dentro da sua dimensão.

Por exemplo,

cria uma nova medida designada Lucro bruto, que é obtida pela diferença entre o

montante da venda e o custo dos produtos vendidos.

Células, tuplos e conjuntos

Como se viu anteriormente, as células expressam a agregação dos factos registados na

intersecção das diferentes dimensões. A linguagem MDX define um novo elemento – o

tuplo (tuple) para designar células, isoladamente ou em conjunto; os tuplos são

designados pela listagem dos membros das dimensões, correspondentes às células

[Data].[All Data].[2005].[1ºTrimestre].[Janeiro]

WITH MEMBER nome-membro AS 'expressão-de-cálculo'

WITH MEMBER [Measures].[Lucro bruto] AS ‘[Measures].[Montante da venda]-

[Measures].[Custo unitário produto]×[Measures].[Quantidade]’

Page 34: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 4 – Exploração de Dados

51

pretendidas, entre parêntesis curvos (“(“ e “)”) e separadas por vírgulas (“,”).

Por exemplo, o tuplo

designa a célula individual que referencia as vendas do produto Humanos efectuadas na

loja Amoreiras no dia 3 de Janeiro de 2005.

O tuplo

designa o conjunto de células que dizem respeito às vendas do produto Prod3

efectuadas nas lojas da Europa no 1º trimestre de 2005.

Caso se pretenda aceder a uma medida específica, por exemplo, a Quantidade de

produtos vendida nas lojas da Europa no ano 2005 para os produtos da categoria

Electrónica ter-se-ia o seguinte tuplo:

Evidentemente, não é necessário designar todas as dimensões. Quando isto acontece, o

tuplo é equivalente a uma operação slice ou dice. Por exemplo, o tuplo

designa um slice sobre a dimensão Data. E o tuplo

um dice sobre as dimensões Data e Loja.

Uma colecção ordenada de tuplos define um conjunto (set). Em MDX são limitados por

chavetas (“{“ e “}”) e separados por vírgulas (“,”).

Por exemplo, a enumeração dos vários tuplos

designa o conjunto, que contém os dados referentes aos três primeiros trimestres de

2005 para todos os produtos e lojas.

Outra forma de especificar um conjunto, sem ter de enumerar todos os seus elementos,

(((( [Data].[All Data].[2005].[1ºTrimestre].[Janeiro].[3],,,,

[Loja].[All Loja].[Europa].[Portugal].[Lisboa].[Amoreiras],,,, [Produto].[All Produto].[Música].[CDs].[Humanos] ))))

(((( [Data].[All Data].[2005].[1ºTrimestre],,,,

[Loja].[All Loja].[Europa],,,,

[Produto].[All Produto].[Electrónica].[PC].[Prod3] ))))

(((( [Data].[All Data].[2005],

[Loja].[All Loja].[Europa],,,,

[Produto].[All Produto].[Electrónica],

[Measures].[Quantidade]))))

(((( [Data].[All Data].[2005].[1ºTrimestre]))))

(((([Data].[All Data].[2005].[1ºTrimestre],,,, [Loja].[All Loja][Europa].[Portugal]))))

{{{{([Data].[2005].[1ºTrimestre]),,,, ([Data].[2005].[2ºTrimestre]),,,, ([Data].[2005].[3ºTrimestre])}}}}

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

52

consiste em utilizar o operador “:”, que determina o conteúdo do conjunto indicando

apenas os tuplos que determinam a sua fronteira. Por exemplo, o conjunto

é equivalente ao conjunto anterior.

Tal como para os membros, é possível definir nomes associados a conjuntos, seguindo

a seguinte sintaxe:

Por exemplo

WITH SET ano2005 AS ‘{([Data].[2005].[1ºTrimestre]) : ([Data].[2005].[4ºTrimestre])}’

define o conjunto de dados referentes ao ano 2005.

Funções

Para além das primitivas para manipular os elementos de um cubo, a linguagem MDX

fornece um conjunto alargado de funções que lhe permite a definição dinâmica de

interrogações.

De entre as funções mais utilizadas, destacam-se as funções aplicadas sobre dimensões

ou membros que devolvem conjuntos (Members e Children), e as funções aplicadas

sobre conjuntos que devolvem conjuntos (CrossJoin, TopCount, BottomCount).

Função Members

A função Members é definida sobre os elementos das dimensões e devolve o conjunto

de membros de uma dimensão para os diferentes níveis de granularidade.

Por exemplo, se aplicada sobre a dimensão Data

o resultado seria o conjunto

que não é mais do que o conjunto de todos os dias registados no cubo, ou seja, o

conjunto de membros da dimensão ao mais alto nível de granularidade.

Se aplicada ao nível de granularidade Ano da mesma dimensão

Data.Ano.Members

ter-se-ia o conjunto {2000, 2001, 2002, 2003, 2004, 2005}

Para obter os trimestres de cada um dos anos, usar-se-ia a expressão

{{{{([Data].[2005].[1ºTrimestre]) :::: ([Data].[2005].[3ºTrimestre])}}}}

WITH SET nome AS 'expressão-conjunto'

Data.Members

{1, 2, 3, 4, ..., 1826}

Page 35: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 4 – Exploração de Dados

53

Data.Trimestre.Members

obtendo-se {1º-2000, 2º-2000, 3º-2000, 4º-2000, 1º-2001, 2º-2001, 3º-2001, 4º-2001, 1º-2002, 2º-2002, 3º-2002, 4º-2002, 1º-2003, 2º-2003, 3º-2003, 4º-2003, 1º-2004, 2º-2004, 3º-2004, 4º-2004, 1º-2005, 2º-2005, 3º-2005, 4º-2005}

Sem a função Members seria necessário enumerar todos os elementos do conjunto em

causa, sendo obrigatório reescrever as interrogações sempre que fossem registados

dados novos.

Na prática, a função Members efectua uma operação de drill-down sobre o cubo ápice

até ao nível de granularidade especificado.

Função Children

A função Children devolve o conjunto de membros descendentes de um determinado

membro de uma dimensão.

Por exemplo, se aplicada sobre o membro 2005 da dimensão Data

o resultado seria o conjunto

Repare que é necessário especificar o nome composto do membro para obter os seus

descendentes, o que é evidenciado no exemplo seguinte.

A expressão

Data.[All Data].[2005].[1ºtrimestre].Children

dá origem a

{Janeiro 2005, Fevereiro 2005, Março 2005}

Na prática a função Children efectua uma operação drill-through sobre o cubo, de acordo

com o filtro definido pelo membro especificado.

Função CrossJoin

A função CrossJoin implementa o produto cartesiano entre dois conjuntos.

Sejam S1= {x1, x2,...,xn} e S2={y1, y2, ..., yn} dois conjuntos, o resultado de CrossJoin(S1,

S2) será o conjunto

{(x1, y1), (x1, y2),...,(x1, yn), (x2, y1), (x2, y2),..., (x2, yn),..., (xn, y1), (xn, y2),..., (xn, yn)}

Note que a ordem dos tuplos no conjunto resultante depende da ordem dos argumentos

da função CrossJoin, assim como da ordem dos seus membros.

Por exemplo,

Data.[All Data].[2005].Children

{([Data].[2005].[1ºTrimestre]) : ([Data].[2005].[4ºTrimestre])}

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

54

é equivalente a

se o cubo contiver dados para as regiões Europa, América Norte e Ásia, para além dos

seis anos (de 2000 a 2005).

Função TopCount / BottomCount

As funções TopCount e BottomCount são definidas sobre conjuntos e devolvem

conjuntos. Estas funções ordenam o conjunto que recebem como argumento segundo

uma métrica, e devolvem um conjunto com os n primeiros / últimos elementos do

conjunto argumento. Tal como o conjunto inicial, a métrica e o número de elementos do

conjunto resultado são introduzidos como argumentos de acordo com a sintaxe:

Se para o cubo em análise, a maior quantidade de produtos vendidos tivesse ocorrido no

ano 2003, e os anos 2000 e 2004 fossem os piores dois anos, as expressões

dariam essa informação.

Interrogações MDX

Tal como nas interrogações SQL, as interrogações MDX envolvem a requisição de um

subconjunto dos dados registados (cláusula SELECT), a designação da origem dos dados

(cláusula FROM) e opcionalmente um filtro sobre o subconjunto de dados requisitados

(cláusula WHERE), de acordo com a sintaxe seguinte.

Contudo, existem diferenças significativas quanto ao significado destas cláusulas nas

duas linguagens.

Em SQL, a cláusula SELECT pode ser vista como a determinação do conteúdo das

colunas da tabela resultado. Porém em MDX, a cláusula SELECT é usada para determinar

CrossJoin(Data.Ano.Members, Local.Região.Members)

{(2000, Europa), (2000, América Norte), (2000, Ásia), (2001, Europa), (2001, América Norte),

(2001, Ásia), (2002, Europa), (2002, América Norte ), (2002, Ásia), (2003, Europa), (2003,

América Norte), (2003, Ásia), (2004, Europa), (2004, América Norte ), (2004, Ásia), (2005,

Europa), (2005, América Norte ), (2005, Ásia)}

TopCount(conjunto, número-elementos, métrica)

BottomCount(conjunto, número-elementos, métrica)

TopCount(Data.Ano.Members, 1, [Measures].[Quantidade]) BottomCount(Data.Ano.Members, 2, [Measures].[Quantidade])

SELECT [especificação-eixo

[, especificação-eixo...]]

FROM nome-cubo

[WHERE [especificação-filtro]]

Page 36: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 4 – Exploração de Dados

55

todas as dimensões que o cubo resultado deverá apresentar, ou seja, é usada para

definir as dimensões de análise.

A utilização da cláusula WHERE, apesar de nos dois casos estabelecer um filtro sobre os

dados a apresentar, tem características diferentes nas duas linguagens. Enquanto que

em SQL, a cláusula WHERE contém uma lista de restrições que não define

obrigatoriamente um conjunto de dados coeso, na linguagem MDX, esta cláusula define

a restrição de uma operação dice. Ou seja, cada item da cláusula WHERE identifica a

restrição sobre uma das dimensões em análise. Note, que de acordo com a definição

das operações slice e dice, na secção anterior, não é possível aplicar duas restrições a

uma única dimensão, pelo que as restrições enumeradas definem um sub-cubo do cubo

inicial, e não um qualquer conjunto de dados.

É ainda importante referir, que quando uma interrogação MDX é avaliada, em primeiro

lugar constrói-se a estrutura do cubo resultante, a partir da avaliação das especificações

dos eixos (especificação-eixo) e do filtro (especificação-filtro), e só em seguida se preenche

cada célula do cubo com os factos.

Cláusula SELECT

De modo a definir as dimensões de análise, a cláusula SELECT determina o conteúdo

de cada um dos eixos do cubo, fazendo corresponder a cada eixo uma das dimensões

de análise (axis dimensions). Os elementos representados em cada eixo são os

membros da dimensão respectiva, ao nível de granularidade especificada.

Apesar da linguagem MDX permitir a utilização de 128 eixos, o habitual é não utilizar

mais de cinco. Cada eixo está associado a uma posição, indicada por um número inteiro

[AXIS(n)], a começar em 0 (zero), e pode ser referenciado por esse valor; os dois

primeiros eixos podem também ser designados por colunas (COLUMNS) e linhas (ROWS),

respectivamente.

De modo a definir cada eixo (especificação-eixo), a linguagem MDX requer que lhe seja

associado um conjunto de tuplos e a sua posição, de acordo com a sintaxe 4

Em que o valor de conjunto define o conteúdo do eixo, e n a posição a si associada. O

número de dimensões de análise é dado pelo número de eixos definidos na cláusula

SELECT.

Note ainda, que a linguagem obriga a que sejam usados eixos de posições adjacentes,

4 A sintaxe apresentada encontra-se simplificada. A linguagem MDX permite ainda outras referências para os

diferentes eixos.

conjunto ON AXIS(n)

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

56

começando sempre pelo primeiro, ou seja pelo eixo zero.

Uma vez que a linguagem MDX permite a definição de nomes associados a conjuntos

(através da utilização da primitiva WITH SET), a sua utilização na cláusula SELECT é

possível. No entanto, o conjunto apenas será reconhecido no âmbito da cláusula em que

foi definida.

Cláusula WHERE

Por sua vez, a cláusula WHERE específica o filtro a aplicar sobre os dados,

determinando os dados que vão povoar o cubo resultado. Sempre que uma dimensão

não é especificada como sendo uma dimensão de análise, ou seja, sempre que não

aparece como eixo, essa dimensão é considerada ao nível definido por omissão – o

nível mais agregado, tipicamente identificado pelo nome [All nome-dimensão] como se

referiu anteriormente.

Na formulação de interrogações MDX, as dimensões são usadas nas cláusulas SELECT

para determinar as dimensões de análise e respectivas granularidades (axis

dimensions), e nas cláusulas WHERE para determinar as restrições a aplicar (designadas

por slice dimensions). Note que enquanto a especificação das dimensões de análise

(axis dimensions) determina múltiplos membros da dimensão e diz respeito a dimensões

do cubo alvo da recolha de dados, a especificação das restrições (slice dimensions)

determina um único membro da dimensão e diz respeito ao cubo resultante da

interrogação. Deste modo, para especificar um filtro correctamente, a avaliação da

especificação-filtro tem de resultar num único tuplo.

Exemplos

Para ilustrar a utilização das interrogações MDX, será usado uma vez mais o cubo C,

desenhado no capítulo 2 – Figura 9. Recorde-se que para o problema em análise, se

consideraram as hierarquias “dia << mês << trimestre << ano” para a dimensão Data, a

hierarquia loja << cidade << país << região para a dimensão Loja, e a hierarquia produto

<< subcategoria << categoria para a dimensão Produto.

Como especificado atrás, a interrogação MDX mais simples é composta por uma

cláusula SELECT seguida da cláusula FROM. A interrogação MDX

Expressão 2 – Exemplo de interrogação sem restrições

SELECT

{ [Data].[Ano].Members } ON AXIS(0),

{ [Loja].[Região].Members } ON AXIS(1),

{ [Produto].[Categoria].Members } ON AXIS(2)

FROM C

Page 37: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 4 – Exploração de Dados

57

dá origem ao cubo representado na Figura 22, e é o resultado de aplicar várias

operações roll-up em cada uma das dimensões.

Dim

ensã

o

Pro

du

to

2000 2001 ... 2005

Dimen

são L

oja

Dimensão Data

Filmes

MúsicaEuropa

ÁsiaAmérica

Figura 22 – Cubo resultante da Expressão 2

A mesma interrogação pode ser reescrita como se apresenta na Expressão 3.

Expressão 3 – Exemplo de utilização de COLUMNSCOLUMNSCOLUMNSCOLUMNS e ROWSROWSROWSROWS

A aplicação de uma restrição ao ano 2000 seria conseguida através da Expressão 4.

Expressão 4 – Exemplo de interrogação com restrições

De forma a gerar cubos com apenas uma das medidas, é habitual especificá-las na

cláusula WHERE, como na Expressão 5.

Expressão 5 – Exemplo de interrogação com escolha da medida

A utilização de uma medida não registada no cubo pode ser feita recorrendo à primitiva

WITH MEMBER, como na Expressão 6.

SELECT

{ [Data].[Ano].Members } ON COLUMNS,

{ [Loja].[Região].Members } ON ROWS,

{ [Produto].[Categoria].Members } ON AXIS(2)

FROM C

SELECT

{ [Loja].[Região].Members } ON AXIS(0),

{ [Produto].[Categoria].Members } ON AXIS(1)

FROM C

WHERE ( [Data].[All Data].[2000] )

SELECT

{ [Data].[Ano].Members } ON AXIS(0),

{ [Loja].[Região].Members } ON AXIS(1),

{ [Produto].[Categoria].Members } ON AXIS(2)

FROM C

WHERE ( [Measures].[Montante da venda] )

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

58

Expressão 6 – Exemplo de interrogação com definição de uma nova medida

Apesar das interrogações MDX possibilitarem a devolução de cubos, como

exemplificado nas interrogações anteriores, é muito frequente que sejam usadas para

devolver tabelas, mais concretamente pivot tables (resultantes de operações pivoting).

A forma de gerar estas tabelas em MDX é através da utilização da função CrossJoin,

introduzida anteriormente.

SELECT

{[Data].[Ano].Members ON COLUMNS,

CrossJoin({[Produto].Members}, {[Loja].Members}) ON ROWS

FROM C

Expressão 7 – Exemplo de interrogação que aplica a função CrossJoinCrossJoinCrossJoinCrossJoin

Por exemplo, a Expressão 7 gera a Tabela 2 semelhante à obtida na secção anterior.

Dimensão Data2000

MatrixAmoreiras

L. Pequim

...

Dim

ensã

o P

rod

uto

Lo

ja

Humanos ...

Lo

ja

Ainda ...

Lo

ja

... ...

Lo

ja

2001 ... 2005

Amoreiras

Amoreiras

Amoreiras

L. Pequim

L. Pequim

L. Pequim

Tabela 2 – Pivot table resultante da Expressão 7

Por fim, a Expressão 8 devolve o produto mais vendido

SELECT

TopCount(Produto.Members, 1, [Measures].[Quantidade]) ON COLUMNS

FROM C

Expressão 8 – Exemplo de interrogação que aplica a função TopCountTopCountTopCountTopCount

WITH MEMBER [Measures].[Lucro bruto] AS ‘[Measures].[Montante da venda]-

[Measures].[Custo unitário produto]×[Measures].[Quantidade]’

SELECT

{ [Data].[Ano].Members } ON AXIS(0),

{ [Loja].[Região].Members } ON AXIS(1),

{ [Produto].[Categoria].Members } ON AXIS(2)

FROM C

WHERE ( [Measures].[Lucro bruto] )

Page 38: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 4 – Exploração de Dados

59

e a Expressão 9 as duas lojas que efectuaram menor montante de vendas.

SELECT

BottomCount(Loja.Members, 2, [Measures].[Montante vendas]) ON COLUMNS

FROM C

Expressão 9 – Exemplo de interrogação que aplica a função TopCountTopCountTopCountTopCount

Sumário

Neste capítulo, foram introduzidas as operações fundamentais para exploração de

dados multidimensionais, disponíveis em cubos. Estas operações, designadas

operações OLAP, manipulam cubos devolvendo cubos. Em particular as operações

roll-up e drill-down aumentam ou diminuem o nível de granularidade do cubo alvo;

enquanto que as operações slice e dice aplicam filtros sobre o mesmo cubo. Outra

operação importante é o pivoting, que apresenta projecções de um cubo na forma

tabular. As operações topCount e bottomCount, por sua vez, devolvem os melhores

e piores elementos registados, de acordo com uma métrica especificada.

Na segunda parte do capítulo é introduzida a linguagem MDX, utilizada pela maioria

das ferramentas de exploração de dados, sendo apresentados os seus principais

elementos e sintaxe, e exemplificando a sua utilização com algumas interrogações

básicas.

Page 39: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

61

PartPartPartParteeee II II II II

Data Data Data Data MMMMiningininginingining

Page 40: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

63

5 Conceitos Básicos

Ao longo dos anos, a análise de dados recolhidos pelas organizações tem vindo a ser

feita recorrendo quase exclusivamente a métodos estatísticos, que retratam as

populações alvo num determinado momento do tempo. O data mining, como sucessor

natural da estatística, tenta ir mais longe ao fornecer meios automáticos para classificar

e prever comportamentos futuros.

O termo data mining tem sido usado e abusado, significando a maioria das vezes todo o

processo de extracção de informação (habitualmente designado por KDD – do inglês

knowledge discovery in databases) e não a etapa de exploração dos dados,

propriamente dita. Neste contexto, o data mining tem sido definido como a extracção não

trivial de informação implícita, previamente desconhecida e potencialmente útil, feita a

partir dos dados registados em base de dados” [Frawley 1992].

Na última década do século XX, as técnicas de data mining começaram a ser aceites

como meios automáticos viáveis de descoberta de informação, e o seu uso expandiu-se

para lá das fronteiras do mundo da inteligência artificial, espalhando-se pelo mundo dos

negócios, com aplicações em domínios tão distintos como a gestão de clientes (CRM –

customer relationship management), a análise de cabazes de compras ou a detecção de

fraudes, e também com aplicaões bem sucedidas na área da medicina e da investigação

científica.

De modo a compreender o campo da extracção automática de informação, é necessário

a clarificação de alguns conceitos básicos. Em particular, é importante a distinção entre

os termos dados e informação. As definições adoptadas aqui são as aceites pela

comunidade científica internacional que trabalha neste domínio [Kohavi 1998].

O termo dados é usado para referir os factos registados, que habitualmente descrevem

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

64

o estado ou comportamento de alguma entidade, de acordo com um conjunto de

atributos, também designados por campos ou variáveis, tendo para cada um deles um

valor particular. Estes valores pertencem a conjuntos específicos, os domínios dos

atributos, que incluem os valores que cada atributo pode assumir. Em geral, os

atributos pertencem a um de dois tipos de domínios:

� os domínios numéricos, que se materializam em conjuntos de números reais,

traduzindo alguma medida quantitativa;

� os domínios categóricos, que se materializam em conjuntos finitos de valores

discretos. Entre os atributos categóricos podem distinguir-se:

− os ordinais: que denotam valores discretos com uma relação de ordem entre si

(um exemplo paradigmático são os valores ‘baixo’, ‘médio’ e ‘alto’).

− e os nominais: que denotam valores discretos sem qualquer relação de ordem

entre si (como por exemplo ‘azul, ‘amarelo’ e ‘vermelho’). Usualmente os

conjuntos que materializam os domínios de atributos nominais são designados

por alfabetos.

Outro conceito importante é o de característica (em inglês feature5), que corresponde a

uma instanciação concreta de um atributo. Os termos instância e registo (do inglês

instance e record) denotam um objecto do mundo, ou seja, uma instanciação de uma

entidade. Em geral, são representados por vectores de características (do inglês feature

vectors).

Ao contrário da clareza que caracteriza o termo dados, a definição do termo informação

é mais difusa. No entanto, por informação pode entender-se o conjunto de padrões

subjacentes a um conjunto de dados [Witten 2000]. Matematicamente, a informação

pode ser encarada como uma compressão dos dados [Adriaans 1996], uma vez que

pode ser vista como um modelo explicativo desses mesmos dados. Uma outra forma de

entender o conceito é como o passo seguinte na estrada do conhecimento, já que

corresponde a uma abstracção dos dados registados.

Neste contexto, o processo de extracção de informação não é mais do que a exploração

de um conjunto de dados feita com o intuito de identificar o conjunto de padrões que lhe

está subjacente, ou seja, a informação associada ao conjunto de dados de entrada.

No entanto, esta exploração envolve não só a descoberta de informação propriamente

dita, mas também o tratamento dos dados de modo a que aquela descoberta seja

possível. Deste modo, a extracção de informação traduz-se num processo iterativo, que

5 O termo feature é muitas vezes usado incorrectamente como atributo, como por exemplo em feature

selection.

Page 41: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 5 – Conceitos Básicos

65

consiste numa sequência de etapas, como proposto em parceria pela Chrysler, a SPSS

e a Daimler-Benz para processo standard, e que se ilustra na Figura 23.

Dados

Análise do negócio

Análise dos dados

Preparação dos dados

Modelação

Avaliação

Entrada em produção

Figura 23 – Processo CRISP-DM (adaptado de [Shearer 2000])

A primeira etapa do processo tem como objectivo a criação de uma tabela

desnormalizada, que contenha todos os registos respeitantes a uma mesma entidade,

numa só linha. Esta etapa, designada por pré-processamento, engloba três fases

distintas: a análise do negócio, a análise dos dados e a preparação dos dados. É

durante esta última fase que os dados são seleccionados, e que são tratadas as

inconsistências e omissões detectadas durante a fase de análise dos dados.

Naturalmente, que a fase de análise do negócio é determinante para proceder à

selecção de dados.

Na etapa de data mining ou de modelação, é feita a descoberta de informação

propriamente dita. O aspecto mais importante é a escolha do método de descoberta a

aplicar, tendo em atenção três aspectos fundamentais: a quantidade e qualidade dos

dados em análise, o conhecimento de domínio existente, e as expectativas do utilizador.

Depois de descobertos, os modelos são avaliados de modo a aferir se são os mais

adequados a apresentar ao utilizador. No entanto, a etapa de avaliação é na maioria

das vezes incorporada no processo de descoberta dos modelos, propriamente dita.

Depois de avaliados os resultados, as ferramentas desenvolvidas e/ou usadas estão

prontas para entrar em produção.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

66

Preparação de dados

A fase de preparação de dados consiste na aplicação de um conjunto de operações que

melhoram o desempenho dos métodos de data mining usados para a descoberta da

informação. Estas operações constituem uma espécie de engenharia dos dados, ao

reconstruir os dados de entrada de forma a adequá-los ao método escolhido.

As estatísticas mais recentes mostram que esta fase, conjuntamente com a análise do

negócio e análise dos dados (pré-processamento) ocupam 75% do tempo gasto durante

todo o processo de extracção de informação. O tempo gasto nesta fase espelha tanto a

falta de qualidade da maioria dos dados actualmente existentes, como a importância

destas operações quando aplicadas às grandes bases de dados actuais.

Durante a preparação de dados são efectuadas operações para seleccionar os dados

para análise, em seguida os dados escolhidos são integrados, resolvendo as

inconsistências detectadas, tratando os registos com valores omissos e enriquecendo os

dados registados pela organização com dados de outras fontes (por exemplo

governamentais, ou de outras empresas do mesmo grupo económico). Finalmente, e

quando a quantidade de dados assim o obriga, são aplicadas operações de redução,

diminuindo a quantidade de dados a processar.

Evidentemente a selecção dos dados é feita com base na análise que se pretende

efectuar, em particular o que se quer saber e o que se vai fazer com essa informação.

As restantes operações, de integração, limpeza e redução são aplicadas alternadamente

consoante as necessidades. Estas operações são descritas a seguir.

Integração de dados

Normalmente, os dados existem em bases de dados operacionais e é necessário

recolhê-los para uma só tabela dedicada exclusivamente à análise. Tal como

referenciado para a construção de uma data warehouse, os dados provenientes das

diversas fontes não são trivialmente relacionáveis.

As operações de integração são aplicadas para fundir os dados provenientes das

diferentes fontes. As dificuldades principais desta fusão são as diferenças na

identificação da mesma entidade nas várias bases de dados operacionais, e a existência

de redundâncias.

O primeiro aspecto é um dos problemas de integração mais difíceis de resolver e é

habitualmente designado por problema da identificação da entidade (do inglês entity

identification problem). A sua solução passa pela identificação da equivalência entre as

entidades nas diferentes fontes, como se referiu no capítulo 3.

O segundo desafio é a identificação e remoção de redundâncias. Apesar de não ser uma

Page 42: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 5 – Conceitos Básicos

67

tarefa de resolução trivial, pode ser abordada através da análise de correlação entre

atributos. Se a correlação entre dois atributos for igual a zero, então os atributos são

independentes e não existe redundância; caso contrário, existe alguma dependência

entre os dois atributos e é necessário estabelecer se são equivalentes ou

complementares, e decidir sobre a remoção de um dos atributos.

Por fim, há ainda que averiguar a existência de registos repetidos e decidir sobre a sua

remoção.

Enriquecimento

Para além da integração dos dados provenientes das várias fontes da organização, há

que considerar o enriquecimento dos dados quer com a adição de novos atributos

derivados de atributos registados, quer com a introdução de dados de bases de dados

exteriores à organização.

A forma mais simples de enriquecimento é através da criação de novos atributos. A

criação é tipicamente feita pela combinação de dois ou mais atributos existentes, através

do produto cartesiano de atributos categóricos, pela conjunção de atributos booleanos,

ou pelo cálculo de atributos numéricos. Esta operação é importante no caso em que os

atributos existentes não reflectem a estrutura do domínio, e a simples existência de um

novo atributo é capaz de contribuir para a clarificação da natureza do problema em

análise.

Um exemplo deste caso, são os atributos demasiado específicos ou seja demasiado

identificados com a entidade (como a data de nascimento ou a morada), cujos valores

não são partilhados entre as diferentes entidades, e que consequentemente não se

traduzem em informação. A solução mais adequada é transformar estes atributos em

atributos mais significativos para o problema em análise (um exemplo é a transformação

da data de nascimento num atributo que indique a idade do indivíduo).

O enriquecimento através da segunda abordagem traduz-se naturalmente num processo

de integração de dados, apresentando essencialmente os problemas descritos atrás. No

entanto, há um aspecto a ter em conta, e que se relaciona com o contexto jurídico

envolvente. Em muitos países a venda / utilização de dados exteriores à organização

não é permitida, pelo que esta abordagem pode ser dificultada ou simplesmente

proibida.

Uma outra forma de enriquecimento é a incorporação de conhecimento de domínio

no processo de descoberta de informação. Apesar de esta incorporação ser feita nessa

etapa, a representação do conhecimento de domínio, assim como a compatibilização

dos dados em análise com esse conhecimento, é necessariamente feita na etapa de

integração de dados.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

68

A forma mais habitual de incorporação de conhecimento é através da utilização de

hierarquias de conceitos, habitualmente conhecidas por taxonomias. Nestas

hierarquias são representadas as relações de herança (is-a relations) entre os valores

possíveis de um atributo, e permitem a representação dos dados segundo diferentes

graus de abstracção. Com as evoluções na área da representação de conhecimento, as

taxonomias começaram a ser substituídas por ontologias, capazes de representar outras

relações entre as diferentes entidades.

Limpeza de dados

A etapa de limpeza dos dados complementa a fase de integração, e para além de

melhorar a qualidade dos dados, permite ganhar algum conhecimento sobre as

características do problema em análise. Apesar desta fase poder ser em parte

processada automaticamente, não se deve esperar que a depuração dos dados seja

total. De facto, a poluição das grandes bases de dados reveste-se de formas

extremamente subtis e difíceis de identificar. Porém, de modo a identificar as

potencialidades dos dados, é conveniente que parte desta tarefa seja efectuada

manualmente.

Um aspecto importante a referenciar é o facto desta fase permitir identificar potenciais

problemas na forma como os dados estão a ser recolhidos pelos sistemas operacionais,

isto porque muitas vezes a poluição se deve essencialmente ao método pelo qual é

efectuada a recolha. A correcção deste tipo de erros envolve uma eventual reengenharia

do processo.

Apesar da análise manual ser de extrema importância, esta apreciação torna-se difícil na

presença de uma base de dados de grandes dimensões. Nestes casos é habitual fazer

esta apreciação em várias amostras aleatórias, e cruzar as impressões obtidas em cada

uma delas.

As operações de limpeza de dados dizem respeito essencialmente à sua qualidade. Em

particular é importante o tratamento de valores omissos, do ruído e de inconsistências

existentes.

Valores omissos

Um problema frequente nas bases de dados é a existência de grandes quantidades de

instâncias em que vários dos seus atributos não estão preenchidos (valores omissos, do

inglês missing values)6. Contudo, este é um factor extremamente importante no sucesso

6 É importante notar que os atributos vitais para uma organização tipicamente estão correctamente

preenchidos, mas que os atributos menos relevantes para o negócio central da organização normalmente não

Page 43: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 5 – Conceitos Básicos

69

da descoberta de informação

Existem duas abordagens principais a este problema: a exclusão dos registos com

valores omissos e a substituição do valor omisso por um valor aceite.

Note-se que a primeira abordagem pode implicar a exclusão de um número considerável

de registos, e consequentemente, reduzir significativamente a riqueza dos dados,

prejudicando os resultados obtidos pelo processo de extracção de informação. Por estas

razões, a substituição do valor omisso por um valor tem sido aceite como a melhor

solução para o problema.

Existem várias estratégias para a escolha do valor a usar na substituição, das quais a

utilização de um valor externo ao domínio do atributo que identifique a omissão do valor

é a mais simples. Tipicamente este valor assume a forma de “valor desconhecido”. Outra

abordagem possível é a substituição do valor omisso pelo valor mais provável. (Quinlan

sugere a construção de regras que prevejam o valor do atributo omisso, baseado nos

valores dos restantes atributos do registo [Quinlan 1986]).

Ruído

Um outro aspecto importante é o tratamento de valores isolados (outliers), valores que

correspondem a valores não esperados e que tipicamente surgem como ruído. Este

problema está sobretudo relacionado com os atributos numéricos, e o objectivo é

identificar os pontos isolados e escolher os seus substitutos de entre os valores

esperados.

A identificação dos pontos isolados pode ser feita agrupando os valores de um dado

atributo em grupos, e reconhecendo os pontos isolados como sendo os que não

pertencem a nenhum dos grupos identificados.

A selecção do novo valor pode ser feita recorrendo a diferentes estratégias, mas todas

envolvem a análise dos vizinhos do ponto isolado. A estratégia mais simples adopta o

valor médio entre os valores dos registos antecedente e subsequente (binning). Uma

outra possibilidade é a identificação de uma função (através de métodos de regressão)

capaz de representar a distribuição dos valores do atributo, e o subsequente cálculo do

valor substituto para o ponto isolado.

Redução de dados

Em geral, as bases de dados existentes nas organizações contêm grandes quantidades

de dados. Quantidades estas que dizem respeito, não só ao elevado número de

são preenchidos, ou pior são incorrectamente introduzidos. Na maioria dos casos, este problema apenas

reflecte as deficiências das ferramentas de recolha de dados.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

70

instâncias registadas, mas também ao número de atributos que as caracterizam, ou

simplesmente à natureza complexa dos dados. Uma vez que o desempenho dos

métodos de data mining está directamente relacionado com as quantidades de dados a

processar, por vezes é indispensável a aplicação de operações de redução dos dados.

A forma mais simples de lidar com o problema é a utilização de uma amostra dos

dados originais. Note-se que ‘amostra’ assume o significado estatístico do termo, ou

seja, por amostra entende-se uma porção dos dados representativa da população.

Tendo em conta estas características, o perigo de perder informação pela exclusão de

várias instâncias é minimizado.

A redução de dimensionalidade (do inglês dimensionality reduction) consiste na

remoção de atributos que parecem ser redundantes ou irrelevantes.7 Desta forma, cada

instância é transformada numa nova instância com menos características. Ou seja, as

instâncias são transformadas para um espaço de menor dimensão. Exemplos de

operações de redução de dimensionalidade são a Análise por Componentes

Principais, ou a aplicação da Transformada de Fourier (como descrito no capítulo 9 –

Novos Desafios, na secção sobre Exploração de séries temporais).

Outra possibilidade é a inferência de um modelo paramétrico capaz de representar os

dados, por exemplo através da utilização de regressão linear para inferir a linha que

melhor aproxima um conjunto de valores numéricos, ou através da utilização de métodos

de inferência gramatical para inferir um modelo generativo capaz de representar um

conjunto de valores categóricos.

Uma técnica mais simples, mas não menos importante, é a transformação de um

atributo de um domínio complexo para um domínio mais simples. Por domínio

complexo entenda-se um domínio cujos valores não são directamente processados

pelos métodos de data mining tradicionais. São exemplos paradigmáticos os atributos

textuais ou as séries temporais.

No caso de atributos textuais, uma técnica habitual traduz-se no pré-processamento

daqueles valores de modo a criar novos atributos nominais, capazes de traduzir os

valores iniciais. No caso de domínios numéricos ou de domínios categóricos com um

elevado número de valores possíveis, e uma vez que alguns dos métodos de data

mining não os manipulam, a transformação mais simples passa pela discretização dos

valores. A forma mais habitual de discretização de atributos categóricos é através da

utilização de taxonomias (descritas na secção Integração de dados), pela substituição de

valores de baixo nível por valores mais abstractos. A discretização de valores numéricos

passa simplesmente pela utilização de valores aproximados, ou simultaneamente pela

7 Esta operação tem sido designada indevidamente por feature selection.

Page 44: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 5 – Conceitos Básicos

71

normalização dos valores originais para um intervalo específico, normalmente entre 0.0 e

1.0. Deste modo, torna-se mais fácil medir a semelhança entre os valores, ignorando

diferenças de escala.

Data mining

O termo data mining está associado à etapa de descoberta da informação, propriamente

dita. Existem dois critérios que diferenciam o data mining da aprendizagem artificial

(machine learning), o primeiro diz respeito ao número e qualidade dos dados alvo e o

segundo aos algoritmos usados. De facto o data mining aplica-se à extracção de

informação em bases de dados, que se traduzem na maioria das vezes em enormes

quantidades de dados com alguns problemas de falta de qualidade, como descritos

anteriormente. Pelo contrário, os métodos desenvolvidos na área da aprendizagem

artificial são treinados em conjuntos de dados escolhidos de modo a evidenciar apenas

determinadas características, que o algoritmo a testar deve tratar [Holsheimer 1994].

Quanto aos algoritmos, o que diferencia o data mining da aprendizagem é o facto dos

algoritmos usados pelo primeiro deverem gozar da propriedade da escalabilidade, isto é,

conhecidos os recursos do sistema (memória, velocidade de processamento, etc.) o

tempo de execução do algoritmo deve crescer linearmente com o tamanho do conjunto

de dados. Grande parte dos algoritmos usados no domínio do data mining tiveram a sua

origem na aprendizagem e sofreram (ou não) algumas alterações de modo a se

tornarem escaláveis [Ramakrishnan 2000].

Fundamentalmente, a etapa de data mining consiste na análise de uma tabela de dados,

ou seja, de um conjunto de instâncias, e na construção de um modelo explicativo desses

mesmos dados. Visto que a descoberta é feita com base nos dados já

conhecidos / registados, este tipo de aprendizagem é designada por aprendizagem

indutiva ou empírica.

O modelo descoberto é depois avaliado, sendo confrontado com as expectativas do

utilizador, medindo-se essencialmente a capacidade que o modelo tem para explicar

quer os dados conhecidos, quer os ainda desconhecidos. Os modelos que satisfazem as

expectativas do utilizador constituem então a informação.

O que distingue as diferentes operações de descoberta de informação é essencialmente

a utilização ou não de conhecimento de domínio, e a forma como representam a

informação descoberta.

Em geral, existem três operações de descoberta de informação: derivação de

dependências, segmentação ou clustering e classificação.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

72

Derivação de dependências

A derivação de dependências consiste na procura de um modelo que descreva as

dependências relevantes entre as variáveis. Existem modelos de dependências a dois

níveis: ao nível estrutural e ao nível quantitativo. Ao nível estrutural, os modelos

especificam (normalmente através de uma forma gráfica) quais as variáveis que são

localmente dependentes entre si. Ao nível quantitativo, os modelos especificam a

intensidade das dependências, fazendo uso de uma escala numérica [Fayyad 1996].

Na derivação de dependências, o objectivo é portanto identificar as relações entre os

vários atributos de uma entidade (variáveis). A descoberta de regras de associação é o

caso mais paradigmático de entre os métodos de derivação de dependências e será

descrito no capítulo 6.

Na sua forma mais simples, a descoberta de regras de associação não usa qualquer

conhecimento de domínio, mas pequenas alterações aos algoritmos permitem usar

aquele conhecimento para guiar e focar a descoberta das regras de acordo com as

expectativas dos utilizadores como será descrito no capítulo 9 – Novos Desafios, na

secção sobre Descoberta guiada por conhecimento de domínio.

As Redes de Bayes são outro exemplo de um mecanismo de derivação de

dependências, mas ao nível estrutural. Apesar da sua construção automática ser difícil e

computacionalmente dispendiosa, quando é feita com base em conhecimento de

domínio tem obtido resultados bastante interessantes, sobretudo no domínio da

medicina. Uma vez que as Redes de Bayes têm sido usadas sobretudo para

classificação, serão descritas no capítulo 8.

Segmentação (clustering)

Os métodos de segmentação (usualmente conhecido como clustering) são baseados

numa metodologia do tipo “dividir para conquistar”, e têm como linha orientadora a

identificação de uma partição do conjunto de dados. Deste modo, o objectivo é identificar

a partição do conjunto de dados, que agrupe as instâncias de forma a que as

semelhantes pertençam ao mesmo grupo (cluster), e as diferentes pertençam a grupos

diferentes.

Naturalmente, a definição da medida de semelhança entre as instâncias é um dos

desafios a ultrapassar e depende inteiramente da natureza dos dados. É de notar que a

medida de semelhança é um dos poucos recursos usados por estes métodos, e que é

através dela que é usado todo e qualquer conhecimento de domínio existente

É importante salientar, que tanto a descoberta de regras de associação (derivação de

dependências) como a segmentação são métodos (na sua forma mais simples) que não

usam conhecimento externo que guie o processo de descoberta de informação. Estes

Page 45: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 5 – Conceitos Básicos

73

métodos são conhecidos por métodos não supervisionados, e simplesmente recebem

os dados de treino e têm por objectivo encontrar as regularidades nesses dados, sem

usar qualquer outra fonte de informação [Shavlik 1990].

O que distingue os dois tipos de métodos é que enquanto a derivação de dependências

faz uma análise intra-instancial, a segmentação faz uma análise inter-instancial. Ou seja,

a primeira analisa as relações entre os atributos das instâncias, e a segunda analisa as

relações entre as próprias instâncias.

Classificação

Ao contrário dos métodos não supervisionados, os métodos de classificação usam

conhecimento para guiar a descoberta dos modelos, e têm por objectivo encontrar um

modelo capaz de classificar as instâncias do problema em análise.

O conhecimento usado por estes métodos não é mais do que o rótulo ou classe de cada

instância conhecida. Assim, partindo do conjunto de dados na forma (xi, yi), em que xi

representa o vector de características da instância i e yi o rótulo ou classe da instância xi,

o método procura um modelo capaz de prever a classe de uma instância desconhecida.

Este modelo não é mais do que uma função do espaço das instâncias para o espaço dos

seus rótulos. O conjunto de dados naquela forma designa-se por conjunto de treino.

De entre os métodos de classificação é necessário distinguir os métodos que em vez de

preverem uma classe discreta para cada instância, prevêem uma quantidade numérica.

Estes métodos são usualmente designados por métodos de previsão [Witten 2000].

O capítulo 8 apresenta os métodos de classificação que têm obtido melhores resultados

na generalidade das situações.

Avaliação

Tal como a etapa de pré-processamento, a etapa de avaliação constitui uma espécie de

engenharia da informação, desta vez para processar os dados de saída em vez dos de

entrada. O objectivo é, portanto, avaliar os modelos encontrados de modo a apresentar

ao utilizador o modelo que mais se adequa às suas necessidades, fornecendo-lhe deste

modo informação.

Apesar de muito dependente do método de data mining usado, a avaliação é feita

essencialmente segundo dois vectores: a qualidade e a compreensibilidade dos

modelos / informação.

De entre as possíveis avaliações de qualidade, as mais usadas têm sido medidas

quantitativas, que atribuem uma graduação a cada um dos modelos descobertos. No

geral, estas medidas preocupam-se com três aspectos: a certeza, a utilidade e a

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

74

simplicidade dos modelos.

A certeza associada a uma determinada informação pode ser descrita como a medida

da confiança que um utilizador pode depositar nela. Essencialmente, a certeza não é

mais do que a probabilidade de a informação estar correcta.

A utilidade, por sua vez, determina o interesse que a informação poderá ter para o

utilizador, estando essencialmente relacionado com dois aspectos: a cobertura

(usefulness), ou seja a probabilidade de a informação poder ser usada / aplicada, e a

novidade que traz (novelty), isto é, que contribuição tem a nova informação para

aumentar o conhecimento sobre o problema em análise.

Por último, a simplicidade avalia a estrutura do modelo encontrado. Tipicamente, um

modelo mais simples é preferido face a um modelo mais complexo, devido à sua maior

compreensibilidade e maior capacidade de generalização. O princípio assim enumerado

é conhecido por Occam’s razor e tem sido usado religiosamente como paradigma

central da aprendizagem automática.

Tendo o princípio em vista, é então importante determinar qual o melhor de vários

modelos que apresentam estrutura, certeza e utilidade diferentes. Neste contexto, o

princípio das descrições mais compactas (Minimum Description Length) tem

desempenhado um papel relevante. Na prática, este princípio corresponde à perspectiva

Bayesiana do Occam’s razor, assumindo que o melhor modelo é o que minimiza a soma

do tamanho do modelo mais a quantidade de informação necessária para especificar as

excepções ao modelo (ou seja, as instâncias que o modelo não consegue classificar

correctamente).

Sumário

Neste capítulo apresentam-se as noções elementares necessárias à compreensão

da extracção de informação. Em particular é apresentado o seu processo,

detalhando cada uma das suas etapas: o pré-processamento, a fase de data mining

e a avaliação dos resultados obtidos.

Ao nível do pré-processamento descrevem-se as operações de preparação de

dados, destacando-se os aspectos relacionados com a integração, limpeza e

redução dos dados, de modo a permitir uma extracção de informação eficaz.

Ao nível do data mining apresentam-se resumidamente as operações tradicionais de

extracção de informação dando-se algum relevo às suas aplicações.

Finalmente, ao nível da avaliação da informação descoberta definem-se os

princípios de avaliação mais usados, nomeadamente: a certeza, a utilidade e a

simplicidade.

Page 46: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

75

6 Regras de Associação

A derivação de dependências ao nível quantitativo é uma das operações mais simples e

usada na descoberta de informação, e tem sido aplicada principalmente no âmbito da

análise de associações (association analysis). O seu objectivo é identificar as relações

existentes entre as valorações possíveis dos vários atributos em análise, representando

estas relações como regras de associação.

Uma regra de associação (do inglês association rule) é uma implicação da forma

A ⇒ B, em que A e B são proposições (conjuntos de pares atributo / valor) e

expressam a co-ocorrência de A e B, ou seja, estabelecem que se A se verifica então

B verificar-se-á simultaneamente, com uma determinada probabilidade. Uma

simplificação frequente na representação de regras de associação é considerar A e B os

conjuntos de registos que satisfazem as proposições A e B, respectivamente. Esta

simplificação será usada no resto deste texto, passando a representar-se aquela regra

de associação por A⇒B.

Associado a cada regra de associação é usual surgir uma medida do seu interesse. As

medidas mais comuns são o suporte e a confiança, mas muitas outras têm sido

definidas, com o intuito de distinguir as regras que traduzem informação desconhecida

para o sistema [Hilderman 1999].

O suporte de uma regra corresponde simplesmente à utilidade da regra, e não é mais

do que a probabilidade de ocorrência simultânea de todas as proposições envolvidas,

traduzindo a cobertura da regra. Assim, para a regra A⇒B, o suporte será dado pela

probabilidade de ocorrência do conjunto de registos que satifazem simultaneamente as

proposições A e B, ou seja, de A∩B (Expressão 10).

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

76

)()sup( BAPBA ∩=⇒

Expressão 10 – Suporte da regra A⇒B

Por seu lado, a confiança de uma regra traduz a certeza da satisfação da proposição B,

sabendo que a proposição A é satisfeita. Pelo significado da confiança de uma regra é

fácil de perceber que esta não é mais do que a probabilidade condicionada de B

sabendo A, como dado pela Expressão 11.

)(

)()|()(

AP

BAPABPBAconf

∩==⇒

Expressão 11 – Confiança da regra A⇒B

A terceira medida de interesse mais usada é o lift, que pretende expressar o ganho

adquirido ao conhecer a regra, isto é, tenta quantificar a vantagem de saber que a

ocorrência de A implica a ocorrência de B. Deste modo, o lift não é mais do que uma

medida da novidade introduzida pela regra.

)()(

)(

)(

)|()(

BPAP

BAP

BP

ABPBAlift

×∩

==⇒

Expressão 12 – Lift da regra A⇒B

O valor do lift de A⇒B é dado pelo rácio entre a confiança da regra e o suporte de B, ou

seja pela Expressão 12.

Como o lift não é uma probabilidade a sua interpretação é um pouco menos intuitiva, No

entanto, verifica-se que a fórmula expressa o rácio entre a probabilidade conjunta de A e

B face à multiplicação das probabilidades individuais de A e B. Ora, se A e B forem

independentes a probabilidade conjunta será igual à multiplicação das probabilidades

individuais, e portanto o lift será 1. Neste caso, a regra não trará nenhuma vantagem. Se

pelo contrário A e B não forem independentes, então o lift será maior que 1. Nesta

perspectiva o lift traduz o grau de independência entre os conjuntos que satisfazem as

proposições envolvidas na regra.

Análise de cabazes

A análise de cabazes (do inglês basket analysis) é a aplicação mais conhecida da

descoberta de regras de associação, e diz respeito à identificação dos produtos que são

comprados simultaneamente. Neste contexto, as regras dizem respeito a cabazes de

compras A e B (conjuntos de itens, do inglês itemsets), e estabelecem a probabilidade

de os produtos do cabaz B serem comprados simultaneamente com os produtos do

cabaz A. Deste modo, A⇒B estabelece que se o cabaz A for transaccionado então o

cabaz B também o será, com uma determinada probabilidade.

Page 47: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 6 – Regras de Associação

77

Assim, sejam L = {i1,i2, ..., im} um conjunto de literais (chamados itens), D um conjunto

de transacções, em que cada transacção T é um conjunto de itens, tal que T⊆L. . . . Diz-se

que T contém A, um conjunto de itens de L, se A⊆T.... Neste contexto, uma regra de

associação é uma implicação da forma X⇒Y, onde X ⊆ L, Y ⊆ L e X∩Y=∅. A regra X⇒Y

é válida no conjunto de transacções D, com confiança c, se c% das transacções de D

que contêm X, também contêm Y. A mesma regra tem suporte n no conjunto de

transacções D, se n% das transacções de D contêm X∪Y [Agrawal 1993].

O objectivo da análise de cabazes é portanto gerar todas as regras de associação

potencialmente úteis para o utilizador. Desta forma, dado um conjunto de transacções

comerciais efectuadas e registadas, o objectivo é identificar as regras de associação que

tenham suporte e confiança maior que dois valores pré-determinados (suporte e

confiança mínimos).

Algoritmos

Em geral, os métodos de descoberta de regras de associação têm duas etapas: a

identificação dos conjuntos de itens frequentes (descoberta de padrões) e a geração

das regras a partir dos padrões descobertos.

Essencialmente, existem duas abordagens ao problema da descoberta de padrões: as

baseadas na geração e testes de candidatos e as baseadas no crescimento de padrões.

Métodos de geração e teste de candidatos

O método de descoberta de padrões mais conhecido é o algoritmo Apriori

[Agrawal 1994]. Este algoritmo actua iterativamente em duas fases distintas: primeiro,

gera os conjuntos de itens potencialmente frequentes, que são designados candidatos; e

em seguida verifica a frequência efectiva de cada candidato no conjunto de transacções

em análise.

De forma a optimizar o processo, o Apriori explora o facto de um conjunto de itens não

ser frequente a não ser que todos os seus subconjuntos também sejam frequentes. Esta

propriedade é conhecida por anti-monotonia (anti-monotonocity).

Explorando esta propriedade, o algoritmo começa por descobrir os itens frequentes, e

em seguida gera os candidatos de tamanho 2, ou seja os conjuntos de dois itens

potencialmente frequentes (C2). A etapa seguinte é verificar a frequência ou suporte de

cada um destes candidatos, e excluir os que não satisfaçam o requisito de ser frequente.

Os candidatos frequentes (L2), também designados padrões, passam então para a

iteração seguinte, em que são gerados os candidatos de tamanho 3 e verificado o seu

suporte, e assim por diante, até que não existam candidatos. O pseudocódigo

apresentado no Algoritmo 1 ilustra o funcionamento do Apriori.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

78

AAAAprioriprioriprioripriori (Dataset D, int minsup)

L1 � {frequent 1-itemsets}

forforforfor ( k = 2; Lk-1≠∅; k++ ) dodododo

// Geração de candidatos

Ck � apriori-gen (Lk -1)

// Corte pelo suporte

fffforororor each each each each transaction t∈D dodododo

Ct � subset(Ck , t);

fffforororor each each each each candidate c∈Ct dodododo

c.count++

Lk � {c∈Ck: c.count ≥ minsup}

returnreturnreturnreturn ∪k Lk

Algoritmo 1 – Pseudocódigo do algoritmo Apriori

Apesar do número de itens ser geralmente muito elevado (na ordem dos milhares, no

caso da análise de cabazes), a operação mais cara é a contagem do suporte de cada

candidato. Na verdade, cada iteração k envolve uma passagem pelo conjunto de

transacções (conjunto de dados), e por cada transacção, verificar se cada candidato de

tamanho k está contido nessa transacção. Logo, qualquer redução no número de

candidatos a verificar, melhora o desempenho global do algoritmo. De modo a efectuar

esta redução, a geração de candidatos de tamanho k+1 (Ck+1) é feita com base no

conjunto de padrões frequentes de tamanho k (Lk) e explorando uma ordenação

lexicográfica dos itens e a propriedade da anti-monotonia, uma vez mais, como se ilustra

no Algoritmo 2.

aprioriaprioriaprioriapriori----gengengengen (Set of itemsets Lk-1)

Ck � {}

// Criação de cada candidato a partir de dois conjuntos de itens de tamanho inferior

fofofofor eachr eachr eachr each itemset a∈Lk-1 dodododo

forforforfor each each each each itemset b∈Lk-1\{a} dodododo

if ∀≤1i≤k-2: ai=bi ∧ ak-1<bk-1

Ck � Ck ∪ {a1..ak-1bk-1}

// Corte pela anti-monotonia

fffforororor each each each each candidate c∈Ck dodododo

fffforororor each each each each (k-1)-subsets s of c dodododo

ifififif s∉Lk-1 thenthenthenthen

Ck�Ck\{c}

returnreturnreturnreturn Ck

Algoritmo 2 – Pseudocódigo do procedimento apriori-gen

Concretamente, a geração de um candidato é feita pelo cruzamento de dois conjuntos

de itens frequentes. Note que os conjuntos de itens são encarados como sequências,

em que os seus elementos são ordenados segundo a ordem lexicográfica adoptada.

Page 48: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 6 – Regras de Associação

79

Fazendo uso desta ordenação dos itens, cada novo candidato resulta do cruzamento de

dois conjuntos de itens frequentes, sempre que estes partilhem o prefixo máximo

próprio8, e o último item do primeiro seja menor que o último item do segundo conjunto.

Neste caso, é gerado um novo candidato com o prefixo máximo próprio partilhado,

seguido do último item do primeiro conjunto e terminando com o último item do segundo

conjunto. Por exemplo, se abc e abd forem dois conjuntos de itens frequentes (ou seja,

pertencerem a L3), então abcd será um candidato de tamanho 4, visto que ab é comum

aos dois conjuntos de itens, e c é menor do que d de acordo com a ordem alfabética.

A exploração da propriedade da anti-monotonia é feita na segunda fase da geração dos

candidatos, ao excluir de Ck+1 todos os conjuntos de itens que tenham algum

subconjunto que não é frequente, ou seja, que não pertença a Lk. Usando o exemplo

anterior, abcd seria excluído de Ck+1 caso algum dos subconjuntos abc, abd ou bcd não

fosse frequente.

Exemplo

Considere o conjunto de transacções apresentado na Tabela 3, um suporte mínimo de

20% e uma confiança mínima de 50%.

Tabela 3 – Conjunto de Transacções Transacção 1 2 3 4 5 6 7 8 9 10

Items ACE ACE ACD AB AB AD BC BE AD BE

Da aplicação do primeiro passo do algoritmo Apriori resulta a identificação dos itens

frequentes (L1), neste caso todos os itens, visto que todos são transaccionados pelo

menos duas vezes (20% das transacções). Pelo cruzamento dos itens frequentes,

geram-se os candidatos de tamanho 2, ou seja C2. Repare-se que pela natureza da

operação de cruzamento, todos os subconjuntos de cada candidato de tamanho 2 são

frequentes, mas o mesmo não se passa para os restantes tamanhos.

Tabela 4 – Candidatos e conjuntos de itens frequentes L1 C2 L2 C’3 L3 C4

ABC ABD ABE ACD ACE ADE

C3

A :7 B :5 C :4 D :3 E :4

AB AC AD AE BC BD BE CD CE DE

AB :2 AC:3 AD:3 AE :2 BE :2 CE :2

ABE ACE

ACE :2

8 Por prefixo máximo próprio da sequência s entende-se a subsequência máxima s’ que resulta da remoção do

último item de s.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

80

Dos candidatos de tamanho 2, apenas AB, AC, AD, AE, BE e CE são frequentes (L2). De

seguida, geram-se os candidatos de tamanho 3 a partir do cruzamento de L2 com L2: Por

exemplo, AB e AE dão origem a ABE uma vez que partilham o prefixo próprio máximo A, e

B é menor do que E, segundo a ordem alfabética. Depois de efectuado o cruzamento

entre os elementos de L2 para gerar C3’, excluem-se todos os conjuntos que tenham

algum subconjunto não frequente. Neste caso, ABC será excluído já que BC não é

frequente (BC∉L2) e o mesmo para ABD, ACD e ADE (porque BD, CD e DE ∉L2).

Como apenas um dos candidatos de tamanho 3 é frequente, a execução do algoritmo

termina por não poder gerar mais candidatos. A Tabela 4 apresenta os resultados

obtidos em cada iteração do algoritmo.

Depois de descobertos os padrões, segue-se a geração das regras de associação a

partir daqueles.

Tabela 5 – Regras de associação para o conjunto de transacções da Tabela 3 Regras de Associação

A⇒B – s:20% – c:28% – lift: 0,56 B⇒A – s:20% – c: 40% – lift: 0,57 A⇒C – s:30% – c:43% – lift: 1,08 C⇒A – s:30% – c: 75% – lift: 1,07 A⇒D – s:30% – c:43% – lift: 1,43 D⇒A – s:30% – c:100% – lift: 1,43 A⇒E – s:20% – c:28% – lift: 0,70 E⇒A – s:20% – c: 50% – lift: 0,71 B⇒E – s:20% – c:40% – lift: 1,00 E⇒B – s:20% – c: 50% – lift: 1,00 C⇒E – s:20% – c:50% – lift: 1,25 E⇒C – s:20% – c: 50% – lift: 1,25

A⇒CE – s:20% – c:28% – lift: 1,40 CE⇒A – s:20% – c:100% – lift: 1,43 C⇒AE – s:20% – c:50% – lift: 2,50 AE⇒C – s:20% – c:100% – lift: 2,50 E⇒AC – s:20% – c:50% – lift: 1,67 AC⇒E – s:20% – c: 66% – lift: 1,65

Repare-se que cada padrão descoberto dá origem a várias regras. Os padrões com dois

itens dão origem a duas regras, os de 3 itens a 6 regras, os de 4 a 14, etc.

As regras que não satisfazem a confiança mínima imposta são apresentadas a cinzento

na Tabela 5.

É importante notar, que quer o suporte, quer o lift são medidas constantes para cada

padrão, mas a confiança é própria de cada regra. (Verifique as definições de cada uma

destas medidas no início do capítulo).♦

Métodos de crescimento de padrões

Apesar de os métodos baseados no apriori apresentarem um desempenho aceitável, na

presença de dados onde existe um número demasiado elevado de itens frequentes ou

padrões longos, o seu desempenho é fortemente prejudicado. Esta degradação no

desempenho deve-se ao facto de ser necessário gerar os muitos candidatos possíveis, e

percorrer o conjunto de dados ou base de dados várias vezes. (O número de passagens

pela base de dados é igual ao tamanho do padrão mais longo, mais um caso os últimos

candidatos testados não sejam frequentes.)

Page 49: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 6 – Regras de Associação

81

De modo a evitar aqueles dois problemas foram propostos os métodos sem geração de

candidatos. De entre estes, o algoritmo FP-growth [Han 2000a] tem-se mostrado um dos

mais eficientes. A ideia central do FP-growth é simultaneamente percorrer a base de

dados um número mínimo de vezes e evitar a geração de candidatos.

Para atingir o primeiro objectivo, o algoritmo representa os dados numa estrutura em

árvore, de forma a compactá-los e a facilitar a contagem do suporte de cada conjunto de

itens. Estas estruturas são designadas árvores de padrões frequentes (frequent

pattern trees – FP-trees).

Uma FP-tree é em tudo semelhante a uma árvore de sufixos, com os seus nós

representando os itens existentes nos dados e considerando cada conjunto de itens

como uma lista ordenada. Contudo cada nó, para além da referência ao item, contém

também o suporte respectivo.

A construção desta árvore é muito simples e implica somente uma passagem pela base

de dados. Dada uma ordenação dos itens em análise, o algoritmo ordena cada

transacção pela ordem dada, e representa cada uma delas como um ramo da árvore.

FPFPFPFP----TreeConstruction TreeConstruction TreeConstruction TreeConstruction (Dataset D, Order φ)

tree � newnewnewnew FP-Tree( newnewnewnew FP-Node(null,0))

forforforfor each each each each transaction T∈D dodododo

tree�insert(t, tree)

returnreturnreturnreturn tree

insertinsertinsertinsert (Itemset T, FP-Tree tree)

x �first(T)

ifififif ∃ N∈tree.root.children: N.item=x thenthenthenthen

N.count ++

elseelseelseelse

N�newnewnewnew FP-Node(x,1)

tree�addChild(tree.root, N)

insert(T\{x}, tree)

returnreturnreturnreturn tree

Algoritmo 3 – Pseudocódigo para a construção de uma FP-Tree

O procedimento é trivial: começando com a árvore com apenas uma folha

(representando o conjunto de itens vazio), para cada transacção/conjunto de itens

transaccionados (T), o algoritmo verifica se o primeiro item corresponde a algum nó

descendente do nó raiz da árvore (N), se for incrementa-se o suporte do nó respectivo,

se não for adiciona-se o novo nó com o suporte a um. Em seguida, partindo do nó

encontrado ou criado segue-se para o segundo item da transacção, repetindo o

procedimento recursivamente até não existirem mais itens na transacção. O Algoritmo 3

ilustra a construção das fp-trees.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

82

Na Figura 24 apresenta-se uma árvore criada pelo Algoritmo 3 para o conjunto de

transacções representado na mesma figura, seguindo a ordem alfabética.

A B C E

B C D

A B D E

B C E

B EC:1

B:3A:2

E:1

D:1

E:1

B:2 C:2 E:1

D:1 E:1

Figura 24 – FP-Tree para o conjunto de transacções apresentado e ordem

alfabética

Repare-se no entanto que é possível apresentar o mesmo conjunto de transacções de

forma mais compacta, como apresentado na Figura 25, sendo suficiente a utilização de

uma ordenação que privilegie os itens em função da sua frequência. Assim, uma

passagem pela base de dados que identifique os itens frequentes e a sua ordenação

pela frequência são suficientes para gerar a árvore mais compacta.

Figura 25 – FP-Tree para o conjunto da Tabela 3, usando ordem {B, E, C, A, D}

A representação dos dados na FP-tree mais compacta evita a ocorrência de múltiplas

passagens pela base de dados, mas não chega para identificar quais os conjuntos

frequentes. Por exemplo, pela árvore acima não é evidente que BD é um padrão se se

usar um suporte mínimo de 40% (ocorrer pelo menos em 2 transacções).

De modo a identificar todos os padrões é necessário percorrer toda a árvore. Para

Page 50: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 6 – Regras de Associação

83

facilitar esta tarefa, o algoritmo FP-growth usa uma estrutura de dados adicional – a item

header table. Esta tabela contém uma entrada para cada item frequente e um ponteiro

para a primeira ocorrência desse item na árvore. Adicionalmente, todos os nós da árvore

referentes ao mesmo item estão ligados segundo a ordem da sua criação. Deste modo,

começando pelo nó referenciado pela tabela é fácil encontrar todos os padrões com o

mesmo item. A FP-tree completa é apresentada na Figura 26.

B:5

C:2

C:1E:4

B

E

C

A

D

5

4

3

2

2

A:1

A:1 D:1

D:1

Figura 26 – FP-tree completa para o exemplo da Tabela 3

Com a estrutura de dados completa, resta percorrer a árvore para encontrar os padrões.

A descoberta de cada padrão é feita de acordo com o procedimento apresentado no

Algoritmo 4.

FPFPFPFP----growthgrowthgrowthgrowth(FP-Tree tree, Itemset α)

ifififif tree=∅ returnreturnreturnreturn α

elseelseelseelse ifififif tree contains a single path P thenthenthenthen

forforforfor eacheacheacheach β∈P(P) dodododo

L � L ∪{ α∪β:min[sup(nodes∈β)] }

returnreturnreturnreturn L

else for eachelse for eachelse for eachelse for each ai∈Header(tree) dodododo

β�α∪ai : ai.support

treeβ�genConditionalsFP-tree(tree, β)

L� L ∪ FP-growth(treeβ)

returnreturnreturnreturn L

Algoritmo 4 – Pseudocódigo do algoritmo FP-growth

O método FP-growth é intrinsecamente recursivo, e transforma o problema de identificar

padrões longos na identificação de padrões cada vez mais pequenos.

A ideia central é pegar em cada item X frequente (a começar pelo item menos frequente

entre os aceites), e explorar o subconjunto das transacções representadas na FP-tree

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

84

inicial que contêm esse item. A este subconjunto chama-se base de padrões

condicionada a X (X conditional pattern base), e cada uma das transacções apenas

contém os itens menores que X, de acordo com a ordenação imposta, e tem como

suporte o suporte de X no ramo que lhe deu origem. A partir deste conjunto, constrói-se

a FP-tree condicionada a X, de acordo com o procedimento de construção de FP-trees.

Da exploração desta árvore resultam os padrões frequentes de prefixo X. Em cada

passo da recursão, a árvore a explorar é menor, e a exploração termina quando não

existir mais do que um ramo na árvore. Neste caso, geram-se todas as combinações

possíveis entre os itens existentes no ramo. Na volta da recursão, a cada combinação,

junta-se o item ao qual a árvore diz respeito, formando assim os padrões frequentes.

Exemplo

Considere novamente o conjunto de transacções apresentado na Tabela 3, um suporte

mínimo de 20% e uma confiança mínima de 50%.

A árvore que representa os referidos dados é apresentada na Figura 27.

Figura 27 – FP-tree para o conjunto de transacções da Tabela 3

A partir desta árvore, o resultado a que se chega aplicando o algoritmo FP-growth é o

ilustrado na Figura 28.

B:3

C conditional FP-tree

A:2

B conditional FP-tree

Resultam: AC:3

B:2A:2

E conditional FP-tree

Resultam: BE:2, AE:2, CE:2, ACE:2 Resultam: AB:2

A:3

D conditional FP-tree

Resultam: AD:3

D-db=[AC:1;A:2]

A 3

E-db=[AC:2;B:2]

B 2

C 2

A 2

C:2

A:2

C-db=[A:2]

A 2

Resultam: AC:2

A:3

C-db=[A:3;B:1]

A 3

B-db=[A:2]

A 2

Figura 28 – Exploração dos dados da Tabela 3 com o algoritmo FP-growth

Com os itens ordenados pela sua frequência, e começando pelo item menos frequente

Page 51: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 6 – Regras de Associação

85

(D), obtém-se a base de padrões condicionada a D, composta por AC e A, com suporte 1

e 2, respectivamente. A nova FP-tree será composta pelo nó A apenas, visto que C

ocorre apenas uma vez, e portanto não é frequente. Com apenas 1 ramo, termina a

recursão para o item D, obtendo como resultado o padrão AD.

A exploração do conjunto de transacções prossegue pela exploração do subconjunto de

transacções que contêm E, obtendo a base de padrões condicionada a E, composta por

AC e B; ambos com suporte 2. Todos os itens são frequentes e representados na FP-tree

condicionada a E. Como se obtêm dois ramos é necessário, passar ao passo seguinte da

recursão, depois de gerar AE, BE e CE. Como a FP-tree condicionada a B é vazia, não se

obtêm mais padrões neste ramo, mas a partir da FP-tree condicionada a C, resulta ACE.

Pelo mesmo método aplicado a D, com B e C obtêm-se AB e AC, respectivamente. Como

resultado final temos portanto: AB, AC, AD, AE, BE, CE e ACE, tal como com o algoritmo

Apriori. ♦

Sumário

No presente capítulo descreve-se a operação de descoberta de regras de

associação, apresentando-se as abordagens mais conhecidas para este problema:

os métodos com geração de candidatos e os métodos de crescimento de padrões.

Adicionalmente são apresentadas as medidas de interesse mais usadas na

avaliação deste tipo de regras – o suporte, a confiança e o lift.

Page 52: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

87

7 Segmentação

Os termos segmentação (clustering) e aprendizagem não supervisionada são muitas

vezes confundidos, porém a segmentação é apenas um caso daquele tipo de

aprendizagem. A segmentação é baseada numa metodologia do tipo “dividir para

conquistar”, e tem como linha orientadora a identificação de uma partição natural das

instâncias, pela análise das semelhanças e diferenças entre elas. Ao decompor um

grande sistema em componentes mais pequenas, simplifica-se a sua modelação e

implementação. Deste modo, a segmentação é capaz de identificar regiões dos dados

com diferentes características, contribuindo para a definição de uma função de

distribuição dos dados. A par desta, por vezes são identificadas correlações, de modo

que a segmentação pode também ser usada como método de pré-processamento, mais

propriamente de análise dos dados, nomeadamente para a selecção de atributos

(feature selection).

A maior dificuldade dos métodos de segmentação reside na descoberta do número de

grupos, ou clusters. Assim que este número está estabelecido, resta definir um rótulo

para cada grupo e identificar o rótulo de cada instância. Tipicamente, a atribuição do

rótulo a cada grupo é feito de forma artificial, não sendo atribuído qualquer significado ao

seu valor.

Dado que cada instância deve ser semelhante às outras instâncias que pertencem ao

mesmo grupo, e significativamente diferente das instâncias que pertencem a grupos

diferentes, a necessidade de utilizar uma medida de semelhança entre instâncias para

identificar os grupos torna-se evidente. Esta medida de semelhança, também designada

por função de distância, recebe duas instâncias e devolve um número que traduz a

“semelhança” entre os dois elementos. Cada aplicação tem uma noção diferente de

semelhança, dado que é intrinsecamente dependente da natureza dos dados, pelo que

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

88

não existe uma função de distância adequada a todos os domínios. Por vezes, a

definição desta medida é bastante difícil, sobretudo quando aplicada a dados complexos,

como por exemplo séries temporais.

Encarada como um método de data mining, o clustering pode ser visto como uma forma

de simplificar o registo e comunicação dos dados: em vez de memorizar todas as

instâncias, é mais fácil memorizar apenas o conceito envolvido, e em seguida nomear as

excepções. Repare-se que se trata de uma forma de compressão dos dados, com perda

de alguma informação mas com ganho na economia da representação [Chen 1996].

Existem várias abordagens para representar os grupos. Uma das formas mais básicas

de o fazer é representar cada grupo através do registo de todas as instâncias desse

grupo. Esta abordagem torna a admissão de novas instâncias a um dos grupos uma

tarefa pouco eficiente, pois é necessário medir a semelhança do novo elemento com

todos os elementos de cada um dos grupos.

Uma abordagem mais económica consiste em representar o grupo por uma instância

representativa, que pode ou não pertencer ao conjunto de dados inicial. Deste modo, a

admissão de novas instâncias requer apenas a comparação com o representante de

cada um dos grupos, sendo possível prever o valor dos atributos das instâncias de um

grupo com base no valor dos atributos do representante desse grupo.

Uma terceira abordagem consiste em representar o grupo como uma função de

distribuição de probabilidades sobre o espaço dos valores possíveis dos atributos. Desta

forma os novos exemplos são admitidos no grupo onde assumem maior probabilidade.

A última abordagem consiste na definição das condições necessárias e suficientes para

admitir elementos num grupo. O objectivo é, portanto, determinar aquelas condições da

forma mais simples possível. Novos exemplos são admitidos num grupo se e só se

satisfazem todas as condições referidas, e os valores dos atributos das instâncias de um

grupo são determinados directamente pelas condições.

Em seguida apresentam-se os dois algoritmos mais conhecidos na segmentação de

instâncias. O capítulo termina com a descrição dos dendogramas, a técnica visual mais

usada para representar operações de segmentação.

K-means

O algoritmo k-means [Jain 1988] é o método de segmentação mais simples. No geral,

este método limita-se a escolher aleatoriamente um representante para cada grupo, e

comparar cada uma das instâncias com cada um dos representantes, atribuindo-as ao

grupo cujo representante é mais semelhante. Em cada passo, os representantes são

actualizados com a “média” das instâncias que pertencem ao seu grupo. O algoritmo

Page 53: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 7 – Segmentação

89

termina quando não houver qualquer alteração na atribuição das instâncias aos grupos

(Algoritmo 5). Os representantes são tipicamente designados por centróides.

kkkk----meansmeansmeansmeans(Dataset D, int k)

// Escolha de uma instância representante para cada grupo

for eachfor eachfor eachfor each cluster Gi ∈{G1…Gk} dodododo

Gi.c�x: x∈Dom(D)

ok � true

dodododo

// xxxx passa a pertencer ao grupo com representante mais semelhante

for eachfor eachfor eachfor each instance x∈D dodododo

Gi � G:G.c=arg min(f(x, ci ))

ifififif x∉Gi thenthenthenthen

Gi�Gi∪{x}

ok� false

// O representante de um grupo torna-se a média das instâncias do grupo

for eachfor eachfor eachfor each cluster Gi∈{G1…Gk} dodododo

Gi.c�mean {x: x∈Gi}

whilewhilewhilewhile ¬ ok()

returnreturnreturnreturn {Gi}

Algoritmo 5 – Pseudocódigo do algoritmo K-means

Exemplo

De modo a ilustrar a utilização do algoritmo k-means, considere um conjunto de

instâncias constituído pelos pontos representados por círculos cinzentos na Figura 29 e

que existem dois grupos de instâncias.

0

1

2

3

4

5

6

7

8

9

0 2 4 6 8 10 X

Y

Figura 29 – Conjunto de instâncias a segmentar

O algoritmo começa por escolher os centróides para cada uma das instâncias. Note que

estes representantes não devem ser idênticos de modo a acelerar a convergência do

algoritmo. No caso, foram escolhidos os pontos (1;3) (representado por um quadrado

azul na mesma figura) e (9;4) (representado por um losango vermelho).

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

90

Cada iteração do algoritmo traduz-se na computação da distância entre cada instância e

cada centróide, atribuindo a instância ao grupo cujo centróide se encontra mais próximo.

Tabela 6 – Distâncias entre as instâncias e centróides calculadas na 1ª iteração X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15

x 3 3 3 4 4 6 6 7 7 8 6 5 4 6 5 y 4 6 8 5 7 1 5 3 5 5 4 6 3 2 2

|Xi-C1| 2.24 3.61 5.39 3.61 5.00 5.39 5.39 6.00 6.32 7.28 5.10 5.00 3.00 5.10 4.12 |Xi-C2| 6.00 6.32 7.21 5.10 5.83 4.24 3.16 2.24 2.24 1.41 3.00 4.47 5.10 3.61 4.47

Cluster 1 1 1 1 1 2 2 2 2 2 2 2 1 2 1

A Tabela 6 mostra a distância Euclidiana entre cada instância e cada um dos centróides

e o grupo a que a instância é atribuída no fim do primeiro passo do algoritmo. A Figura

30 ilustra a distribuição das instâncias pelos dois grupos, no fim da primeira iteração do

algoritmo k-means, em que os centróides são actualizados para (3.4;6.0) e (6.8;3.8)

respectivamente.

0

1

2

3

4

5

6

7

8

9

0 2 4 6 8 10 X

Y

Figura 30 – Conjunto de instâncias segmentadas depois da 1ª iteração do K-means

Os passos seguintes são idênticos, utilizando em cada um os centróides determinados

no passo anterior. A Tabela 7 mostra as distâncias calculadas e os grupos de cada

instância determinadas na segunda e terceira iteração. Os centróides determinados para

o primeiro e segundo grupos são os pontos (3.7;6) e (6.1;3.3), respectivamente.

Tabela 7 – Distâncias calculadas na 2ª e 3ª iteração

X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15

x 3 3 3 4 4 6 6 7 7 8 6 5 4 6 5

y 4 6 8 5 7 1 5 3 5 5 4 6 3 2 2

2ª iteração

|Xi-C1| 2.04 0.40 2.04 1.17 1.17 5.64 2.79 4.69 3.74 4.71 3.28 1.60 3.06 4.77 4.31

|Xi-C2| 3.81 4.39 5.66 3.05 4.25 2.91 1.44 0.82 1.22 1.70 0.82 2.84 2.91 1.97 2.55

Cluster 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2

3ª iteração

|Xi-C1| 2.11 0.67 2.11 1.05 1.05 5.52 2.54 4.48 3.48 4.45 3.07 1.33 3.02 4.63 4.22

|Xi-C2| 3.18 4.10 5.61 2.69 4.23 2.34 1.67 0.95 1.89 2.52 0.68 2.89 2.14 1.34 1.74

Cluster 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2

Uma vez que na terceira iteração não há alteração na atribuição de grupos, o algoritmo

termina. A Figura 31 ilustra a distribuição das instâncias pelos dois grupos e respectivos

Page 54: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 7 – Segmentação

91

centróides, no fim da aplicação do algoritmo.

0

1

2

3

4

5

6

7

8

9

0 2 4 6 8 10 X

Y

Figura 31 – Segmentação obtida pelo K-means♦♦♦♦

EM

O algoritmo EM (algoritmo de expectation / maximization) [Dempster 1997] não é um

algoritmo específico para segmentação, é antes um algoritmo genérico apto a lidar com

variáveis não-observáveis. No domínio do data mining tem sido usado com sucesso

tanto para segmentação como para classificação, entre outras tarefas mais específicas.

O algoritmo baseia-se na constatação de que sempre que todas as variáveis do

problema são observáveis, a determinação da hipótese de máxima verosimilhança é

trivial e corresponde à determinação da hipótese mais provável. Assim, o algoritmo

estima o valor da variável não-observável com base no valor dos restantes atributos do

problema (passo E – expectation do algoritmo). Com base nessas estimativas, escolhe a

hipótese mais provável para solução do problema (passo M – maximization). A

estimativa do valor da variável não observável é feita à custa da determinação do seu

valor esperado (denotado por E[•], como habitualmente no domínio da Probabilidade e

Estatística), que por ser um estimador de máxima verosimilhança garante que a hipótese

encontrada é também ela a mais provável, ou seja, a hipótese de máxima

verosimilhança.

No caso da segmentação, a variável não observável é o grupo a que cada instância

pertence. Caso esse dado fosse conhecido, a hipótese de máxima verosimilhança

corresponderia a atribuir uma nova instância ao grupo mais verosímil, ou seja ao grupo

que apresentasse maior probabilidade. Note que estaríamos na presença de um

problema típico de classificação (descrito em detalhe no próximo capítulo).

Uma vez na presença da variável não-observável respeitante ao grupo de cada

instância, o objectivo do algoritmo é estimar o representante ou centróide de cada grupo.

Esta estimativa é feita assumindo que os diferentes grupos seguem uma distribuição

normal (ou gaussiana – N (µ,σ2)).

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

92

Note-se que esta assumpção só é válida na presença de um conjunto de dados, cuja

partição atribui a cada grupo um número significativo de instâncias. A exigência do

número de elementos é herdada do Teorema do Limite Central, que estabelece que a

distribuição por detrás de um conjunto de elementos é aproximada por uma normal.

Assumindo que cada grupo segue uma distribuição normal Zj~N (µj,σ2), e que a variância

dessa distribuição é conhecida σ2, resta estimar o valor da média de cada uma dessas

variáveis (µj) para ter identificado a composição de cada grupo, ou seja a que grupo

pertence cada instância. Assim, o objectivo do algoritmo é estimar o valor de cada uma

das médias µj das k variáveis Zj (com k o número de grupos considerados). Ao conjunto

das k médias é habitual chamar hipótese.

Para efectuar a estimativa da hipótese, considera-se uma variável booleana zij associada

a cada instância do conjunto de dados, e que assume o valor Verdade se a instância i

pertence ao grupo j, e o valor Falso caso contrário. Evidentemente esta variável não é

conhecida (variável não observável ou escondida), é isso sim, o que se pretende

descobrir. No entanto, a partir dela podemos estimar as médias de Zj, usando o valor da

probabilidade de zij ter sido gerada por Zj. Logo, o objectivo é escolher a hipótese h que

maximiza a probabilidade dos dados terem sido gerados de acordo com a hipótese h –

P(Dados|h), ou seja o conjunto de médias µi que maximiza a probabilidade dos dados, o

que é feito de acordo com o Algoritmo 6.

EMEMEMEM(Dataset D, int k)

// Para cada variável Zj, inicializa-se o valor da sua média µj com um valor aleatório

for eachfor eachfor eachfor each j∈{1…k} dodododo

µj �random(0,1)

// Até que as médias das variáveis Zj estabilizem:

dodododo

// Determina-se o valor esperado das variáveis escondidas zij

for eachfor eachfor eachfor each xi∈D dodododo

for each for each for each for each j∈{1…k} do do do do

[ ]∑∑

=

−−

=

===

==

==←

k

nni

x

k

nni

jiij

xxp

e

xxp

xxpzE

ji

1

)(2

1

1

)|()|(

)|(2

µµµµ

µµ µ

// Actualiza-se o valor de cada média µj

for eachfor eachfor eachfor each j∈{1…k} dodododo

[ ]

[ ]∑

=

=←m

iij

m

iiij

j

zE

xzE

1

while while while while ¬ satisfiesTerminatingCondition()

returnreturnreturnreturn {µj: j∈{1…k}}

Algoritmo 6 – Pseudocódigo do algoritmo EM para segmentação

Page 55: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 7 – Segmentação

93

O cálculo do valor esperado E[zij] de cada variável não observável zij, é dado pelo rácio

entre a probabilidade da instância ter sido gerada pela variável normal Zj e a soma das

probabilidades de a instância ter sido gerada por cada uma das variáveis (como na

Expressão 13).

[ ]∑∑

=

−−

=

===

==

==←

k

nni

x

k

nni

jiij

xxp

e

xxp

xxpzE

ji

1

)(2

1

1

)|()|(

)|(2

µµµµ

µµ µ

Expressão 13 – Valor esperado de cada variável escondida

Ora, como Zj é assumidamente uma variável normal Zj~N (µj,σ2), a probabilidade de uma

instância xi ter sido gerada pela variável Zj é dada pela Expressão 14.

2)(2

1

)|(jix

ji exxpµ

µµ−−

===

Expressão 14 – Probabilidade de x ser gerado por uma variável normal

e o valor esperado da variável escondida pode ser calculado.

Exemplo

Considere o conjunto de dados apresentado na Tabela 8, e que apresenta os valores de

temperatura registados em duas cidades, todos na mesma época do ano.

Tabela 8 – Conjunto de temperaturas registadas em duas cidades Temperaturas (ºC)

16.5 17 17 17.2 17.2 17.4 17.7 17.7 18.3 18.4 18.7 19.2 19.2 19.4 19.4 19.6 19.9 19.9 20.5 20.6

Como determinar a que cidade diz respeito cada medição?

Assumindo que os valores registados foram obtidos por amostragem (equiprovável entre

as duas distribuições) e que se pode assumir que os fenómenos que lhes deram origem

seguem uma distribuição gaussiana (de variância unitária e média desconhecida),

podemos aplicar o algoritmo EM para identificar a origem de cada valor.

Uma forma de escolher a hipótese inicial é atribuir o valor menor como média da

primeira variável normal, e o valor mais elevado para média da segunda variável normal.

Neste caso teríamos h0=<µ1=16.5,µ2=20.6>. Em seguida, calculam-se as probabilidades

de cada instância / valor dizer respeito à primeira e segunda cidade, ou seja, ter sido

gerado pela variável Z1 e Z2, de acordo com a Expressão 14 com as respectivas médias.

Estes valores, assim como o valor esperado de cada variável escondida são

apresentados na Tabela 9.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

94

Tabela 9 – Probabilidades e valores esperados para o exemplo xi P(xi|µµµµ1) E[zi1] P(xi|µµµµ2) E[zi2]

16,5 1,000 1,000 0,000 0,000

17 0,882 0,998 0,002 0,002 17 0,882 0,998 0,002 0,002

17,2 0,783 0,996 0,003 0,004

17,2 0,783 0,996 0,003 0,004

17,4 0,667 0,991 0,006 0,009

17,7 0,487 0,970 0,015 0,030

17,7 0,487 0,970 0,015 0,030

18,3 0,198 0,736 0,071 0,264

18,4 0,164 0,649 0,089 0,351

18,7 0,089 0,351 0,164 0,649

19,2 0,026 0,065 0,375 0,935

19,2 0,026 0,065 0,375 0,935

19,4 0,015 0,030 0,487 0,970 19,4 0,015 0,030 0,487 0,970

19,6 0,008 0,013 0,607 0,987

19,9 0,003 0,004 0,783 0,996

19,9 0,003 0,004 0,783 0,996

20,5 0,000 0,000 0,995 1,000

20,6 0,000 0,000 1,000 1,000

O passo seguinte é actualizar os valores das médias de cada variável, resultando na

hipótese h1=<µ1=17.5,µ2=19.6>.

Ao fim de cinco iterações a hipótese estabiliza e encontra-se h5=<µ1=17.7,µ2=19.4>.

Com estes valores, constata-se que é mais provável que os dez primeiros valores digam

respeito à 1ª cidade e os restantes à 2ª, como se mostra na Figura 32.

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

16.5 17 17

17.2

17.2

17.4

17.7

17.7

18.3

18.4

18.7

19.2

19.2

19.4

19.4

19.6

19.9

19.9

20.5

20.6

P(x|Z1) P(x|Z2)

Figura 32 – Distribuição das probabilidades de x ter sido gerado por Z1 e Z2♦♦♦♦

Algoritmos hierárquicos e dendogramas

Ao contrário das abordagens anteriores, os algoritmos hierárquicos começam por

considerar tantos grupos quantas as instâncias, e em cada iteração vão juntando os dois

grupos mais similares de modo a obter menos um grupo do que os existentes no passo

anterior. O processo termina quando existe apenas um grupo que contém todas as

Page 56: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 7 – Segmentação

95

instâncias.

Naturalmente que a semelhança dos grupos que contém apenas uma instância é medida

de acordo com a medida de semelhança entre instâncias, tal como nos algoritmos

anteriores. No entanto, a avaliação da semelhança entre grupos com duas ou mais

instâncias é necessariamente diferente, mas pode ser definida em função das distâncias

calculadas no passo anterior, pela composição de funções. Por exemplo, a distância

entre um grupo criado no passo anterior G1∪G2, que resulta de juntar os grupos G1 e G2 ,

pode ser calculada como função da distância entre cada um deles e um terceiro grupo

G3: dist(G1∪G2,G3) = f (dist(G1,G3), dist(G2,G3)).

Associado aos algoritmos de segmentação hierárquica encontram-se frequentemente os

dendogramas, que se apresentam como a visualização mais habitual da segmentação

processada por estes métodos.

Os dendogramas são estruturas em árvore que fornecem uma imagem dos grupos

facilmente interpretável, e que representa o processo de segmentação propriamente

dito. Em particular as folhas do dendograma correspondem aos grupos constituídos por

uma só instância e a sua raiz ao grupo que contém todas as instâncias.

Figura 33 – Exemplo de um dendograma

A Figura 33 ilustra um dendograma para cinco instâncias, a que correspondem cinco

grupos no primeiro passo. A partir do dendograma é ainda possível perceber que a

segmentação resulta de juntar os grupos G1 e G2 no segundo passo e os grupos G3 e G4

no terceiro passo. Na quarta iteração junta-se ao grupo criado no último passo G3∪G4 o

grupo G5, e finalmente juntam-se o grupo formado por G1∪G2 com G3∪G4∪G5.

Avaliação dos resultados da segmentação

Sendo a segmentação uma operação não-supervisionada, a avaliação dos resultados

atingidos não é trivial. Existem essencialmente duas abordagens: uma abordagem

estatística e uma abordagem comparativa.

A abordagem estatística tenta descrever as propriedades da partição encontrada,

recorrendo exclusivamente à análise das relações entre as instâncias e o respectivo

grupo.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

96

Neste contexto, o Erro Quadrático Médio (Mean square error – MSE) é a medida

estatística mais comum. No âmbito da estatística, esta medida é uma característica dos

estimadores, e traduz simplesmente o valor esperado do quadrado do erro cometido

pelo estimador. Quando aplicado à segmentação, o erro quadrático médio mede a

compacticidade dos grupos encontrados, e é definido pela Expressão 15 (em que: P

representa a partição encontrada, ou seja, o conjunto de grupos G; dist traduz uma

medida de distância entre duas instâncias; |G| o número de instâncias pertencentes ao

grupo G e µG o seu centróide).

∑∈

=∑∈

∑∈

=Gxx

GGcom

G GxG

xdistMSEr

r

r

r

||

12),()( µµP

P

Expressão 15 – Fórmula para o Erro Quadrático Médio no contexto da

segmentação

É importante notar que o erro quadrático médio é tanto menor quanto maior for o número

de grupos encontrado. Repare que se cada instância pertencer ao seu próprio grupo

(existindo tantos grupos quantas as instâncias) o erro é zero, mas nada se ganhou com

a operação de segmentação.

Para resolver este problema, pode usar-se o coeficiente de silhueta (Silhouette

Coefficient – SC) [Kaufman 1990], que ao contrário do MSE é independente do número

de grupos. A ideia principal deste coeficiente é identificar a qualidade da segmentação

avaliando a silhueta ou estrutura dos vários grupos, incluindo a existência de

sobreposições entre eles. O coeficiente de silhueta é dado pela Expressão 16, em que: P

representa a partição encontrada; D o conjunto de instâncias; dist(x,G) traduz a

distância da instância x ao grupo G; Gx0 o grupo a que a instância x pertence e Gx

1 o

grupo vizinho mais próximo.

||

)},(),,(max{

),(),(

)(

01

01

D

GxdistGxdist

GxdistGxdist

SC Dx xx

xx∑∈

=r

rr

rr

P

Expressão 16 – Fórmula para o Coeficiente de Silhueta

Neste contexto a distância de uma instância x a um grupo G é dado pela média das

distâncias da instância x às instâncias pertencentes ao grupo G.

O valor ideal do coeficiente pertence ao intervalo [0.7; 1.0], que traduz uma separação

excelente entre os diversos grupos; um coeficiente entre 0.5 e 0.7 (0.5≤SC(P)<0.7)

expressa uma segmentação razoável, e entre 0.25 e 0.5 uma segmentação fraca mas

que ainda permite alguma identificação dos diferentes grupos. Finalmente, um

coeficiente menor que 0.25 traduz uma segmentação realmente pobre, em que existem

Page 57: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 7 – Segmentação

97

sobreposições entre os vários grupos, impossibilitando a identificação da estrutura da

partição [Kaufman 1990].

Ao contrário da abordagem estatística, a abordagem comparativa avalia os resultados da

segmentação considerando que a partição das instâncias é conhecida, e

consequentemente é possível determinar exactamente o número de erros cometidos

pela segmentação. Como este é o papel desempenhado pelas técnicas de classificação,

estas medidas serão descritas em detalhe no próximo capítulo.

Sumário

Neste capítulo apresenta-se a operação de segmentação ou clustering, descrevendo

os dois algoritmos mais conhecidos: o k-means e o EM. Para além destes, é descrita

a abordagem de segmentação hierárquica e os dendogramas, por efectivamente,

traduzirem graficamente um processo de segmentação.

O capítulo termina com a descrição das medidas de avaliação das partições

encontradas como resultado da segmentação.

Page 58: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

99

8 Classificação

O objectivo dos métodos de classificação é aprender um classificador capaz de

determinar o valor de um atributo específico, designado classe ou conceito. Em geral,

um classificador não é mais que uma função f do conjunto de instâncias D para um

conjunto de rótulos das classes C ( f : D �C ).

Sempre que o número de classes k é limitado e relativamente pequeno (em relação ao

número de instâncias), é fácil entender que o papel de um classificador não é mais do

que encontrar uma partição do conjunto de instâncias em k grupos, as classes. Assim,

formalmente uma classe Ci é um subconjunto do conjunto de instâncias D, composto

pelas instâncias que satisfazem a descrição dessa classe. O objectivo primordial dos

métodos de classificação é pois descobrir estas descrições, que traduzem as

características comuns às instâncias que pertencem a cada classe. Ao conjunto das

descrições das classes inferidas num problema concreto é habitual chamar-se modelo.

De modo a descobrir tais descrições, os métodos de classificação usam um conjunto de

instâncias previamente rotuladas, que constitui o conjunto de treino. (Devido à

utilização deste conhecimento, os métodos de classificação fazem parte dos métodos de

aprendizagem supervisionada.)

Assim que as descrições de cada classe são conhecidas é possível definir regras de

classificação para cada uma das classes. Uma regra de classificação diz-se correcta

com respeito a um conjunto de treino, se a sua descrição cobre todas as instâncias da

classe (exemplos positivos) e nenhuma das instâncias das restantes classes

(exemplos negativos).

Conhecendo as regras de classificação para cada uma das classes existentes num

determinado problema, e assumindo que as novas instâncias seguem a mesma

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

100

distribuição que as instâncias do conjunto de treino, torna-se possível “adivinhar” a

classificação de qualquer instância do mesmo domínio.

Várias têm sido as abordagens seguidas na investigação de métodos de classificação, e

apesar da descoberta dos modelos de cada classe ser o seu objectivo primordial, muitas

das abordagens têm-se limitado a criar regras de classificação globais, em que a

descrição de cada classe não é facilmente compreensível. Na verdade, a maioria dos

métodos actualmente existentes pertencem a este grupo.

As abordagens existentes diferem essencialmente nas estruturas de dados que usam

para representar os modelos de cada classe, e nas propriedades subjacentes às

grandes quantidades de dados que exploram.

Outros aspectos importantes na escolha da abordagem a usar são a sua robustez e a

velocidade de construção dos modelos. Por robustez entenda-se a capacidade que a

abordagem apresenta na manipulação de conjuntos de dados com erros (instâncias

inconsistentes) e valores omissos.

A seguir apresentam-se as abordagens mais relevantes.

Classificação baseada em instâncias

O método de classificação mais simples baseia-se em escolher como classe para uma

dada instância, a classe da instância mais semelhante a ela. A este método dá-se o

nome de classificação pelo vizinho mais próximo – 1-nn (Algoritmo 7).

1111----nnnnnnnn(Dataset D, Instance z)

for eachfor eachfor eachfor each xi∈D dodododo

ti�distance(z, xi)

z.class�xj.class ∧ tj=min(ti) ∀i∈{1..||D||}

returnreturnreturnreturn z.class

Algoritmo 7 – Pseudocódigo do algoritmo do vizinho mais próximo

De forma a minimizar o impacto e influência dos pontos isolados, é habitual usar k

vizinhos em vez de um só. Assim, em vez de se escolher para classificação o rótulo do

vizinho mais próximo, escolhe-se o rótulo da maioria dos k vizinhos mais próximos (do

inglês k nearest neighbors) [Fix 1951], passando a concretizar o algoritmo k-nn

(Algoritmo 8).

Existem duas situações que merecem alguns comentários:

� A primeira traduz-se na existência de vários vizinhos a uma mesma distância.

Naturalmente, se todos eles pertencerem à mesma classe não existe qualquer

problema, no entanto se pertencerem a classes distintas não é possível decidir que

Page 59: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

101

vizinhos escolher. A solução usualmente adoptada é escolher uma outra função de

distância que melhor discrimine as diferenças entre as instâncias.

� A segunda situação diz respeito a casos de empate. Quando de entre os k vizinhos,

não existe uma classe maioritária, o algoritmo usa os k-1 vizinhos mais próximos

para determinar a classe, se continuar a verificar-se um empate, usa os k-2 vizinhos

mais próximos, e assim recursivamente até encontrar uma classe maioritária. No

caso da classificação binária (em que existem duas classes), para evitar empates é

habitual escolher um valor ímpar para k.

kkkk----nnnnnnnn(Dataset D, Instance z, int k)

T�∅

for eachfor eachfor eachfor each xi∈D dodododo

ti�distance (z, xi)

T�T∪{ti}

for eachfor eachfor eachfor each i∈{1..k} dodododo

yi� xj.class ∧ tj=min(T)

T�T\ {tj}

z.class�mode (xj.class) ∀j∈{1..k}

returnreturnreturnreturn z.class

Algoritmo 8 – Pseudocódigo do algoritmo k-vizinhos mais próximos (Knn)

Tal como nos algoritmos de clustering, é necessário o conhecimento da função de

semelhança ou distância (distance no Algoritmo 8) entre as instâncias. De modo a evitar

a definição de tal medida, o mais habitual é assumir que cada instância é mapeada para

um ponto de Rn, com n o número de atributos que caracteriza cada instância, e utilizar a

distância Euclidiana como medida de semelhança.

Aos métodos que não usam qualquer estrutura de dados, mas sim todas as instâncias

do conjunto de treino para determinar a classificação de qualquer instância

desconhecida é habitual chamar-se classificação baseada em instâncias. Outra

designação habitual é ‘métodos de avaliação retardada’ (lazy evaluation).

Naturalmente, este tipo de abordagem é pouco eficiente, pois para cada instância nova é

necessário compará-la com todas as conhecidas (existentes no conjunto de treino) para

determinar a sua semelhança ou distância face a cada uma delas.

Apesar desta ineficiência, a simplicidade do algoritmo k–nn tem feito com que este seja

um dos mais conhecidos entre os classificadores baseados em instâncias, e

consideravelmente competitivo face a outros classificadores, quando na presença de

dados mais complexos (vejam-se os resultados obtidos na classificação de texto,

descritos no capítulo 9). Adicionalmente, são possíveis várias optimizações, quer ao

nível do tempo de computação quer ao nível do espaço necessário. Uma das

optimizações mais relevantes diz respeito à compactação do conjunto de treino,

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

102

guardando apenas as instâncias necessárias à classificação de novos elementos, ou

seja removendo as instâncias redundantes. Como se verá mais adiante, o número de

instâncias necessárias para determinar o sub-espaço ocupado por cada classe pode ser

bastante reduzido (veja a secção sobre Máquinas de vectores de suporte).

Exemplo

Considere o problema de determinar o nível do risco (Alto, Baixo ou Moderado) de um

condutor provocar um acidente, com base num conjunto de dados previamente existente

e já classificado (conjunto de treino representado na Tabela 10). Cada condutor é

caracterizado por três atributos: o sexo (com valores Feminino ou Masculino), a faixa etária

(com valores Jovem, Adulto ou Idoso) e a cor do veículo (de valor Vermelho ou Outra).

Suponha que se pretende determinar o nível do risco de um condutor do sexo feminino,

jovem e com um carro vermelho, provocar um acidente. Para tal será usado o algoritmo

k-nn considerando 3 vizinhos (k=3). Por ser um método de avaliação retardada, não é

construído nenhum modelo dos dados, e por cada instância que se queira classificar

será aplicado o algoritmo escolhido.

Tabela 10 – Conjunto de treino para a determinação do nível de risco de acidente Sexo F. Etária Cor Risco

X1 F Adulto Vermelho Alto X2 M Adulto Vermelho Alto X3 F Adulto Outra Baixo X4 M Adulto Outra Baixo X5 M Adulto Outra Baixo X6 F Idoso Outra Moderado X7 M Idoso Outra Moderado X8 M Idoso Outra Moderado X9 M Jovem Vermelho Alto X10 F Jovem Outra Baixo X11 M Adulto Vermelho Alto X12 M Jovem Outra Alto

Uma vez que os atributos não são numéricos, mapeia-se cada instância para um ponto

de Rn, neste caso R3. A forma mais fácil de o fazer é fazer corresponder cada valor

possível de um atributo a um ponto de R. No presente caso ter-se-ia, por exemplo, as

correspondências definidas na Tabela 11

Tabela 11 – Mapeamento do valor de cada atributo para RRRR Sexo F. Etária Cor M = 0 Jovem = 0 Vermelho = 0 F = 1 Adulto = 1 Outra = 1

Idoso = 2

A Tabela 12 apresenta os valores da distância entre a instância que se pretende

classificar e cada uma das instâncias conhecidas (que pertencem ao conjunto de treino).

Page 60: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

103

Como se verifica os 3 vizinhos mais próximos da instância a classificar Y são os

exemplos X1, X9 e X10. Como a maioria destes vizinhos pertence à classe de nível de

risco Alto, a instância Y será classificada como tendo um Alto risco de provocar um

acidente automóvel.♦

Tabela 12 – Distância entre a instância Y=(Feminino, Jovem, Vermelho) e cada

instância do conjunto de treino

Feminino Jovem Vermelho f(Xi,Y) Classe

X1 0 1 0 1 Alto X2 1 1 0 1,41 Alto X3 0 1 1 1,41 Baixo X4 1 1 1 1,73 Baixo X5 1 1 1 1,73 Baixo X6 0 2 1 2,24 Moderado X7 1 2 1 2,45 Moderado X8 1 2 1 2,45 Moderado X9 1 0 0 1 Alto X10 0 0 1 1 Baixo X11 1 1 0 1,41 Alto x12 1 0 1 1,41 Alto

Classificador naïve Bayes

Uma outra abordagem simples, mas mais eficiente, consiste em calcular as

probabilidades associadas aos valores dos atributos em cada uma das classes, e usar

estas probabilidades para determinar a classe da nova instância. Formalmente, a

abordagem não é mais do que escolher a classe que apresenta maior probabilidade face

às características da instância, ou seja, face aos valores dos atributos (Expressão 17).

Este classificador corresponde simplesmente à hipótese de máxima verosimilhança.

)c(P)c|v...vz(Pmaxarg

)v...vz(P

)c(P)c|v...vz(Pmaxarg

)v...vz|c(Pmaxargc

kknc

n

kknc

nkc

k

k

k

1

1

1

1

==

=

==

=←

Expressão 17 – Classificação pela hipótese de máxima verosimilhança

Note-se que a abordagem pode ser reformulada usando o Teorema de Bayes

(Expressão 18),

)(

)()|()|(

BP

APABPBAP

×=

Expressão 18 – Teorema de Bayes

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

104

ao descartar a probabilidade da instância uma vez que é uma constante e portanto não

altera o argumento máximo (última linha da Expressão 17).

Com esta reformulação torna-se possível classificar uma nova instância sem ter de

analisar todo o conjunto de treino, afastando-se assim de um método baseado em

instâncias.

Apesar do enunciado ser simples, a estimação da probabilidade de cada instância face a

cada classe não é trivial na maioria dos casos. Repare que a instância z=<v1...vn> pode

ser desconhecida, logo a probabilidade de z face a cada classe é necessariamente igual

a zero, não sendo possível classificar tal instância sem recorrer a outro método.

Então, como calcular o valor de P(z=<v1...vn>|ck) para cada instância e classe?

Relembre-se que uma classe ck não é mais do que um subconjunto dos dados (D). Por

outro lado, podem existir zero, uma ou mais instâncias com os valores <v1...vn> para os

seus atributos <a1...an>, ou seja, instâncias em que a1=v1...ak=vn. Assim, o conjunto das

instâncias z pode ser descrito como {xi∈D : ∀j∈{1..n} aj=vj},

In

j jji vaDx1

}:{=

=∈

Expressão 19 – Conjunto de instâncias do tipo <a1=v1...ak=vn>

que é equivalente à intercepção dos conjuntos de instâncias cujo jésimo atributo assume o

valor vj (Expressão 19).

)}:{()|(11 IK

n

j jjkikn vacxPcvvzP=

=∈=>=<

Expressão 20 – Probabilidade de uma instância pertencer a uma classe

E portanto, o valor que se pretende estimar é dado pela Expressão 20. Ora, pelo

Teorema da Independência de Variáveis (Expressão 21),

)()()( BPAPBAPtesindependensãoBeA ×=∩⇔

Expressão 21 – Teorema da Independência de Variáveis

se se assumir que os atributos que caracterizam as instâncias são condicionalmente

independentes dada a classe, pode reescrever-se a fórmula do classificador (Expressão

17) com a Expressão 22.

∏=

===←n

jkjjkcknkc cvaPcPcvvzPcPc

kk1

1 )|()(maxarg)|...()(maxarg

Expressão 22 – Classificação pelo naïve Bayes

A este método dá-se o nome de classificador naïve Bayes (Algoritmo 9).

Page 61: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

105

nnnnaaaaïïïïveBayesveBayesveBayesveBayes(Dataset D, Instance z=<a1=v1…an=vn)

∏=

=←n

jkjjkc cvaPcPc

k1

)|()(maxarg

returnreturnreturnreturn c

Algoritmo 9 – Pseudocódigo do algoritmo naïve Bayes

Sempre que a assumpção da independência condicional entre os atributos se verifica, o

classificador de Naïve Bayes é óptimo, ou seja, escolhe de facto a classe mais provável.

Quando a assumpção não se verifica, ou seja, quando os atributos não são

condicionalmente independentes, o classificador pode não escolher a classe mais

provável. Porém, e dada a sua simplicidade, o método naïve Bayes tem vindo a ser

empregue em aplicações comerciais com relativo sucesso.

Exemplo

Considere novamente o problema de determinar o nível do risco de um condutor

provocar um acidente e o mesmo conjunto de treino do exemplo anterior (Tabela 10).

Ao contrário da classificação baseada em instâncias, a classificação usando o algoritmo

naïve Bayes implica a construção de um modelo dos dados, mais precisamente um

modelo probabilístico.

Assim, a classificação de um condutor do sexo feminino, jovem e com um carro vermelho

(como anteriormente) implica a identificação das probabilidades necessárias para o

cálculo da probabilidade à posteriori de cada classe dada a instância.

Tabela 13 – Probabilidades para a determinação do nível de risco de acidente

Cj Alto Baixo Moderado

P(Cj) 0.42 0.33 0.25

P(a=vi|Cj)

a=vi\Cj Alto Baixo Moderado Feminino 0.20 0.50 0.33

Jovem 0.40 0.25 0.00 Vermelho 0.80 0.00 0.00

A Tabela 13 apresenta aquelas probabilidades, ou seja as probabilidades apriori de cada

classe e a probabilidade condicionada de uma instância ser caracterizada por aqueles

valores (feminino, jovem, vermelho) no caso de pertencer a cada uma das classes. Note

que estas probabilidades são determinadas pela frequência das instâncias no conjunto

de treino e não fazem parte do enunciado do problema.

A Expressão 23 mostra os cálculos efectuados pela aplicação do algoritmo, que

justificam a classificação da instância como tendo Alto risco de provocar um acidente

automóvel.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

106

[ ][ ]

A

MvermelhoPMjovemPMinofePMP

BvermelhoPBjovemPBinofePBP

AvermelhoPAjovemPAinofePAP

cvvzPcPc

MBA

MBA

MBA

knkck

=

=

×××××××××=

×××

×××

×××

=

=←

0,0,027.0maxarg

0033.025.0,025.050.033.0,80.040.020.042.0maxarg

)|()|()|min()(

),|()|()|min()(

),|()|()|min()(

maxarg

)|...()(maxarg

},,{

},,{

},,{

1

Expressão 23 – Determinação da classificação mais provável para um condutor

jovem, do sexo feminino e com veículo vermelho

Manipulação de atributos numéricos

A eficácia do algoritmo de naïve Bayes como descrito, é posta em causa na presença de

atributos numéricos, com maior evidência para os que tenham como domínio o conjunto

dos números reais. Isto acontece, porque o método descrito determina as probabilidades

condicionadas para cada um dos valores assumidos por cada atributo. Ora, na presença

de um atributo contínuo, as probabilidades assim determinadas estão longe de ser

aceitáveis.

De modo a ultrapassar esta situação, o algoritmo assume que cada atributo numérico

segue uma distribuição de probabilidades gaussiana, em que a média e o desvio padrão

são estimados a partir dos valores registados para esse atributo. Determinados estes

valores a probabilidade do atributo assumir um dado valor é aproximadamente igual ao

valor da função de densidade de probabilidades para esse atributo. Ora, a função de

densidade de probabilidades f para uma variável gaussiana X~N (µ, σ2) é conhecida, e

dada pela Expressão 24.

2

2

2

2

1 σ

µ−−

πσ=

)x(

e)x(f

Expressão 24 – Função de densidade de probabilidades para X~NNNN (µ, σ2)

Exemplo

Considere de novo o problema de determinar o nível do risco de um condutor provocar

um acidente mas agora com o atributo idade em vez de faixa etária (Tabela 14).

Para classificar um condutor do sexo feminino, com 20 anos e um carro vermelho

(instância semelhante à anterior), é portanto necessário recorrer às probabilidades

calculadas no exemplo anterior para os atributos sexo e cor (Tabela 13).

Page 62: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

107

Tabela 14 – Conjunto de treino com um atributo contínuo Sexo Idade Cor Risco

X1 F 35 Vermelho Alto X2 M 37 Vermelho Alto X3 F 45 Outra Baixo X4 M 50 Outra Baixo X5 M 37 Outra Baixo X6 F 65 Outra Moderado X7 M 76 Outra Moderado X8 M 82 Outra Moderado X9 M 18 Vermelho Alto X10 F 25 Outra Baixo X11 M 44 Vermelho Alto X12 M 23 Outra Alto

Para além disso é necessário determinar as novas probabilidades condicionadas para o

atributo idade, passando necessariamente pela determinação da sua função de

densidade de probabilidades, a partir da sua média µi e o seu desvio padrão σi (Tabela

15).

Tabela 15 – Média e desvio padrão do atributo idade para cada classe, e respectiva

probabilidade condicionada de o condutor ter 20 anos

Cj Alto Baixo Moderado

µ(Idade) 31.40 39.25 74.33

σ(Idade) 10.64 10.90 8.62

P(Idade=20|Cj)

a=vi\Cj Alto Baixo Moderado 20 0.069 0.025 0.000

Com estes valores resta apenas aplicar o algoritmo, como se ilustra na Expressão 25.

[ ][ ]

A

,,.maxarg

..,...,....maxarg

)M|vermelho(P)M|(P)M|inominfe(P)M(P

),B|vermelho(P)B|(P)B|inominfe(P)B(P

),A|vermelho(P)A|(P)A|inominfe(P)A(P

maxarg

)c|v...vz(P)c(Pmaxargc

}M,B,A{

}M,B,A{

}M,B,A{

knkck

=

=

×××××××××=

×××

×××

×××

=

=←

000090

00000250025002503308004000690420

20

20

20

1

Expressão 25 – Determinação da classificação mais provável para um condutor de

20 anos, do sexo feminino e com veículo vermelho

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

108

Árvores de decisão

Apesar da classificação Bayesiana dar um passo na construção das referidas regras de

classificação, ainda não estamos na presença de um método que crie um modelo dos

dados, facilmente interpretado por um gestor / analista do negócio.

O método de classificação mais conhecido, e que constrói os modelos mais

compreensíveis, é sem dúvida alguma o método de indução de árvores de decisão.

Uma árvore de decisão é uma estrutura de dados em árvore que representa todas as

regras de classificação extraídas de um conjunto de treino. Nesta estrutura, cada nó

corresponde ao teste do valor de um atributo, os ramos ao resultado do teste efectuado

e as folhas às classes a que as instâncias devem pertencer.

A árvore da Figura 34 ilustra uma árvore de decisão que classifica o nível do risco de um

condutor provocar um acidente automóvel. Os condutores são caracterizados por três

atributos: o sexo (com valores Feminino ou Masculino), a faixa etária (Jovem, Adulto ou

Idoso) e a cor do veículo (Vermelho ou Outra), como anteriormente.

Figura 34 – Exemplo de uma árvore de decisão para determinar o risco de acidente

A árvore estabelece que sempre que a pessoa conduz um veículo Vermelho ou que é do

sexo Masculino e é Jovem existe Alto risco de ter um acidente; se conduzir um veículo de

outra cor e for do sexo Feminino ou for Adulto existe um risco Baixo; e finalmente se for

um Idoso do sexo Masculino existe um risco Moderado.

Na verdade, cada nó de uma árvore de decisão divide o espaço das instâncias em

tantos sub-espaços quantos os valores verificados para o atributo testado nesse nó.

Na Figura 35 ilustra-se a divisão do espaço de instâncias determinada pelas árvores de

decisão que implementam a conjunção (à esquerda) e a disjunção exclusiva de duas

variáveis (à direita).

Page 63: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

109

A

BFalso

VerdadeFalso

VF

VF

A

B

Verdade Falso

VF

VF

B

Verdade

VF

Falso

A A xor

Figura 35 – Sub-espaços correspondentes às classificações segundo as árvores

de decisão para a conjunção e disjunção exclusiva

Uma instância é classificada percorrendo a árvore de decisão, começando por testar o

atributo especificado pelo nó raiz, seguindo depois o ramo correspondente ao valor

assumido pela instância para o mesmo atributo. Este processo é então repetido para a

sub-árvore com raiz no novo nó. Cada caminho da árvore, desde o nó raiz até uma folha,

corresponde a uma conjunção de testes de atributos, e uma árvore de decisão

representa uma disjunção de conjunções de restrições no valor dos atributos

[Mitchell 1997]. Por exemplo, a instância (Sexo=Masculino, Faixa Etária=Jovem,

Cor Veículo=Cinza) seria classificada como estando sujeita a um Alto risco de ter

acidente, de acordo com o modelo representado na árvore de decisão da Figura 34.

Algoritmo ID3

A classificação por árvores de decisão é composta por duas etapas distintas: na primeira

constrói-se o modelo explicativo dos dados (a árvore de decisão), e na segunda usa-se o

modelo para classificar as instâncias desconhecidas.

Uma vez que os modelos são explicativos dos dados, cada modelo só por si constitui

uma peça de informação importante. O objectivo dos métodos de construção de árvores

de decisão é, portanto, gerar a árvore que melhor se adeqúe ao problema, ou seja, que

melhor classifique as instâncias do domínio considerado.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

110

O primeiro algoritmo aplicado à construção de árvores de decisão foi o ID3

[Quinlan 1986]. De forma resumida, o algoritmo começa por escolher o atributo que

melhor discrimina as instâncias das várias classes, criando um nó para esse atributo.

Para cada valor que este assume, cria-se um ramo e volta-se a executar o algoritmo,

agora apenas com o subconjunto de instâncias que satisfazem a condição imposta

nesse ramo. O Algoritmo 10 apresenta o pseudocódigo do ID3.

ID3ID3ID3ID3(Dataset D, Set of Attributes A, Attribute class)

T� newnewnewnew DecisionTree()

// Se todas as instâncias pertencem à mesma classe, devolve a árvore com um folha

ifififif ∃v∈Dom(class)[∀x∈D x.class= v] thenthenthenthen

T.root�newnewnewnew node(v)

returnreturnreturnreturn T

// Se não existem mais atributos, devolve a árvore construída até ao momento

ifififif A=∅ thenthenthenthen

returnreturnreturnreturn T

eeeelselselselse

// Escolhe o melhor atributo para separar os dados

a�best(A, class)

T.root�newnewnewnew node(a)

// Para cada valor possível de o atributo escolhido

for eachfor eachfor eachfor each vi∈Dom(a) dodododo

Dvi�{x∈D: x.a=vi}

// Se não existem instâncias para o valor vi para o atributo a,

// cria-se uma folha com a classificação da maioria das instâncias

ifififif Dvi =∅ thenthenthenthen

c�mode({x.class:x∈Dvi)

returnreturnreturnreturn add(T.root, newnewnewnew branch(vi, newnewnewnew node(c)))

// Senão cria-se uma árvore de decisão para o restante conjunto

// de dados e restantes atributos

elseelseelseelse

returnreturnreturnreturn add(T.root, newnewnewnew branch(vi), ID3(Dvi, A\{a}, class))

Algoritmo 10 – Pseudocódigo do algoritmo ID3

Como escolher o atributo que melhor discrimina as várias classes?

De acordo com o princípio de Occam (Occam’s razor), devem privilegiar-se os modelos

mais pequenos. Ora, para que se privilegiem as menores árvores de decisão, é

fundamental seleccionar correctamente o atributo que melhor discrimine as instâncias,

em função da sua classe. O melhor atributo é o que melhor separa as instâncias

pertencentes às diferentes classes, isto é, o que produza o nó mais “puro”.

Considere, por exemplo, a classe dos homens e a classe das mulheres, e que cada

instância é caracterizada por quatro atributos: a idade, o sexo, a morada e o nome. Qual

destes atributos melhor discrimina as instâncias possíveis? Evidentemente que é o

Page 64: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

111

atributo sexo, já que todas as instâncias da classe mulher têm o valor feminino e as

instâncias da classe homem o valor masculino.

No entanto, na maioria dos casos, a escolha do melhor atributo não é evidente, não

existindo nenhum que efectue uma partição perfeita (totalmente pura) do conjunto de

dados inicial, em cada um dos subconjuntos referentes a cada classe. Assim, é

necessário definir uma medida capaz de diferenciar a impureza resultante de cada nó.

Tal medida deve satisfazer as três propriedades seguintes:

� quando o nó é puro o valor da medida deve ser zero (0);

� quando a impureza é máxima, o valor da medida deve ser máximo;

� a medida deve ser aplicável em diferentes etapas, ou seja, deve permitir que a

medida seja usada em subconjuntos do conjunto inicial.

A medida usada pelo ID3 é o ganho de informação baseado no conceito de entropia,

cujas origens remontam à Teoria da Informação criada por Shannon para definir

matematicamente o problema da comunicação [Shannon 1948]. A entropia determina o

grau de confusão da distribuição de probabilidade associada aos valores possíveis a

transmitir, podendo ser usada para determinar a capacidade mínima (em bits) para

transmitir uma determinada mensagem (informação). Neste contexto, uma outra forma

de encarar o conceito de entropia é entendê-la como a quantidade média de informação

necessária para identificar a classe a que pertence uma instância do conjunto.

∑=

≤∈

∈×

∈−=

c

i

ii clog}Sx{#

}Cx{#log

}Sx{#

}Cx{#)S(E

1

22

Expressão 26 – Fórmula da entropia

No contexto dos problemas de classificação, a entropia de um conjunto, E(S), é a

medida da impureza desse conjunto, S, ou seja, é a medida da confusão existente no

conjunto em função do atributo classe.

Entropia

0.0

0.2

0.4

0.6

0.8

1.0

0% 25% 50% 75% 100%

Figura 36 – Variação da entropia para duas classes

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

112

Assim, o valor da entropia (dado pela Expressão 26, em que ‘#’ denota o número de

instâncias do conjunto) é máximo quando as classes são equiprováveis, e mínimo

quando todas as instâncias pertencem à mesma classe, variando entre zero e log2c (com

c o número de classes – Figura 36), e pode ser aplicado em cada subconjunto do

conjunto de instâncias, satisfazendo as propriedades enumeradas anteriormente.

O ganho de informação associado a um atributo, A, por sua vez, mede a redução

esperada no valor da entropia, quando o conjunto de treino é ordenado segundo os

valores do atributo A. De outro modo, o seu valor é dado pela diferença entre a entropia

inicial do conjunto e a entropia associada aos conjuntos resultantes da ordenação pelo

atributo A. O seu valor é dado pela Expressão 27.

}).:({}{#

}.:{#)(),(

)(

iADomv

i vAxSxESx

vAxSxSEASG

i

=∈×∈

=∈−= ∑

Expressão 27 – Fórmula do ganho de informação

Assim, o ganho de informação aumenta com o aumento da pureza dos subconjuntos

gerados pelos vários valores do atributo. Pelo que, o melhor atributo é o que apresenta

maior ganho de informação. (Note que maximizar o ganho de informação de um atributo

é equivalente a minimizar a entropia associada à ordenação do conjunto pelo mesmo

atributo.)

A naturalidade do conceito de ganho de informação, devido essencialmente ao

conhecimento generalizado do conceito de entropia, tem feito com que este seja um dos

critérios mais usados. No entanto, este critério privilegia os atributos cujos domínios têm

maior número de valores, pois quanto maior for o número de subconjuntos gerados pela

ordenação, maior tende a ser a sua pureza. O caso extremo deste problema é por

exemplo a selecção de uma chave primária como o melhor atributo para o nó.

A escolha de tais atributos, não só aumenta o tamanho da árvore de decisão, como

aumenta a probabilidade de a árvore estar sobre-ajustada ao conjunto de treino,

diminuindo a sua capacidade de previsão. Este problema é normalmente conhecido

como o problema de sobre-aprendizagem ou overfitting.

Exemplo

Considere de novo o problema de determinar o nível do risco de um condutor provocar

um acidente, e o conjunto de treino representado na Tabela 10.

O algoritmo ID3 começa por calcular a entropia do conjunto de treino, E(S), e a partir daí

o ganho de informação obtido pela utilização de cada um dos atributos, G(Ai|S). Ora, a

entropia associada ao conjunto de treino é 1.555, calculada na Expressão 28. (Repare

que este valor é inferior a log23=1.585, o valor máximo da entropia para a partição de um

Page 65: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

113

conjunto em 3 classes).

555.1

12

3log

12

3

12

4log

12

4

12

5log

12

5

}{#

}{#log

}{#

}{#

}{#

}{#log

}{#

}{#

}{#

}{#log

}{#

}{#)(

222

222

=

−−−=

∈−

∈−

∈−=

Sx

Mx

Sx

Mx

Sx

Bx

Sx

Bx

Sx

Ax

Sx

AxSE

Expressão 28 – Cálculo da entropia associada ao conjunto de treino da Tabela 10

Como cada condutor é caracterizado por 3 atributos (Cor, Sexo e Faixa Etária), o ganho

de informação será calculado 3 vezes de acordo com a Expressão 27.

617.0

8

3log

8

3

8

4log

8

4

8

1log

8

1

12

800

4

4log

4

4

12

4555.1

}).:({12

8}).:({

12

4555.1

}).:({}{#

}.:{#

}).:({}{#

}.:{#)(),(

2222

=

−−−−

−−−−=

=∈−=∈−=

=∈∈

=∈−

=∈∈

=∈−=

OutraCorxSxEVermelhoCorxSxE

OutraCorxSxESx

OutraCorxSx

VermelhoCorxSxESx

VermelhoCorxSxSECorSG

Expressão 29 – Cálculo do ganho de informação para o atributo Cor

Assim, o ganho de informação para o atributo Cor vale 0.617, para o atributo Sexo 0.055,

e 0.825 para o atributo Faixa Etária (de acordo com a Expressão 29 e a Expressão 30).

8250

3

3

3

3

12

3

5

3

6

3

6

3

6

3

12

6

3

1

3

1

3

2

3

2

12

35551

0550

4

1

4

1

4

2

4

2

4

1

4

1

12

4

8

2

8

2

8

2

8

2

8

4

8

4

12

85551

22222

222222

.

logloglogloglog.

})IFaixa.x:Sx({E}Sx{#

}IFaixa.x:Sx{#

})AFaixa.x:Sx({E}Sx{#

}AFaixa.x:Sx{#

})JFaixa.x:Sx({E}Sx{#

}JFaixa.x:Sx{#)S(E)Faixa,S(G

.

loglogloglogloglog.

})FSexo.x:Sx({E}Sx{#

}FSexo.x:Sx{#

})MSexo.x:Sx({E}Sx{#

}MSexo.x:Sx{#)S(E)Sexo,S(G

=

−−

−−−

−−−=

=∈∈

=∈−

=∈∈

=∈−

=∈∈

=∈−=

=

−−−−

−−−−=

=∈∈

=∈−

=∈∈

=∈−=

Expressão 30 – Cálculo do ganho de informação para o atributo Sexo e Faixa Etária

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

114

Donde, o algoritmo ID3 escolheria para raiz da árvore o atributo Faixa Etária, e em

seguida repetiria o processo para cada subconjunto das instâncias, derivado dos

diferentes valores do atributo testado no nó da árvore. Deste modo o processo seria

repetido para o subconjunto dos jovens, dos adultos e dos idosos. No entanto para o

subconjunto dos condutores Idosos não é necessário efectuar todos os cálculos, uma vez

que todas as instâncias deste subconjunto pertencem à classe de risco Moderado. Deste

modo, o ramo da árvore correspondente ao valor Idoso termina de imediato numa folha

com o valor Moderado (Figura 37).

Moderado

Faixa Etária

?

Idoso

Jovem Adulto

?

Figura 37 – Construção de uma árvore de decisão com o algoritmo ID3, 1º passo

Para o subconjunto dos condutores Adultos, SAdulto, o processo termina com mais uma

iteração, uma vez que se a Cor do veículo for Vermelho o risco de acidente é Alto, caso

contrário o risco é Baixo.

A Expressão 31 mostra o cálculo da entropia para o subconjunto de condutores adultos,

0.1

06

3log

6

3

6

3log

6

3

}{#

}{#log

}{#

}{#

}{#

}{#log

}{#

}{#

}{#

}{#log

}{#

}{#)(

22

22

2

=

−−−=

∩∈

∩∈−

∩∈

∩∈−

∩∈

∩∈−=

Adulto

Adulto

Adulto

Adulto

Adulto

Adulto

Adulto

Adulto

Adulto

Adulto

Adulto

AdultoAdulto

Sx

SMx

Sx

SMx

Sx

SBx

Sx

SBx

Sx

SAx

Sx

SAxSE

Expressão 31 – Cálculo da entropia para o subconjunto de condutores adultos

e a Expressão 32 e Expressão 33 mostram os cálculos relativos ao ganho de informação

para o atributo Cor e Faixa etária, respectivamente.

01

003

3

3

3

6

30

3

3

3

30

6

301 22

.

loglog.

})VermelhoCor.x:Sx({E}Sx{#

}VermelhoCor.x:Sx{#

})OutraCor.x:Sx({E}Sx{#

}OutraCor.x:Sx{#)S(E)Cor,S(G

AdultoAdulto

Adulto

AdultoAdulto

AdultoAdultoAdulto

=

−−−−

−−−=

=∈∈

=∈−

=∈∈

=∈−=

Expressão 32 – Ganho de informação do atributo Cor no subconjunto SAdulto

Page 66: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

115

0

04

2

4

2

4

2

4

2

6

40

2

1

2

1

2

1

2

1

6

201 2222

=

−−−−−

−−−−−=

=∈∈

=∈−

=∈∈

=∈−=

loglogloglog.

})MSexo.x:Sx({E}Sx{#

}MSexo.x:Sx{#

})FSexo.x:Sx({E}Sx{#

}FSexo.x:Sx{#)S(E)Sexo,S(G

AdultoAdulto

Adulto

AdultoAdulto

AdultoAdultoAdulto

Expressão 33 – Ganho de informação do atributo Sexo no subconjunto SAdulto

Verificando-se que o algoritmo escolheria o atributo Cor, para estender a árvore. Uma

vez mais, como para cada subconjunto resultante todas as instâncias do conjunto de

treino pertencem a uma só classe o ramo termina, resultando na árvore ilustrada na

Figura 38.

Moderado

Faixa Etária

?

Idoso

Jovem Adulto

Cor

OutraV

Alto Baixo

Figura 38 – Construção de uma árvore de decisão com o algoritmo ID3, 2º passo

Concluída a determinação dos ramos correspondentes aos subconjuntos dos condutores

adultos e dos condutores idosos, resta determinar o ramo para os condutores jovens

(SJovem).

Os cálculos a efectuar são semelhantes aos apresentados para o subconjunto dos

condutores adultos.

918.0

03

1log

3

1

3

2log

3

2

}{#

}{#log

}{#

}{#

}{#

}{#log

}{#

}{#

}{#

}{#log

}{#

}{#)(

22

22

2Jovem

=

−−−=

∩∈

∩∈−

∩∈

∩∈−

∩∈

∩∈−=

Jovem

Jovem

Jovem

Jovem

Jovem

Jovem

Jovem

Jovem

Jovem

Jovem

Jovem

Jovem

Sx

SMx

Sx

SMx

Sx

SBx

Sx

SBx

Sx

SAx

Sx

SAxSE

Expressão 34 – Cálculo da entropia associada ao subconjunto de condutores

jovens

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

116

A Expressão 34 mostra o cálculo da entropia associada ao subconjunto de condutores

jovens e na Expressão 35 efectuam-se os cálculos necessários à determinação

completa do ramo correspondente àqueles condutores.

918.0

003

2log

3

2

3

20

3

1log

3

10

3

1918.0

}).:({}{#

}.:{#

}).:({}{#

}.:{#)(),(

252.0

001

1log

1

1

3

10

3

1log

3

1

3

1log

3

1

3

2918.0

}).:({}{#

}.:{#

}).:({}{#

}.:{#)(),(

22

222

=

−−−−

−−−=

=∈∈

=∈−

=∈∈

=∈−=

=

−−−−

−−−−=

=∈∈

=∈−

=∈∈

=∈−=

MSexoxSxESx

MSexoxSx

FSexoxSxESx

FSexoxSxSESexoSG

VermelhoCorxSxESx

VermelhoCorxSx

OutraCorxSxESx

OutraCorxSxSECorSG

JovemJovem

Jovem

JovemJovem

JovemJovemJovem

JovemJovem

Jovem

JovemJovem

JovemJovemJovem

Expressão 35 – Cálculos necessários à determinação do ramo referente ao

subconjunto dos condutores jovens

Pelos cálculos efectuados, verifica-se que o atributo com maior ganho de informação

para o subconjunto dos condutores jovens é o atributo Sexo, e portanto o nó seguinte

neste ramo. Para o ramo feminino a classificação será Baixo e para o ramo masculino a

classificação Alto, dando origem à árvore da Figura 39.

Moderado

Faixa Etária

Idoso

Jovem Adulto

Cor

Outra

V

Alto Baixo

Sexo

MF

Baixo Alto

Figura 39 –Árvore de decisão determinada pelo algoritmo ID3

Repare na diferença desta árvore para a apresentada na Figura 34. Apesar das

diferenças, ambas efectuam exactamente a mesma classificação para qualquer instância

existente no conjunto de treino, mas uma classificação diferente para algumas instâncias

ainda desconhecidas. Pelo exemplo verifica-se a veracidade da afirmação efectuada

Page 67: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

117

anteriormente, de que o algoritmo ID3 privilegia os atributos com maior cardinalidade

(número de valores possíveis), escolhendo portanto para a raiz da árvore o atributo com

maior número de valores possíveis (Faixa etária com 3 valores, face aos restantes com 2

valores possíveis cada um).

Depois de construída a árvore de decisão é então possível classificar qualquer instância

desconhecida, por exemplo um condutor do sexo feminino, jovem e com um carro

vermelho (como anteriormente). Para tal é suficiente seguir o caminho na árvore que

satisfaz a instância, ou seja o ramo mais à esquerda da árvore (Figura 39). Repare que a

instância é agora classificada como sendo de Baixo risco.♦

Algoritmo C4.5

De forma a evitar a tendência para escolher atributos com muitos valores, Quinlan

propôs um novo critério para seleccionar o melhor atributo a testar – o gain ratio. Esta

nova medida tem em conta o número de valores dos atributos para compensar o valor

do ganho de informação respectivo.

Para proceder a esta compensação, usa-se o valor da informação ganha pela partição

do conjunto S de acordo com os valores de um atributo A [splitInfo(S,A)], que não é mais

do que a entropia associada aos conjuntos resultantes da ordenação pelo atributo em

causa, como na Expressão 36.

|}{|

|}.:{|log

|}{|

|}.:{|),( 2

)( Sx

vAxSx

Sx

vAxSxASsplitInfo i

ADomv

i

i∈

=∈

=∈−= ∑

Expressão 36 – Fórmula da informação ganha pela partição (splitInfo)

Repare que esta fórmula é semelhante à fórmula da entropia. No entanto, enquanto que

a entropia contabiliza o número de instâncias de cada classe, a splitInfo tem em conta o

número de instâncias para cada valor possível de um determinado atributo.

O valor do gain ratio associado a um atributo é tão-somente o rácio entre o ganho de

informação e a splitInfo associados ao atributo.

),(

),(),(

ASsplitInfo

ASGASGainRatio =

Expressão 37 – Fórmula do gain ratio

Como a splitInfo(S, A) representa a informação potencialmente ganha pela partição do

conjunto inicial de acordo com os valores do atributo A, e o ganho de informação G(S, A)

representa o ganho para a classificação da mesma partição, o rácio expressa a

proporção da informação gerada pela partição que é útil, ou seja que parece ajudar na

tarefa de classificação.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

118

Assim, de acordo com a Expressão 37, um atributo é menos importante quanto maior é a

splitInfo associada ao atributo. No entanto, face a este novo critério, por vezes são

escolhidos atributos, somente porque têm associada uma splitInfo muito baixa, sem que

o seu ganho seja suficientemente interessante face aos restantes.

Para além da desvantagem da utilização do ganho de informação, o algoritmo ID3 não

consegue manipular atributos não nominais, nem lidar com valores omissos (missing

values), nem com dados com ruído (noisy data).

De modo a resolver estes problemas, Quinlan propôs um conjunto de alterações

adicionais, que implementou numa adaptação do algoritmo ID3resultando no algoritmo

C4.5 [Quinlan 1993].

Como manipular instâncias com atributos numéricos?

O problema associado aos atributos numéricos reside no número de valores possíveis,

que apesar de ser finito9 pode ser muito elevado. De facto, a escolha de um atributo com

um número moderado de valores possíveis, resulta numa árvore de decisão mais larga e

consequentemente mais sujeita ao fenómeno do overfitting.

Uma maneira de lidar com um atributo numérico A é associar-lhe um teste binário que

compare o valor assumido pela instância com um valor limiar Z. Deste modo, o teste

dará origem apenas a dois ramos: o ramo A≤Z (que inclui as instâncias em que o atributo

A tem valor menor ou igual a Z) e o ramo A>Z (que inclui as instâncias em que o atributo

A tem valor maior do que Z).

A dificuldade desta abordagem está naturalmente na determinação do valor de Z, uma

vez que uma escolha desadequada pode fazer com que a partição pelo atributo não seja

útil.

O método usado pelo C4.5 consiste na ordenação das instâncias do conjunto de treino

de acordo com o valor do atributo A. Seja {v1, v2, ..., vm} o conjunto ordenado de valores

conhecidos de A, qualquer valor escolhido para Z no intervalo [vi, vi+1] terá o mesmo

efeito na partição do conjunto de treino, separando as instâncias com A≤vi num ramo e

as instâncias com A>vi+1 no outro ramo. Uma possibilidade é usar o valor máximo do

intervalo, garantindo que todos os valores usados são conhecidos.

Deste modo, e porque existe um número finito de valores conhecidos de A, existe

também um número finito de valores interessantes para Z, na verdade m-1 valores, que

terão de ser analisados para determinar o que melhor contribuirá para a classificação

9 Repare que mesmo na presença de atributos com domínios infinitos, o número de instâncias de um conjunto

de treino é finito, e consequentemente o número de valores do atributo a ter em consideração é também ele

finito.

Page 68: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

119

das instâncias do conjunto de treino.

Apesar de se tratar de um método eficaz para reduzir o tamanho das árvores de decisão,

é um método dispendioso, uma vez que é necessário ordenar o conjunto de treino de

acordo com cada um dos atributos numéricos, em cada nó da árvore. Ora, para grandes

conjuntos de treino, estas ordenações irão dominar o tempo de construção da árvore,

deteriorando o desempenho do algoritmo.

Como usar e avaliar instâncias com valores omissos?

Um outro problema dominante é a existência de valores omissos entre os atributos das

instâncias do conjunto de treino. Na verdade, esta é uma característica intrínseca dos

dados existentes nas bases de dados das organizações. O problema revela-se em duas

vertentes: na utilização das instâncias com valores omissos no processo de construção

da árvore e na classificação de instâncias nas mesmas condições.

A utilização daquelas instâncias na construção do modelo pode passar quer pelo

preenchimento dos atributos com um valor escolhido (como descrito anteriormente –

capítulo 5, secção Limpeza de dados), ou pela adaptação dos conceitos de ganho de

informação e splitInfo.

A adaptação dos conceitos deve ser feito de modo a que tenham em atenção o número

de instâncias em que o valor de um dado atributo é desconhecido. Assim sendo, o

ganho de informação associado ao uso de um atributo será ponderado pela

probabilidade do valor do atributo ser conhecido, ou seja, ser diferente de null (como na

Expressão 38).

=∈×

=∈−×≠= ∑

}).:({}{#

}.:{#)()(),(

)(

iADomv

i vAxSxESx

vAxSxSEnullAPASG

i

Expressão 38 – Fórmula do ganho de informação na presença de valores omissos

A adaptação do cálculo da splitInfo passa por considerar mais um subconjunto: o

subconjunto das instâncias cujo valor do atributo em causa é desconhecido (null) –

Expressão 39.

|}{|

|}.:{|log

|}{|

|}.:{|),( 2

}{)( Sx

vAxSx

Sx

vAxSxASsplitInfo i

nullADomv

i

i∈

=∈

=∈−= ∑

∪∈

Expressão 39 – Fórmula da splitInfo na presença de valores omissos

Para além da adaptação dos critérios de escolha dos atributos a testar, é necessário

determinar a que ramo do teste se associam as instâncias com valores omissos no

atributo testado, ou seja, como é efectuada a partição do conjunto de treino face a cada

teste.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

120

Uma forma de tratar o problema é adoptar uma abordagem probabilística. Neste

contexto, sempre que para uma instância o valor de um atributo A (de domínio DomA) é

conhecido, a probabilidade de a instância pertencer a um subconjunto do domínio de A é

conhecida: é 1 para o subconjunto que contém a instância e zero para os subconjuntos

restantes. No caso de o valor do atributo não estar especificado, a probabilidade da

instância pertencer a cada um dos subconjuntos é desconhecida, podendo apenas ser

estimada. A instância é então atribuída ao ramo com maior probabilidade.

O algoritmo C4.5 determina as estimativas daquelas probabilidades usando

simplesmente a probabilidade de uma instância pertencer a cada um dos ramos. No

entanto, para evitar múltiplas passagens pelos exemplos do conjunto de treino, e uma

vez que estas probabilidades só são conhecidas depois de efectuada a partição, o valor

usado é a fracção de instâncias que pertencem efectivamente ao ramo e que já foram

distribuídas até ao momento, face ao número total de instâncias com valor conhecido

para o atributo testado no nó.

A abordagem usada para classificar uma instância com valores omissos é semelhante à

usada para fazer a partição do conjunto de treino.

Como evitar o overfitting?

O problema do overfitting, ou sobre-aprendizagem, pode ser formalmente apresentado

da seguinte forma:

Dado um espaço de hipóteses H, uma hipótese h∈H diz-se estar sobre-ajustada ao

conjunto de treino, se existe uma hipótese h’∈H alternativa, tal que h apresenta um erro

de classificação menor que h’ face aos exemplos do conjunto de treino, mas h’

apresenta um erro de classificação menor que h face à totalidade das instâncias do

domínio.

No que diz respeito à construção de árvores de decisão, em particular na utilização dos

algoritmos que derivam do ID3, existem essencialmente duas abordagens possíveis para

resolver o problema do overfitting: a decisão de não expandir mais um ramo ou a

remoção ou poda de um ou mais ramos já construídos.

A primeira abordagem, designada pre-pruning, consiste na avaliação da significância

estatística da possível partição do nó em vários ramos (usando um teste de χ2, por

exemplo). Caso a avaliação fique aquém de um determinado valor limiar, a partição não

é feita, terminando o ramo da árvore numa folha referente à classificação mais

apropriada, ou seja, a classificação da maioria das instâncias cobertas pelo ramo em

causa.

A segunda abordagem, designada pruning, é baseada na avaliação do erro de

classificação cometido pela travessia de um ramo. Nesta perspectiva, começando pelas

folhas da árvore, a poda começa pela avaliação de cada sub-árvore. Se a substituição

Page 69: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

121

desta sub-árvore por uma folha ou pelo seu ramo mais frequente, levar a um erro de

classificação mais baixo, a substituição é efectuada, tornando a árvore global mais

pequena.

Naturalmente, que aquela avaliação terá de ser feita num conjunto independente, pois o

erro de classificação deve ser medido num conjunto de dados, que não o conjunto de

treino. No entanto, o conjunto de dados usados para esta avaliação também não é o

conjunto de teste, pois este apenas deve ser usado para a avaliação final do

classificador. Deste modo, é habitual a existência de um terceiro conjunto para estes

efeitos – o conjunto de validação.

Exemplo

Uma vez que o exemplo que tem vindo a ser apresentado apenas contém instâncias

bem comportadas (sem ruído nem valores omissos), apenas se ilustra a utilização do

critério de escolha do atributo a testar usado pelo C4.5.

Como se percebe pela descrição do algoritmo C4.5, os cálculos efectuados na primeira

iteração do algoritmo ID3, apresentados na secção anterior, são também efectuados

pelo algoritmo C4.5 (Expressão 28, Expressão 29 e Expressão 30).

Como agora a escolha do atributo para o nó da raiz é determinada pelo gain ratio, em

vez do ganho de informação, são necessários alguns cálculos adicionais,

nomeadamente a splitInfo associada a cada atributo.

9180

12

4

12

4

12

8

12

8

9180

12

4

12

4

12

8

12

8

22

2

2

22

2

2

.

loglog

|}Sx{|

|}VSexo.x:Sx{|log

|}Sx{|

|}VSexo.x:Sx{|

|}Sx{|

|}OSexo.x:Sx{|log

|}Sx{|

|}OCor.x:Sx{|)Cor,S(splitInfo

.

loglog

|}Sx{|

|}FSexo.x:Sx{|log

|}Sx{|

|}FSexo.x:Sx{|

|}Sx{|

|}MSexo.x:Sx{|log

|}Sx{|

|}MSexo.x:Sx{|)Sexo,S(splitInfo

=

×−×−=

∈=∈

×∈

=∈−

∈=∈

×∈

=∈−=

=

×−×−=

∈=∈

×∈

=∈−

∈=∈

×∈

=∈−=

Expressão 40 – Cálculo da splitInfo associada aos atributo Sexo e Cor

Como se pode observar a splitInfo dos atributos Sexo e Cor (Expressão 40) é

semelhante, uma vez que ambos têm dois valores possíveis, e um dos seus valores

caracteriza 67% das instâncias conhecidas. Para além disso, a splitInfo do atributo Faixa

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

122

Etária é superior (Expressão 41).

51

12

3

12

3

12

3

12

3

12

6

12

6222

2

2

2

.

logloglog

|}Sx{|

|}MFaixa.x:Sx{|log

|}Sx{|

|}MFaixa.x:Sx{|

|}Sx{|

|}BFaixa.x:Sx{|log

|}Sx{|

|}BFaixa.x:Sx{|

|}Sx{|

|}AFaixa.x:Sx{|log

|}Sx{|

|}AFaixa.x:Sx{|)Faixa,S(splitInfo

=

×−×−×−=

∈=∈

×∈

=∈−

∈=∈

×∈

=∈−

∈=∈

×∈

=∈−=

Expressão 41 – Cálculo da splitInfo associada ao atributo Faixa etária

Com estes dados, não é surpreendente que a relação entre o gain ratio dos atributos

seja diferente da relação entre os seus ganhos de informação.

550051

8250

67209180

6170

05909180

0550

..

.

)Faixa,S(splitInfo

)Faixa,S(G)Faixa,S(GainRatio

..

.

)Cor,S(splitInfo

)Cor,S(G)Cor,S(GainRatio

..

.

)Sexo,S(splitInfo

)Sexo,S(G)Sexo,S(GainRatio

===

===

===

Expressão 42 – Cálculo do gain ratio para cada atributo

Como se verifica na Expressão 42, o gain ratio do atributo Cor é o maior, fazendo com

que seja seleccionado para raiz da árvore de decisão. Uma vez que todos os condutores

com veículos vermelhos pertencem à classe de Alto risco, o ramo da esquerda termina

numa folha (Figura 40).

Cor

OutraV

Alto?

Figura 40 – Construção de uma árvore de decisão com o algoritmo C4.5, 1º passo

No passo seguinte, os cálculos a efectuar já diferem completamente dos efectuados pelo

algoritmo ID3, por ter sido escolhido outro atributo para o nó raiz, resultando num

subconjunto diferente SCor=O.

Page 70: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

123

406.1

8

3log

8

3

8

4log

8

4

8

1log

8

1

}{#

}{#log

}{#

}{#

}{#

}{#log

}{#

}{#

}{#

}{#log

}{#

}{#)(

222

OCor

OCor2

OCor

OCor

OCor

OCor2

OCor

OCor

OCor

OCor2

OCor

OCorOCor

=

−−−=

∩∈

∩∈−

∩∈

∩∈−

∩∈

∩∈−=

=

=

=

=

=

=

=

=

=

=

=

==

Sx

SMx

Sx

SMx

Sx

SBx

Sx

SBx

Sx

SAx

Sx

SAxSE

Expressão 43 – Entropia associada ao subconjunto de veículos não vermelhos

Depois de calculada a entropia associada ao subconjunto dos condutores com veículos

não vermelhos (SCor=O na Expressão 43), seguem-se os cálculos do ganho de informação,

splitInfo e gain ratio para os atributos Sexo e Faixa Etária (Expressão 44). Dos cálculos

efectuados conclui-se que o atributo a testar em seguida é o atributo Faixa Etária, por

apresentar o melhor gain ratio, resultando a árvore da Figura 41.

Moderado

Faixa Etária

Idoso

Baixo

Adulto

Cor

OutraV

Alto

Baixo

MF

Sexo

Alto

Jovem

Figura 41 – Árvore de decisão determinada pelo algoritmo C4.5

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

124

74005651

1561

5611

8

3

8

3

8

2

8

2

8

3

8

3

1561

2

1

2

10

2

1

2

1

12

20

3

3

3

30

8

3

3

3

3

300

8

34061

11509540

1100

9540

8

5

8

5

8

3

8

3

1100

5

2

5

2

5

2

5

2

5

1

5

1

8

5

3

2

3

2

3

1

3

10

8

34061

222

2

2

2

2222

22

2

2

22222

..

.

)Faixa,S(nfoIntrinsicI

)Faixa,S(G)Faixa,S(GainRatio

.

logloglog

|}Sx{|

|}MFaixa.x:Sx{|log

|}Sx{|

|}MFaixa.x:Sx{|

|}Sx{|

|}BFaixa.x:Sx{|log

|}Sx{|

|}BFaixa.x:Sx{|

|}Sx{|

|}AFaixa.x:Sx{|log

|}Sx{|

|}AFaixa.x:Sx{|

)Faixa,S(splitInfo

.

loglogloglog.

})JFaixa.x:Sx({E}Sx{#

}JFaixa.x:Sx{#

})IFaixa.x:Sx({E}Sx{#

}IFaixa.x:Sx{#

})AFaixa.x:Sx({E}Sx{#

}AFaixa.x:Sx{#)S(E)Faixa,S(G

..

.

)Sexo,S(nfoIntrinsicI

)Sexo,S(G)Sexo,S(GainRatio

.

loglog

|}Sx{|

|}MSexo.x:Sx{|log

|}Sx{|

|}MSexo.x:Sx{|

|}Sx{|

|}FSexo.x:Sx{|log

|}Sx{|

|}FSexo.x:Sx{|)Sexo,S(splitInfo

.

logloglogloglog.

})MSexo.x:Sx({E}Sx{#

}MSexo.x:Sx{#

})FSexo.x:Sx({E}Sx{#

}FSexo.x:Sx{#)S(E)Sexo,S(G

OCor

OCorOCor

OCor

OCor

OCor

OCor

OCor

OCor

OCor

OCor

OCor

OCor

OCor

OCor

OCor

OCorOCor

OCor

OCorOCor

OCor

OCorOCor

OCorOCorOCor

OCor

OCorOCor

OCor

OCor

OCor

OCor

OCor

OCor

OCor

OCorOCor

OCorOCor

OCor

OCorOCor

OCorOCorOCor

===

=

×−×−×−=

=∈×

=∈−

=∈×

=∈−

=∈×

=∈−

=

=

−−−−

−−−

−−−=

=∈∈

=∈−

=∈∈

=∈−

=∈∈

=∈−=

===

=

×−×−=

=∈×

=∈−

=∈×

=∈−=

=

−−−−−−

−−−−=

=∈∈

=∈−

=∈∈

=∈−=

=

==

=

=

=

=

=

=

=

=

=

=

=

=

=

==

=

==

=

==

===

=

==

=

=

=

=

=

=

=

==

==

=

==

===

Expressão 44 – Cálculos para os atributos Sexo e Faixa Etária no subconjunto SCor=O

Page 71: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

125

Algoritmo CART

O algoritmo CART (Classification and Regression Trees) [Breiman 1984], proposto em

1984, é actualmente o método mais usado para criar árvores de decisão. O seu sucesso

deve-se a vários factores, por exemplo, as capacidades de lidar com os dados brutos, ou

seja, sem os pré-processar (continuando por exemplo a processar valores omissos

adequadamente); e também a capacidade de manipular tanto atributos categóricos como

numéricos, incluindo o atributo classe, isto é, criando quer modelos de classificação quer

de previsão. Um outro aspecto importante é o facto do método reequilibrar os dados

(class balancing) automaticamente, atribuindo pesos às instâncias de treino de modo a

equilibrar os pesos relativos das diferentes classes10.

No entanto a riqueza do algoritmo não se esgota naquelas capacidades. Ao contrário

dos métodos até agora descritos, o algoritmo devolve um conjunto de árvores de decisão

em vez de uma única. As diferentes árvores correspondem aos resultados de podar a

árvore gerada, seguindo diferentes opções. O processo de poda é feito pela avaliação

das diferentes opções sobre um conjunto de dados independente (usualmente

designado conjunto de validação): em cada passo retira-se da árvore o teste que menos

contribui para o bom desempenho do classificador. Caso não haja disponível tal conjunto

de dados independente, o algoritmo não selecciona nenhuma das árvores como sendo a

melhor, e devolve todas as opções.

As árvores criadas pelo CART são necessariamente binárias, uma vez que os testes em

cada nó correspondem à verificação de condições da forma “Xi≤C“ para atributos

numéricos e da forma “Xi∈{V1, V2, …, Vn}” para atributos nominais, com C um valor real e

Vj valores do domínio de Xi. Com estes testes, todas as instâncias que verificam a

condição seguem para o ramo da esquerda e os restantes para o ramo da direita. (Note

que existem vários testes possíveis em ambos os casos, sendo necessário considerar

todos eles). Ao serem exclusivamente binárias, os dados são fragmentados mais

lentamente e são permitidas partições sucessivas sobre o mesmo atributo.

O critério de determinação do melhor atributo utilizado pelo método é também ele

diferente, e baseia-se no índice de gini. Tal como a entropia, este índice mede a

impureza de um conjunto, desta vez calculada de acordo com a Expressão 45, em que

D corresponde a um conjunto de dados distribuídos por n classes, e pj traduz a

frequência relativa da classe j em D.

10 O problema de classificação em domínios em que existe uma classe claramente dominante (como por

exemplo a detecção de fraudes, ou o diagnóstico de patologias) requer operações deste tipo, uma vez que

aquele desequilíbrio pode provocar a criação de classificadores que atribuem todas as instâncias à classe

maioritária.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

126

∑=

−=n

jj

p)D(gini1

2

1

Expressão 45 – Fórmula do índice de gini

Por sua vez, o índice de gini associado à partição de um conjunto D ginisplit(D) em m

subconjuntos é dado pela Expressão 46, com N o número total de instâncias e Ni o

número de instâncias no subconjunto Di.

)D(giniN

N)D( i

m

i

i

splitgini ∑

=

=1

Expressão 46 – Fórmula do índice de Gini associado a uma partição (ginisplit)

O melhor atributo é o que faz a partição dos dados que apresenta menor valor para o

índice de gini associado à partição (ginisplit).

Exemplo

Dada a vastidão de procedimentos oferecida pelo algoritmo CART e as limitações do

exemplo usado para comparar os vários métodos, a seguir apenas se ilustra a utilização

do índice de gini na determinação de um classificador para o risco de acidente.

Na primeira recursão, o algoritmo determina os índices de gini associados a cada uma

das partições possíveis, para cada um dos atributos. Na Expressão 47 mostram-se os

cálculos do índice de gini associados à utilização do atributo Sexo e do atributo Cor,

ambos com dois valores possíveis, e consequentemente com apenas uma partição

cada. Por exemplo, para o atributo Sexo, têm-se oito das doze instâncias com o valor

Masculino, das quais quatro correspondem a um risco Alto, duas a um risco Baixo e duas

a um risco Moderado; e quatro instâncias com o valor Feminino, das quais uma

corresponde a risco Alto, duas a risco Baixo e uma a risco Moderado.

594016

91611

016

00161

396012

8

12

4

625016

1411

625064

44161

8

2241

625012

4

12

8

2

222

.)S(gini

)S(gini

.)S(gini)S(gini)S(gini

.)S(gini

.)S(gini

.)S(gini)S(gini)S(gini

OCor

VCor

OCorVCorCorsplit

FSexo

MSexo

FSexoMSexoSexosplit

=++

−=

=++

−=

=×+×=

=++

−=

=++

−=++

−=

=×+×=

=

=

==

=

=

==

Expressão 47 – Índice de gini para as partições segundo os atributos Sexo e Cor

Page 72: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

127

Para o caso do atributo Faixa etária, com três valores possíveis, o algoritmo considera

todas as partições possíveis, ou seja, separar as instâncias referentes a jovens das

instâncias restantes, separar os adultos dos restantes ou separar os idosos dos

restantes. Deste modo, o algoritmo calcula o índice de gini associado a cada uma das

três partições, necessitando de determinar o índice de gini para cada um dos seis

subconjuntos possíveis (o subconjunto de jovens – SFE=J, o subconjunto de adultos –

SFE=A, o subconjunto de idosos – SFE=I, o subconjunto de não jovens – SFE≠J, o

subconjunto de não adultos – SFE≠A, o subconjunto de não idosos – SFE≠I (Expressão 48).

494081

016251

09

0091

370012

9

12

3

667081

9991

44409

0141

611012

9

12

3

611036

9141

5036

0991

556012

6

12

6

.)S(gini

)S(gini

.)S(gini)S(gini)S(gini

.)S(gini

.)S(gini

.)S(gini)S(gini)S(gini

.)S(gini

.)S(gini

.)S(gini)S(gini)S(gini

IFE

IFE

IFEIFEIFEsplit

JFE

JFE

JFEJFEJFEsplit

AFE

AFE

AFEAFEAFEsplit

=++

−=

=++

−=

=×+×=

=++

−=

=++

−=

=×+×=

=++

−=

=++

−=

=×+×=

=

≠==

=

≠==

=

≠==

Expressão 48 – Cálculo do índice de gini associado à partição segundo o atributo

Faixa etária para cada um dos testes possíveis

Note-se que o valor mais baixo para o índice relativo a uma partição (ginisplit)

corresponde à partição efectuada pelo atributo Faixa etária, quando testa o valor Idoso,

sendo o resultado do primeiro passo do algoritmo, o ilustrado na Figura 42.

Figura 42 – Construção de uma árvore de decisão com o algoritmo CART, 1º passo

No segundo passo, apenas é considerado o subconjunto dos não idosos (SI), e calculam-

se novamente os índices de gini associados a cada uma das partições possíveis. Para

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

128

além de se usarem apenas as nove instâncias correspondentes aos condutores adultos

e jovens, note-se a necessidade de voltar a avaliar o atributo Faixa etária, agora com

apenas uma partição possível (distinguir os adultos dos jovens) – Expressão 49. Das

partições possíveis, escolhe-se a determinada pela verificação do valor do atributo Cor.

44409

0141

5036

0991

48109

3

9

6

32025

01611

016

00161

17809

5

9

4

44409

0411

444036

04161

44409

3

9

6

.)S(gini

.)S(gini

.)S(gini)S(gini)S(gini

.)S(gini

)S(gini

.)S(gini)S(gini)S(gini

.)S(gini

.)S(gini

.)S(gini)S(gini)S(gini

FSexoI

MSexoI

JFEI

AFEI

FEI

split

OCorI

VCorI

OCorI

VCorI

CorI

split

FSexoI

MSexoI

FSexoI

MSexoI

SexoI

split

=++

−=

=++

−=

=×+×=

=++

−=

=++

−=

=×+×=

=++

−=

=++

−=

=×+×=

=

=

==

=

=

==

=

=

==

Expressão 49 – Cálculo do índice de gini para o subconjunto dos adultos e jovens

No terceiro passo, resta analisar os dados referentes aos condutores jovens ou adultos

com carros de cor não vermelho (Cor = Outra). Note que se testam apenas as partições

obtidas pelo atributo Sexo e Faixa etária para os valores Jovem e Adulto (Expressão 50).

504

0111

09

0091

20005

2

5

3

04

0401

77809

0111

46705

2

5

3

.)S(gini

)S(gini

.)S(gini)S(gini)S(gini

)S(gini

.)S(gini

.)S(gini)S(gini)S(gini

JFEIO

AFEIO

JFEIO

AFEIO

FEIO

split

FSexoIO

MSexoIO

FSexoIO

MSexoIO

SexoIO

split

=++

−=

=++

−=

=×+×=

=++

−=

=++

−=

=×+×=

=

=

==

=

=

==

Expressão 50 – Índice de gini para o subconjunto dos condutores não idosos e

veículo não vermelho

Page 73: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

129

Uma vez que a partição mais discriminante (com menor valor para o ginisplit) é a

partição efectuada pelo atributo Faixa etária, este atributo é novamente testado na árvore

(Figura 43). Depois deste teste resta apenas a partição efectuada pelo atributo Sexo, que

discrimina completamente as instâncias de treino, concluindo a geração da árvore.

FE {I}

ModeradoCor {V}

AltoFE {A}

Baixo

Alto

Sexo

Baixo

Figura 43 – Árvore de decisão determinada pelo algoritmo CART, antes da poda

Com a árvore representada na Figura 43, o algoritmo CART procederia à sua poda,

recorrendo a um conjunto de dados independente de forma a devolver várias árvores

mais pequenas e potencialmente com maior poder de generalização.♦

Redes neuronais

À semelhança das árvores de decisão, as redes neuronais são estruturas de dados

usadas como modelos representativos de conjuntos de dados.

Uma rede neuronal artificial é um grafo dirigido em que cada nó representa uma

unidade e cada arco wji representa o peso associado à entrada i da unidade j.

As unidades podem ser de dois tipos: as unidades de entrada que representam os

atributos característicos das instâncias e as unidades de processamento, que

processam as entradas do nó de acordo com a Expressão 51.

∑∈

==inputsi

ijijj wfnetf )()( σσ

Expressão 51 – Fórmula para a saída da unidade de processamento j

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

130

De acordo com a equação, a saída da unidade de processamento j (σj) é apenas função,

f, da soma ponderada das suas entradas, netj.11 É normal que a função f (designada

função de activação) coincida com a função sigmóide ou logística (Expressão 52), uma

vez que é uma função em escada e diferenciável, o que facilita o treino da rede (como se

verá mais à frente no exemplo).

[ ]

))(1)(()('

1

1)(

1...0:

xfxfxfe

xf

f

x

−=+

=

→ℜ

Função Sigmóide

0.0

0.5

1.0

0 x

Expressão 52 – Função sigmóide

O facto de ser uma função em escada é determinante, pois permite estabelecer um

patamar a partir do qual a saída se considera activada (1) ou desactivada (0).

Sendo que cada unidade de processamento manipula valores numéricos, é necessário

traduzir os valores dos atributos dos domínios respectivos para valores numéricos. Em

geral, esta tradução é feita da seguinte maneira: para cada atributo ai, são criadas ni

unidades de entrada de modo a que, para cada atributo, apenas uma das entradas seja

activada: a que corresponde ao valor que o atributo assume na instância em causa.

Os valores de activação das unidades de saída seguem uma interpretação semelhante.

Se existirem apenas duas classes, é suficiente existir uma única unidade de saída,

sendo uma das classes associada ao estado de activação e a outra ao estado de

desactivação. Quando o número de classes é maior, é habitual existir um número de

unidades de saída igual ao número de classes. Assim, apenas uma unidade de saída é

activada: a que corresponde à classificação atribuída à instância.

O número de camadas escondidas ou intermédias (hidden layers), assim como o

número de unidades de processamento em cada camada, determina a topologia ou

estrutura da rede. A escolha da topologia da rede é um processo de tentativa e erro, que

afecta a precisão final da rede. Não sendo conhecida nenhuma receita para fazer esta

escolha, quando a precisão resultante do treino de uma rede não é satisfatória, é

habitual redesenhar a rede, alterando a sua topologia.

As redes que estão organizadas em camadas, ou seja, que não contêm ciclos,

designam-se por redes multi-camada (multi-layer perceptrons).

11 Repare que a saída de uma unidade de entrada é igual ao valor de entrada, ou seja, não existe qualquer

processamento.

Page 74: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

131

Figura 44 – Exemplo de uma rede neuronal

A rede da Figura 44 ilustra uma possível topologia para o problema da determinação do

risco de acidente usado nas secções anteriores. Note-se que existem sete unidades de

entrada (duas associadas ao atributo sexo, três ao atributo faixa etária e duas à cor do

veículo), três unidades escondidas (que definem a camada intermédia) e três unidades

de saída (uma para cada classe).

Escolhida a topologia da rede, a etapa seguinte é escolher o valor inicial dos seus pesos,

de modo a facilitar a convergência do seu treino.

Ao contrário dos nós das árvores de decisão, que dividem o espaço ortogonalmente ao

eixo definido pelo atributo testado, uma unidade de processamento divide o espaço em

função dos atributos que entram na unidade. Na verdade, cada unidade de

processamento divide o espaço linearmente, e de forma a permitir qualquer separação

linear é habitual acrescentar uma unidade de entrada de valor constante e igual a 1 a

cada unidade de processamento. No fundo, este peso adicional wj0 não é mais do que a

ordenada na origem do hiperplano de separação dos dois sub-espaços (como se pode

perceber pela equação reduzida do hiperplano apresentada na Expressão 53, em que σi

são as variáveis de entrada da rede netj).

∑∈

+=inputsi

ijijj wwnet σ0

Expressão 53 – Equação reduzida do plano de separação definido pela unidade j

As redes apresentadas na Figura 45 (em cima) são representações possíveis para a

conjunção (à esquerda) e a disjunção exclusiva de duas variáveis (à direita). Em baixo,

ilustra-se a separação linear efectuada pela primeira rede à esquerda, e a separação

não linear efectuada pela segunda rede à direita.

Repare na diferença entre os sub-espaços encontrados usando árvores de decisão

(Figura 35) e redes neuronais (Figura 45).

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

132

Figura 45 – Redes neuronais para a conjunção e disjunção exclusiva e sub-

espaços correspondentes

Ao contrário da construção das árvores de decisão que apenas depende do conjunto de

treino e que é feita recursivamente, o treino de uma rede neuronal é feito iterativamente,

partindo de uma rede inicial e tentando melhorar a sua precisão em cada iteração. Esta

melhoria, que se pretende contínua, consiste na adaptação do valor dos pesos da rede,

de modo a que o erro de classificação vá diminuindo em cada passo.

A função de erro é naturalmente dependente da diferença entre a classificação de cada

instância e a respectiva classe prevista pela rede – tipicamente, esta função resume-se

ao erro quadrático médio.

∑∈

−←outputsk

kktE 2)(2

1 σ

Expressão 54 – Função de erro típica

A Expressão 54 apresenta esta função para uma só instância, em que outputs

corresponde ao conjunto de nós de saída da rede, σk é a saída k da rede para a

instância, e tk é a classificação da instância no conjunto de treino, de acordo com a

tradução entre as classes e os nós da rede. Por exemplo, considerando a rede da Figura

44, se a instância de entrada fosse classificada como de risco Moderado, os valores de t

Page 75: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

133

seriam t1=0 (risco Alto), t2=1 (risco Moderado) e t3=0 (risco Baixo).

BackpropagationBackpropagationBackpropagationBackpropagation(Dataset D, Network N, [0,1] η, [0,1] α)

// η traduz o rácio de aprendizagem e α o momentum

n�0

wwwwhilehilehilehile ¬ satisfiesTerminatingCondition() dodododo

fofofofor each r each r each r each xk∈D do do do do

// Calcular cada uma das unidades de saída (σj), para determinar o valor da classificação σ

for eachfor eachfor eachfor each outputj ∈N dodododo

∑∈

←inputsi

ijij wf )( σσ

// Determinar o erro da rede E para a instância xk conhecida a sua classe tk

),( kterrorErr

σ←

// Actualizar os pesos da rede de acordo com o erro

for eachfor eachfor eachfor each wji∈N dodododo

jj net

E

∂−←δ

)1()( −∆+←∆ nwnw jiijji ασηδ

)(nwww jijiji ∆+←

n�n+1

returnreturnreturnreturn N

Algoritmo 11 – Pseudocódigo do algoritmo de retro-propagação (backpropagation)

O algoritmo mais usado para treinar redes neuronais é o algoritmo de retro-

propagação (do inglês backpropagation). A ideia básica do algoritmo é minimizar o

erro de classificação em cada iteração, o que é feito através do cálculo e propagação

das derivadas parciais do erro em ordem a cada um dos pesos (Algoritmo 11).

j

jjiijji net

Ecom)n(w)n(w

∂−=δ−∆α+σηδ←∆ 1

Expressão 55 – Regra de actualização dos pesos da rede

Recebendo a rede N e o conjunto de treino D como entrada, e parametrizando o

algoritmo com os valores do rácio de aprendizagem η (learning rate) e do momentum

α; em cada iteração n, o algoritmo calcula a saída da rede para cada instância do

conjunto de treino, o respectivo erro e as suas derivadas parciais, e actualiza todos os

pesos da rede com base no valor daquelas derivadas (Expressão 55).

Como qualquer algoritmo baseado no método do gradiente ascendente, o algoritmo de

retro-propagação corre o risco de encontrar um mínimo local, sem conseguir encontrar a

solução óptima – a valoração dos pesos da rede tal que o erro seja mínimo. É para evitar

esta situação, que se usa o rácio de aprendizagem: quando o seu valor é pequeno, a

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

134

convergência torna-se lenta mas consistente; se o seu valor é mais elevado, existem

oscilações maiores na convergência, permitindo afastar a solução de um mínimo local

para onde possa estar a convergir. De modo, a equilibrar as duas situações, é habitual

fazer o valor de η variar em cada iteração, fazendo-o decair ao longo do treino. Por seu

lado, o parâmetro α relativo ao momentum permite suavizar as flutuações dos pesos da

rede, ao incorporar o valor da actualização anterior. É habitual não explorar essa

possibilidade, usando um α com valor zero.

Existem algumas desvantagens na utilização de redes neuronais, a primeira das quais

diz respeito à baixa velocidade do processo de aprendizagem quando comparado com

os métodos de construção de árvores de decisão. Uma segunda desvantagem é que a

informação gerada pelas redes é representada sob a forma de uma rede, traduzindo-se

na sua topologia e nos valores de cada um dos seus pesos, em vez de explicitamente

representada sob a forma de regras ou padrões conceptuais. Por último, é difícil, embora

possível, incorporar conhecimento do domínio ou interacção do utilizador durante o

processo de aprendizagem [Holsheimer 1994].

Exemplo

Uma vez mais, considere o problema de determinar o nível do risco de um condutor

provocar um acidente, e o conjunto de treino utilizado anteriormente (Tabela 10).

Porque uma rede neural computa valores numéricos é necessário traduzir aquele

conjunto de treino num equivalente. No entanto a tradução a efectuar depende da

topologia ou arquitectura da rede a usar. Como referido anteriormente, a abordagem

standard para problemas com atributos nominais, é usar uma rede multicamada

totalmente ligada (todos os nós de uma camada estão ligados a todos os nós da(s)

camada(s) seguinte(s)), em que existem tantos nós de entrada quantos os valores

possíveis da totalidade dos atributos.

1

3

8

9

10

2

4

5

6

7

11

12

13

Sex

oF

aixa

Etá

riaC

or

Ris

co d

e A

cide

nte

Figura 46 – Arquitectura da rede neuronal para determinar o risco de acidente

Page 76: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

135

Assim, para este problema a rede será composta por sete unidades de entrada, três

unidades de saída (uma para cada classe) e uma camada escondida com três unidades,

como se ilustra na Figura 46. Esta rede é semelhante à representada na Figura 44,

apenas se denominou cada nó por um número para facilidade da apresentação dos

cálculos, e a ligação de cada unidade de processamento à unidade de entrada de valor 1

(setas a tracejado que entram nas unidades 8, 9, 10, 11,12 e 13).

Definida a topologia da rede, é fácil traduzir o conjunto de treino. Para tal é suficiente

colocar a 1 as entradas que representam os valores de cada atributo que a instância

assume. Por exemplo, a primeira instância de treino (Feminino, Adulto, Vermelho) com

classificação Alto será traduzida para [(1,0,0,1,0,1,0);(1,0,0)], em que o primeiro membro

do par corresponde aos valores das unidades de entrada e o segundo aos valores de

saída que a rede deve apresentar, ou seja a classificação para a instância. A tradução

do conjunto de treino é apresentada na Tabela 16.

Tabela 16 – Conjunto de treino normalizado para determinar o risco de acidente

i1 i2 i3 i4 i5 i6 i7 t11 t12 t13

x1 1 0 0 1 0 1 0 1 0 0 x2 0 1 0 1 0 1 0 1 0 0 x3 1 0 0 1 0 0 1 0 0 1 x4 0 1 0 1 0 0 1 0 0 1 x5 0 1 0 1 0 0 1 0 0 1 x6 1 0 0 0 1 0 1 0 1 0 x7 0 1 0 0 1 0 1 0 1 0 x8 0 1 0 0 1 0 1 0 1 0 x9 0 1 1 0 0 1 0 1 0 0 x10 1 0 1 0 0 0 1 0 0 1 x11 0 1 0 1 0 1 0 1 0 0

x12 0 1 1 0 0 0 1 1 0 0

De forma a iniciar o treino da rede é ainda necessário iniciar os pesos da rede, usando

preferencialmente valores pequenos e aleatórios (valores entre 0 e 0.5 no exemplo).

Tabela 17 – Iniciação dos pesos da rede com valores aleatórios pequenos

w80 w81 w82 w83 w84 w85 w86 w87

0.42 0.39 0.01 0.03 0.08 0.26 0.42 0.33 w90 w91 w92 w93 w94 w95 w96 w97

0.09 0.39 0.21 0.14 0.29 0.01 0.34 0.27 w10.0 w10.1 w10.2 w10.3 w10.4 w10.5 w10.6 w10.7

0.46 0.00 0.46 0.48 0.10 0.35 0.23 0.50 w11.0 w11.8 w11.9 w11.10

0.14 0.05 0.17 0.16 w12.0 w12.8 w12.9 w12.10

0.06 0.04 0.06 0.33 w13.0 w13.8 w13.9 w13.10

0.34 0.09 0.05 0.34

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

136

A Tabela 17 apresenta os valores usados. Note que o peso wji diz respeito ao peso

associado à entrada i da unidade j, e o peso wj0 diz respeito ao peso associado à

entrada de valor constante da unidade j. Note ainda que as unidades de entrada não têm

pesos associados por não serem unidades de processamento.

Finalmente, pode proceder-se ao treino da rede, processando-se cada instância de

treino e revendo, em cada passo, o valor dos pesos da rede de acordo com o erro de

classificação cometido. Depois de processar todas as instâncias do conjunto de treino,

caso o erro de classificação ainda seja considerado demasiado elevado, volta-se a

treinar a rede com o mesmo conjunto de dados, tantas vezes quantas as necessárias.

Usando, obviamente, a rede treinada até então. É habitual designar cada uma destas

iterações por épocas.

Em seguida ilustram-se os cálculos efectuados pelo algoritmo backpropagation quando

processa a primeira instância de treino [(1,0,0,1,0,1,0);(1,0,0)]. Para tal considerou-se o

rácio de aprendizagem η com valor 0.5 e 0 para o momentum α; o erro calculado pela

fórmula mais usual (Expressão 54) e a função logística para função de processamento

(Expressão 52).

O algoritmo começa por calcular as saídas da rede (σ11, σ12 e σ13), no entanto para

efectuar tais cálculos é necessário calcular as saídas das unidades intermédias (σ8, σ9 e

σ10). Assim, o primeiro passo é calcular o valor de σ8, a partir do valor de net8. Repare

que como várias das entradas assumem o valor zero, o cálculo é smuito simples

(Expressão 56).

79.01

1)(

31.1

42.008.039.042.0

888

68648418180

787686585484383282181808

=+

==

=

+++=

+++=

+++++++=

−netenetf

wwww

wwwwwwwwnet

σ

σσσ

σσσσσσσ

Expressão 56 – Cálculo do resultado processado pela unidade 8

De igual modo para as unidades intermédias 9 e 10 (Expressão 57).

75.01

1)(

11.1

34.029.039.009.0

999

696494191909

=+

==

=

+++=

+++=

−netenetf

wwwwnet

σ

σσσ

69.01

1)(

79.0

23.010.0046.0

101010

66.1044.1011.100.1010

=+

==

=

+++=

+++=

−netenetf

wwwwnet

σ

σσσ

Expressão 57 – Cálculo dos resultados processados pelas unidades 9 e 10

Agora sim, é possível determinar os resultados de σ11, σ12 e σ13 (Expressão 58).

Page 77: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

137

660

680

590

360

600

420

1313

1010139913881301313

1212

1010129912881201212

1111

1010119911881101111

.)net(f

.wwwwnet

.)net(f

.wwwwnet

.)net(f

.wwwwnet

....

....

....

==σ

=σ+σ+σ+=

==σ

=σ+σ+σ+=

==σ

=σ+σ+σ+=

Expressão 58 – Cálculo das saídas das unidades 11, 12 e 13

O passo seguinte traduz-se no cálculo do erro. Note, que o importante não é a

determinação do seu valor absoluto, mas sim do erro cometido em cada saída, ou seja a

diferença entre o valor esperado de cada saída tj e o seu valor efectivo σj. A

concretização do erro é portanto dada pela Expressão 59.

∑=

−←13

11

2)(

21

kkktE σ

Expressão 59 – Função de erro para a rede da Figura 46

Finalmente, prossegue-se com a actualização de todos os pesos da rede, começando

pelo cálculo de cada uma das derivadas parciais do erro E em ordem à respectiva

porção da rede (netj), designados por δj.

Ao contrário do cálculo da saída, em que os valores de saída da rede dependem das

saídas das unidades intermédias, a determinação do valor das derivadas parciais é

calculada a partir da última camada da rede. A Expressão 60 apresenta os cálculos

necessários para a determinação das derivadas parciais associados às unidades de

saída.

[ ] [ ]

[ ]

[ ] 15.022.0)66.00(

14.024.0)59.00(

10.024.0)60.01()(')(

13

13

12

12

111111

11

11

1111

11

−=×−−−=∂

∂−=

−=×−−−=∂

∂−=

=×−−−=×−−−=∂

∂∂

−=∂

∂−=

net

E

net

E

netftnet

E

net

E

δ

δ

σσ

σδ

Expressão 60 – Cálculo das derivadas parciais do erro para as unidades de saída

A actualização dos pesos associados àquelas unidades pode agora ser feita. A

Expressão 61 mostra os cálculos para a actualização dos pesos associados à unidade

σ11. Cálculos semelhantes permitem a actualização dos pesos associados às restantes

unidades de saída.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

138

193.0

206.0

087.079.010.05.005.0

188.0110.05.014.0

101110.1110.11

9119.119.11

8118.118.118.118.11

0110.110.110.110.11

=+←

=+←

=××+=+=∆+←

=××+=+=∆+←

σηδ

σηδ

σηδ

σηδ

ww

ww

wwww

wwww

Expressão 61 – Actualização dos pesos associados à unidade de saída σσσσ11

É ainda de salientar que o cálculo das derivadas parciais é mais simples para as

unidades de saída do que para as unidades intermédias, uma vez que o valor esperado

das primeiras é conhecido, permitindo a determinação do erro imediatamente. Para a

determinação das derivadas parciais para as unidades intermédias é necessário

propagar o erro conhecido à saída para aquelas unidades, como se ilustra na Expressão

62.

0180

0

020

10101313101212101111

10

10

9913139121291111

9

9

88131381212811118

13

11

8

8

13

11 8

8

13

11 88

8

88

8

.)net('f)www(net

E

)net('f)www(net

E

.

)net('f)www()net('fw

)net('fnet

net

E)net('f

E

net

E

net

E

...

...

...k

kk

k

k

kk

−=××δ+×δ+×δ=∂

∂−=δ

=××δ+×δ+×δ=∂

∂−=δ

−=

××δ+×δ+×δ=×

×δ−−=

×

σ∂

∂−=×

σ∂

∂−=

σ∂

σ∂

∂−=

∂−=δ

∑∑

=

==

Expressão 62 – Cálculo das derivadas parciais do erro para as unidades

intermédias

Depois de calculados os valores das derivadas parciais do erro, é então possível

efectuar a actualização dos restantes pesos. Note, no entanto, que os pesos wji

relacionados com as unidades de entrada σi cujo valor é zero não sofrem actualização.

Tabela 18 – Valores dos pesos da rede após o treino w80 w81 w82 w83 w84 w85 w86 w87

0.07 -0.26 0.31 -0.57 -1.29 1.88 1.07 -0.68 w90 w91 w92 w93 w94 w95 w96 w97

-0.20 -0.84 1.16 2.23 -0.34 -1.74 2.58 -2.25 w90 w91 w92 w93 w94 w95 w96 w97

-0.56 -0.35 -0.22 -0.80 -1.27 1.98 -0.68 0.39 w11.0 w11.8 w11.9 w11.10

-1.55 -0.38 4.26 -1.79 w12.0 w12.8 w12.9 w12.10

-1.31 1.19 -3.47 2.26 w13.0 w13.8 w13.9 w13.10

1.32 -2.31 -1.86 -0.96

Page 78: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

139

No fim do processamento da primeira instância do conjunto de treino, as alterações da

rede são mínimas, o mesmo acontecendo no fim da primeira época. No entanto, ao fim

de 25 épocas a rede já classifica correctamente as instâncias de treino afectas à classe

Alto, ao fim de 50 épocas as instâncias afectas às classes Alto e Moderado, e finalmente,

após 75 épocas classifica correctamente todas as instâncias do conjunto de treino. A

rede resultante deste treino tem como pesos os valores apresentados na Tabela 18.♦

Máquinas de vectores de suporte

Os métodos mais recentes e prometedores de classificação de instâncias são as

máquinas de vectores de suporte (do inglês support vector machines). Estas foram

propostas pela primeira vez em 1995 por Vapnik [Vapnik 1995], baseando-as na sua

Teoria da Aprendizagem [Vapnik 1971] definida em parceria com Chervonenkis alguns

anos antes.

Apesar de ser possível aplicar esta abordagem para classificar instâncias num número

variado de classes, neste texto apenas se considera o problema da classificação

binária (o problema que considera apenas duas classes, que serão designadas por

classe dos positivos e classe dos negativos).

Tal como nas redes neuronais, as instâncias são mapeadas para valores numéricos.

Concretamente, cada instância x pertencente ao conjunto de treino D, caracterizada por

n atributos, é traduzida para um ponto em Rn.

A ideia central dos classificadores por máquinas de vectores de suporte é assumir que

as classes são linearmente separáveis nalgum espaço, possivelmente de dimensão

maior do que a dimensão do espaço de instâncias. Assim, o problema da classificação

fica reduzido ao problema da classificação linear, ou seja, da identificação do hiperplano

que separa as instâncias das duas classes. Apesar deste problema ser complexo,

depois de identificado, o hiperplano pode ser descrito por um número reduzido de pontos

(instâncias do conjunto de treino) – designados vectores de suporte, não sendo criado

nenhum modelo propriamente dito (como é feito com as árvores de decisão e com as

redes neuronais).

De forma resumida, a classificação por máquinas de vectores de suporte consiste em

identificar os vectores de suporte do hiperplano de separação das instâncias existentes

no conjunto de treino, e em seguida usá-los para classificar novas instâncias. Quando as

instâncias não sejam linearmente separáveis no seu espaço, estas são mapeadas do

espaço de instâncias X para um outro espaço, designado espaço de características

F (do inglês feature space).

O que torna a classificação por máquinas de vectores de suporte tão promissora é sem

dúvida alguma, o facto de ser suportada por uma teoria matemática forte, aliada à sua

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

140

eficiência computacional. Na verdade, é a teoria que os suporta que garante a fraca

tendência deste método para a sobre-aprendizagem (overfitting), ou seja, que garante a

sua boa capacidade de generalização. Nesta medida, as máquinas de vectores de

suporte apresentam melhores expectativas do que as redes neuronais.

A principal desvantagem desta abordagem é a fraca interpretabilidade dos modelos, uma

vez que o manuseamento de espaços de dimensão elevada é de bastante difícil

interpretação.

Determinação do hiperplano óptimo de separação

O fundamental da utilização das máquinas de vectores de suporte é pois a determinação

do melhor hiperplano de separação das instâncias existentes no conjunto de treino. Mas

como decidir qual é o melhor hiperplano?

Considere o conjunto de instâncias, depois de transformadas para R2 e classificadas de

acordo com a Figura 47. Uma simples análise da figura permite assumir que as

instâncias são linearmente separáveis no espaço de instâncias (R2), e que naturalmente

o hiperplano de separação das duas classes se traduz numa recta.

Eixo XX

0 1 2 3 4 5 6

Eix

o Y

Y

0

1

2

3

4

5

6

7

8

Figura 47 – Exemplo de conjunto de instâncias em RRRR2

Genericamente, o hiperplano de separação é descrito pela Expressão 63 (equação

reduzida do hiperplano), com RR ∈∈ b,w,x nrr, n o número de atributos que caracterizam

as instâncias, ou seja o número de coordenadas dos vectores, e • o produto interno

entre vectores.

b)xw(bxw)x(fn

iii +=+•= ∑

=1

rrr

Expressão 63 – Equação do hiperplano de separação

Conhecidos o vector w e o valor b, o espaço de instâncias é dividido em dois semi-

espaços: o conjunto de pontos “a cima” da recta que define o hiperplano, ou seja,

}0:{ >+•∈ bxwXxrrr

– a classe dos positivos; e o conjunto de pontos “a baixo” da

Page 79: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

141

recta, ou seja, }0:{ <+•∈ bxwXxrrr

– a classe dos negativos. No entanto existem

várias rectas, ou seja diferentes pares ),( bwr

, que separam correctamente todas

instâncias, e aparentemente nenhuma delas é melhor do que as restantes Figura 48.

Figura 48 – Hiperplanos de separação para o conjunto de treino da Figura 47

Como se viu anteriormente, dos modelos com igual precisão, o melhor é o modelo mais

pequeno de modo a ter maior capacidade de generalização (Occam’s razor). Assim, o

que se procura é o hiperplano com maior precisão e capacidade de generalização,

usualmente designado por hiperplano de separação óptimo.

Ora de acordo com a teoria da aprendizagem, neste caso, o hiperplano óptimo

corresponde ao hiperplano de margem máxima, ou seja, o hiperplano que é

equidistante das instâncias de ambas as classes.

wr2=γ

Expressão 64 – Valor da margem do hiperplano 0=+• bxwrr

O termo margem diz respeito à menor das distâncias entre cada um dos pontos do

conjunto de treino e o hiperplano de separação, e o seu valor é dado pela Expressão 64

(γ na Figura 49).

Figura 49 – Exemplo da margem γγγγ de um classificador linear

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

142

Assim, para determinar o classificador óptimo é necessário escolher o par ),( bwr

que

satisfaça as restrições descritas na Expressão 65 para todas as instâncias do conjunto

de treino D e que minimizem a norma do vector w ( wr

) de forma a maximizar a margem.

Dxbxwyybxw

ybxwiii

ii

ii∈∀≥−+•⇔

−=−≤+•

+=+≥+•,01)(

1,1

1,1 rrrr

rr

Expressão 65 – Restrições lineares de um problema de optimização

O problema enunciado não é mais do que um problema de optimização com restrições,

em particular um problema de optimização de programação quadrática (quadratic

programming optimization problem) cuja solução tem sido amplamente estudada. De

entre as soluções propostas, a que se apresenta relevante para a determinação dos

vectores de suporte, é a que resulta na reformulação do problema na forma dual

(Expressão 66), e que expressa a importância de cada instância do conjunto de treino

para a determinação do hiperplano de margem máxima.

∑ ∑∑

=

= = =

=≥∈∀

•−

m

iiii

m

iji

m

i

m

jjijii

yemiasujeito

xxyy

0

1 1 1

00:},...,1{

21

αα

αααrr

Expressão 66 – Formulação dual do problema de optimização

Na nova formulação, a determinação do hiperplano de margem máxima passa pela

maximização da Expressão 66. E o hiperplano de separação óptimo é dado pela

Expressão 67.

•+•−=

=

−=+=

=∑

)max(min2

11:1:

1

iyiiyi

i

m

iii

xwxwb

xyw

ii

rrrr

rrα

Expressão 67 – Equação do hiperplano de separação óptimo

Como foi referido, a utilização da forma dual permite determinar a relevância das

instâncias do conjunto de treino na definição do hiperplano de margem máxima. Esta

relevância é dada pelos valores αi que serão diferentes de zero apenas para os pontos

que são relevantes para a determinação do hiperplano de margem máxima, ou seja,

para os vectores de suporte.

∑=

+•=k

iiii bzxyxf

1

sgn()(rrr

α

Expressão 68 – Função de decisão

Page 80: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

143

É por esta razão, que a classificação de novas instâncias pode ser feita recorrendo

apenas àqueles vectores, ignorando os restantes elementos de treino e não sendo

usado nenhum modelo. O classificador por máquinas de vectores de suporte é

simplesmente dado pela Expressão 68 (em que os izr

correspondem a cada um dos k

vectores de suporte).

Eixo XX

0 1 2 3 4 5 6 7

Eix

o Y

Y

0

1

2

3

4

5

6

7

8

Figura 50 – Hiperplano de margem máxima e vectores de suporte

A Figura 50 ilustra o hiperplano de margem máxima e respectivos vectores de suporte

para o exemplo apresentado acima. Note que os vectores de suporte correspondem às

instâncias cuja distância ao hiperplano de separação é igual à margem (γ).

Exemplo

De modo a ilustrar a utilização de máquinas de vectores de suporte em problemas de

classificação binária, considere o conjunto de treino até agora usado. No entanto o

conjunto será simplificado de modo a que existam apenas instâncias classificadas como

sendo de Alto ou Baixo risco, ou seja, de modo a presenciar um problema de

classificação binária, como se ilustra na Tabela 19.

Tabela 19 – Conjunto de treino simplificado para o nível de risco de acidente Sexo F. Etária Cor Risco

X1 0 1 1 1 X2 1 1 1 1 X3 0 1 0 0 X4 1 1 0 0 X5 1 1 0 0 X9 1 0 1 1 X10 0 0 0 0 X11 1 1 1 1 X12 1 0 0 1

A Figura 51 ilustra a distribuição das instâncias de treino em R3, de modo a que verifique

visualmente que aquelas instâncias são linearmente separáveis naquele espaço. Note

que qualquer plano em R3 que atravesse o plano Sexo o Faixa Etária (plano XoY) para

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

144

além da recta que passa pelos pontos (0;0) e (1;1) desse mesmo plano, e atravesse o

plano Faixa Etária o Cor (plano YoZ) abaixo do ponto (1;1) nesse plano, separa

linearmente as instâncias positivas das negativas.

0.0

0.2

0.4

0.6

0.8

1.0

0.0

0.2

0.4

0.6

0.81.0

0.00.2

0.40.6

0.81.0

Cor

Sex

o

Faixa Etária

Figura 51 – Instâncias de treino para o problema da determinação do risco de

acidente representadas em RRRR3

Com esta verificação, resta portanto determinar qual destes planos é o plano de margem

máxima. Para este efeito, é suficiente resolver o problema de optimização definido pelas

restrições impostas na Expressão 69,

≥−+

≥−+++

≥−−

≥−++

≥−++−

≥−++−

≥−+−

≥−+++

≥−++

∈∀≥−+×+×+××

01)(

01)(

01

01)(

01)(

01)(

01)(

01)(

01)(

01)...(.

1

321

31

21

21

2

321

32

321

bw

bwww

b

bww

bww

bww

bw

bwww

bww

DxbCorxwFaixaxwsexoxwRiscox iiiii

rrrr

Expressão 69 – Restrições lineares para determinação do hiperplano de separação

para o problema da determinação do risco de acidente

ou usando a formulação dual, maximizar a Expressão 66 instanciada para o problema

em análise.

Para além da resolução matemática (fora do âmbito deste texto), é fácil perceber que o

hiperplano de margem máxima é o que passa pelos pontos (0.5;0;0), (1;0.5;0) e (0;1;0.5)

ilustrado na Figura 52.

Page 81: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

145

0.0

0.2

0.4

0.6

0.8

1.0

0.0

0.2

0.4

0.6

0.81.0

0.00.2

0.40.6

0.81.0

Cor

Sex

o

Faixa Etária

Figura 52 – Hiperplano de margem máxima para o problema da determinação do

risco de acidente

Repare que neste problema todos os pontos do conjunto de treino são determinantes

para a escolha do plano, e consequentemente todos eles são vectores de suporte.♦

Mapeamento para o espaço de características

Dado que as máquinas de vectores de suporte assumem a separação linear das

instâncias do conjunto de treino, é necessário garantir que isto acontece.

Evidentemente que assumir que as instâncias são linearmente separáveis no seu

espaço é demasiado restritivo, e portanto é necessário mapear as instâncias para um

outro espaço (de dimensão maior) em que as suas imagens sejam linearmente

separáveis. Tais funções designam-se funções características (feature functions) –

Expressão 70.

( ))(),...,(),()(),...,,(

)(:

2121 xxxxxxxx

NncomRR

Nn

Nn

rrrra

rφφφφ

φ

==

≤→

Expressão 70 – Funções características

Para mostrar a simplicidade de tais transformações, considere o conjunto de instâncias

representado na Figura 53 (à esquerda), em que as instâncias positivas correspondem

aos pontos pertencentes a uma elipse.

Uma análise rápida da figura à esquerda torna evidente que uma recta (classificador

linear em R2) é incapaz de isolar as instâncias no seu espaço original, mas que o

mapeamento do conjunto por φ para R3 passa a sê-lo.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

146

Eixo XX

-0.6 -0.4 -0.2 0.0 0.2 0.4 0.6

Eix

o Y

Y

-0.6

-0.4

-0.2

0.0

0.2

0.4

0.6

-0.4-0.3-0.2-0.10.00.10.20.30.4

0.000.05

0.100.15

0.200.25

0.30

0.00

0.05

0.10

0.15

0.20

0.25

0.30

Eixo ZZ

Eixo XX

Eixo

YY

Figura 53 – Conjunto de dados em RRRR2 (à esquerda) e mapeamento para RRRR3 por

aplicação da função φφφφ, com ( )2

221

2

1 ,2,)( xxxxx =r

φ (à direita)

Genericamente, quando o conjunto de treino não é linearmente separável no espaço de

instâncias, o hiperplano de separação no novo espaço é dado pela Expressão 71.

bxwbxwN

iii +=+• ∑

=1

)()(rrr

φφ

Expressão 71 – Equação do hiperplano de separação no espaço de características

de dimensão N

e o classificador pela Expressão 72.

))()(sgn()(1

∑=

+•=k

iiii bzxyxfrrr

φφα

Expressão 72 – Função de decisão no espaço de características

Ora, pela equação do classificador percebe-se que não é necessário conhecer a função

φ, mas apenas o produto interno entre o mapeamento de dois pontos do espaço de

instâncias. Um kernel é uma função K, tal que para quaisquer x, y∈Rn (com n a

dimensionalidade do espaço das instâncias) e alguma função característica φ se verifica

a Expressão 73.

)()(),(

:2

yxyxK

RXKrrrr

φφ •=

Expressão 73 – Função kernel

Desde que conhecido, com a substituição pelo kernel deixa de ser necessário mapear as

instâncias do espaço de instâncias para o espaço de características, e a classificação é

feita recorrendo apenas ao cálculo do produto interno da instância a classificar com cada

Page 82: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

147

um dos vectores de suporte, de acordo com a Expressão 74.

)),(sgn()(1

∑=

+=k

iiii bzxKyxfrrr

α

Expressão 74 – Função de decisão usando kernels

Note que as restrições para a determinação do hiperplano de margem máxima passam a

ser as especificadas na Expressão 75.

DxbxwKyybxwK

ybxwKiii

ii

ii ∈∀≥−+⇔

−=−≤+

+=+≥+,01)),((

1,1),(

1,1),( rrrr

rr

Expressão 75 – Restrições para a determinação do hiperplano de margem máxima

usando funções de kernel

Entre as funções de kernel mais usadas, e que têm sido disponibilizadas pela maioria

dos pacotes de máquinas de vectores de suporte estão os kernels polinomiais e os de

base radial (Expressão 76).

22),()(

)(),(

σ

yx

d

eyxKRBFradial

cyxyxKdgraudepolinomialrr

rr

rrrr

−−

=→

+•=→

Expressão 76 – Kernels mais usados

Os kernels polinomiais traduzem apenas funções polinomiais no espaço de instâncias,

em que d é o grau do polinómio e c uma constante que traduz um factor de

deslocamento da origem.

O kernel RBF transforma a função de decisão do classificador num somatório de

gaussianas centradas nos vários vectores de suporte, com σ o desvio padrão das

gaussianas. Assim, quanto menor for o valor de σ, mais complexa é a fronteira entre as

duas classes (uma vez que um σ pequeno implica gaussianas mais estreitas).

Exemplo

De modo a exemplificar a utilização de máquinas de vectores de suporte quando as

instâncias não são linearmente separáveis no seu espaço, considere os pontos da

Figura 54.

Note que as instâncias ali representadas por quadrados azuis pertencem a uma

hipérbole, e que consequentemente serão separáveis usando um kernel polinomial de

grau 2 (veja a Figura 55).

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

148

Eixo XX

-6 -4 -2 0 2 4 6

Eix

o Y

Y

-6

-4

-2

0

2

4

6

Figura 54 – Conjunto de dados em RRRR2 não separáveis linearmente

Como a hipérbole é centrada na origem, o parâmetro c da fórmula do kernel polinomial

(Expressão 76) é igual a 0.

-30

-20

-10

0

10

20

30

02

46

810

1214

1618

02

46

810

1214

16

Eix

o Z

Z

Eixo XX

Eixo YY

Figura 55 – Conjunto de dados ilustrados na Figura 54 mapeados para RRRR3 por

aplicação da função φφφφ, com ( )2

221

2

1 ,2,)( xxxxx −=r

φ

Com esta verificação, resta portanto solucionar o problema de optimização definido

pelas restrições impostas na Expressão 77,

Dxbyuwyuxwuwxuwclasseu

Dxbyuwxuwclasseu

Dubuwclasseu

DubuwKclasseu

iiiiii

iiii

iii

iii

∈∀≥−+++×⇔

∈∀≥−++×⇔

∈∀≥−+×⇔

∈∀≥−+×

01)...2.(.

01))..((.

01),(.

01)),((.

22

221

22

1

2

21

2

rrrrr

rrr

rrrr

rrrr

Expressão 77 – Restrições para determinação do hiperplano de separação pontos

de uma hipérbole definida em R2

Page 83: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

149

Redes de Bayes

Apesar da eficiência das máquinas de vectores de suporte ou a simplicidade das árvores

de decisão, nenhuma das abordagens de classificação tradicionais até agora

apresentadas possibilitam a fácil incorporação de conhecimento já existente na

aprendizagem dos classificadores.

As Redes de Bayes são uma excepção a este cenário, ao permitir representar o

conhecimento existente sobre a forma de um grafo dirigido e acíclico, em que as

variáveis do problema (mais concretamente, os atributos dos dados registados) são

representadas pelos nós do grafo, e as relações causais entre as diferentes variáveis

denotadas por arcos. Note que apenas existem arcos entre variáveis que não são

independentes, ou seja, só existe um arco da variável X para a variável Y, se a segunda

depende da primeira. Neste caso, diz-se que a variável Y é descendente da variável X,

ou que X é pai de Y. O conjunto de progenitores da variável X é designada por

Parents(X).

É ainda importante salientar que os nós da rede podem dizer respeito quer a atributos do

problema (variáveis observadas e registadas no conjunto de dados) quer a variáveis

escondidas, que apesar de relevantes para a análise dos dados, não foram registadas,

tipicamente por não serem observáveis. Finalmente, qualquer nó da rede pode ser

escolhido como atributo classe. A Figura 56 ilustra uma possível rede para o problema

da determinação do nível de risco de acidente.

Sexo F.Etária

Cor

Risco

1 1

0

0.5 0.5

0 00.5 0.5

1

0.5

0.5

MAFA MIFI MJFJ

Vermelho

Outra

1/3 2/5

0

0 0

1/51 1

MVFV MOFO

Alto

Moderado

2/3 2/50 0Baixo

0.5

0.25Jovem

Adulto

0.25Idoso

0.(6)

Feminino

Masculino

0.(3)

Figura 56 – Exemplo de uma rede de Bayes

Para além do grafo, a rede de Bayes é composta por um conjunto de tabelas, cada uma

delas associada a um dos nós do grafo. Cada uma destas tabelas contém as

probabilidades condicionadas P(X | Zi) da variável em causa (X) face às combinações

possíveis dos valores de cada um dos seus progenitores (com Zi∈Parents(X)). Por outro

lado, considera-se que cada variável é condicionalmente independente das variáveis

com que não está relacionada (não partilham um arco), dados os seus pais. Deste

modo, uma rede de Bayes define a função de distribuição de probabilidades conjunta

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

150

para as variáveis do problema.

Lembre-se que duas variáveis X e Y são independentes se satisfazem a igualdade

expressa na Expressão 78,

)()|()()()( XPYXPouYPXPYXP =×=∩

Expressão 78 – Independência entre variáveis

e diz-se que X é condicionalmente independente de Y, dado Z, se a probabilidade de X

assumir um valor, é independente do valor de Y, dado um valor para Z (Expressão 79).

),...,|,...,,(),...,,,...,|,...,,(

)|(),|(

1211121 nknmk ZZXXXPZZYYXXXP

ZXPZYXP

=

=

Expressão 79 – Independência condicionada entre variáveis e conjuntos de

variáveis

A partir de uma rede de Bayes, e pela independência condicionada entre variáveis,

torna-se possível determinar a probabilidade de uma dada instância pertencer a uma

classe, uma vez que a rede modela e quantifica todas as dependências entre os seus

atributos.

Seja a instância do problema A=(x1, x2, ..., xn) caracterizada pelos atributos X1, X2, ..., Xn,

a probabilidade da instância A ocorrer é dada pela Expressão 80, que não traduz mais

do que a função de distribuição de probabilidade conjunta do domínio.

∏=

=n

iiin XParentsxPxxxP

1

21 ))(|(),...,,(

Expressão 80 – Distribuição conjunta para as variáveis do problema

Sempre que a rede apenas modela variáveis observáveis, a classificação de uma

instância é imediata, e feita exclusivamente a partir da consulta da tabela de

probabilidades condicionadas para o atributo classe – esta probabilidade é a

referenciada por P(C | X1,...,Xn). No entanto, quando existem também variáveis não

observáveis, é necessário efectuar alguns cálculos para estabelecer a mesma

probabilidade, uma vez que não são conhecidos os valores de todas as variáveis Xi.

(Mais à frente ilustrar-se-ão esses cálculos).

A classificação de uma instância a partir de uma rede de Bayes é trivial, e feita de

acordo com a Expressão 17, ou seja, escolhendo a classe que maximiza a probabilidade

da instância dada cada uma das classes. Quando todas as variáveis pais da variável

classe são conhecidas, não é necessário efectuar quaisquer cálculos, bastando

consultar a tabela de probabilidades condicionadas da variável classe.

Page 84: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

151

Treino de redes de Bayes

Sempre que existe conhecimento suficiente sobre o problema em análise, a estrutura da

rede é definida previamente12, sendo apenas necessário determinar as tabelas de

probabilidades condicionadas para cada uma das variáveis da rede.

Quando a estrutura da rede é conhecida, podem ocorrer duas situações: todas as

variáveis da rede são observáveis ou existem variáveis não observáveis.

Na primeira situação, a determinação das tabelas de probabilidades condicionadas é

feita a partir dos dados conhecidos, ou seja, a partir dos dados existentes no conjunto de

treino, tal como acontece para a determinação do classificador de naïve Bayes. Em

concreto, as tabelas de probabilidades condicionadas são definidas de acordo com a

hipótese de máxima verosimilhança.

Algoritmo do gradiente ascendente

A inferência das referidas tabelas na presença de variáveis não observáveis não é

imediata, mas pode ser realizada de modo eficiente. Note que estas variáveis se

assemelham às unidades escondidas das redes neuronais, e por conseguinte o seu

treino pode ser feito de forma semelhante. Um método simples para o treino das redes

de Bayes é o método do gradiente ascendente [Russel 1995], que está na base do

algoritmo backpropagation (Algoritmo 11). Em concreto, é necessário aprender o valor

das entradas de cada tabela de probabilidades condicionadas, em vez dos pesos das

ligações de uma rede neuronal.

Seja wijk a probabilidade condicionada de que a variável Xi assume o valor xij quando os

seus progenitores directos Pai assumem o valor designado por paik. (Deste modo, wijk é a

entrada jk da tabela de probabilidades condicionadas para a variável Xi.) O método do

gradiente ascendente tenta maximizar P(D|h), ou seja, a função de probabilidade do

conjunto de treino D, dada a hipótese h, isto é, dada a rede de Bayes, mais

concretamente as suas tabelas de probabilidades condicionadas.

Para tornar os cálculos mais eficientes, em vez de maximizar aquela probabilidade,

Russel et al. propõem que se maximize o seu logaritmo natural (ln). (Ao usar logaritmos,

reduz-se um produto a uma soma, o que é mais rápido de calcular.) Como o gradiente

de P(D|h) é dado pelas suas derivadas parciais em ordem às entradas wijk, o objectivo é

12 A definição da estrutura de uma rede de Bayes para um problema real não é difícil, uma vez que existe

conhecimento do domínio de negócio e especialistas capazes de identificar as implicações das variáveis do

problema. Tipicamente, as dificuldades surgem na quantificação dessas implicações, tornando assim os

métodos de inferência das tabelas de probabilidades condicionadas um aspecto importante.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

152

maximizar a Expressão 81.

∑∈

===

∂∂ n

Dz ijk

ikiiji

ijk w

)z|paPa,xX(P

w

)h|D(Pln

Expressão 81 – Cálculo do gradiente

Repare que a probabilidade designada à direita na Expressão 81 é trivial de calcular na

presença de variáveis observáveis, sendo 0 ou 1, dependendo do exemplo de treino (z)

em análise. Na prática, resume-se ao cálculo do estimador de máxima verosimilhança

(Maximum Likelihood Estimate), dado pela Expressão 82, em que N(∆) traduz o número

de exemplos de treino que satisfazem ∆. No caso em que existem variáveis não

observáveis, o cálculo daquela probabilidade não é imediato mas possível recorrendo ao

valor esperado do número de exemplos de treino (designado por E[N(∆)] neste capítulo).

∑∈

=====

n

Dz

ikiijiikiiji D

)paPa,xX(N)z|paPa,xX(P

Expressão 82 – Estimador de máxima verosimilhança para cada entrada da tabela

de probabilidades condicionadas

GradientGradientGradientGradientAAAAscentscentscentscent(Dataset D, BayesNetwork B, [0,1] η)

// η traduz o rácio de aprendizagem

for eachfor eachfor eachfor each wijk∈B do do do do

wijk �random(0;1)

whilewhilewhilewhile ¬ satisfiesTerminatingCondition() dodododo

for each for each for each for each Xi∈B do do do do

ffffor eachor eachor eachor each xij∈Dom(Xi)

for eachfor eachfor eachfor each paik∈∏kPai dodododo

// Calcular cada uma das derivadas parciais

∑∈

===

∂∂ n

Dz ijk

ikiiji

ijk w

zpaPaxXP

w

hDP )|,()|(ln

// Actualizar as entradas das tabelas de probabilidades condicionadas

ffffor eachor eachor eachor each wijk ∈B dodododo

ijkijkijk w

hDPww

∂+←

)|(lnη

// Renormalização dos pesos

for each for each for each for each Xi∈B do do do do

for eachfor eachfor eachfor each paik∈∏kPai dodododo

∑∈

)( iij XDomxijk

ijkijk w

ww

returnreturnreturnreturn B

Algoritmo 12 – Pseudocódigo do algoritmo do gradiente ascendente

Page 85: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

153

Após a determinação do gradiente da probabilidade dos dados conhecidos terem sido

gerados pela rede em análise, actualizam-se as entradas das tabelas de probabilidades

condicionadas wijk. Esta actualização é semelhante à actualização dos pesos das redes

neuronais, e é conseguida somando a derivada parcial em ordem a wijk ao seu valor

actual pesada pelo rácio de aprendizagem (η no Algoritmo 12).

Depois de efectuar a actualização dos valores de wijk, é necessário renormalizar os seus

valores de modo a satisfazer as propriedades das funções de probabilidade. Em primeiro

lugar, que o valor de wijk pertença ao intervalo [0.0; 1.0]. Em segundo lugar, que a soma

das probabilidades de uma variável assumir cada um dos valores possíveis num dado

contexto é igual a 1, ou seja, que a Expressão 83 é satisfeita para todas as variáveis.

1)(

=∑∈ iij XDomx

ijkw

Expressão 83 – Propriedade das funções de probabilidade

Algoritmo EM

Na presença de variáveis não observáveis, uma alternativa mais eficiente é a aplicação

do algoritmo EM [Dempster 1997] (apresentado no capítulo anterior, aplicado à

segmentação de instâncias). À semelhança do algoritmo do gradiente ascendente, o

algoritmo EM funciona iterativamente, aproximando-se mais da solução, em cada passo.

O algoritmo baseia-se na constatação de que sempre que todas as variáveis do

problema são observáveis, a determinação da hipótese de máxima verosimilhança é

trivial. Deste modo, no caso em que a estrutura da rede de Bayes é conhecida, o

primeiro passo do algoritmo é estimar os valores das probabilidades condicionadas de

todas as variáveis do problema, incluindo os das variáveis não-observáveis (passo E -

expectation), e no segundo passo, usar essas estimativas para determinar a hipótese

mais provável (passo M – maximization).

Em concreto, a estimativa das probabilidades condicionadas é feita recorrendo ao valor

esperado do número de exemplos cobertos pela condição, ou seja, pelo cálculo da

Expressão 84 (seguindo a mesma notação que anteriormente).

[ ][ ])(

),()|(

iki

ikiiji

ikiiji paPaNE

paPaxXNEpaPaxXP

=

=====

Expressão 84 – Estimativa da probabilidade condicionada

Repare que o número esperado de instâncias cobertas pela condição Xi=xij (E[N(Xi)]) é

dado pela Expressão 85, em que novamente, a probabilidade designada à direita é 0 ou

1, dependendo se o exemplo de treino em análise (z) tem xij como valor para o atributo

Xi.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

154

[ ] ∑∈

===n

Dzijiiji zxXPxXNE )|()(

Expressão 85 – Cálculo do número esperado de instâncias

Com a estimativa daqueles valores, a maximização é feita automaticamente, uma vez

que são usados estimadores de máxima verosimilhança. Deste modo, em cada passo do

algoritmo apenas é necessário determinar o valor da Expressão 84 para cada uma das

entradas das tabelas de probabilidades condicionadas desconhecidas, e usar os valores

estimados na iteração seguinte, como se ilustra no Algoritmo 13.

EM4BayesNetworksEM4BayesNetworksEM4BayesNetworksEM4BayesNetworks(Dataset D, BayesNetwork B)

for eachfor eachfor eachfor each unknown wijk∈B do do do do

wijk �random(0;1)

whilewhilewhilewhile ¬ satisfiesTerminatingCondition() dodododo

for each for each for each for each Xi∈B do do do do

for eachfor eachfor eachfor each xij∈Dom(Xi)

for eachfor eachfor eachfor each paik∈∏kPai dodododo

// Calcular cada uma das probabilidades condicionadas,

// usando o valor esperado do número de instâncias

[ ]

[ ])(

),()|(

iki

ikiijiikiijiijk paPaNE

paPaxXNEpaPaxXPw

=

=====←

returnreturnreturnreturn B

Algoritmo 13 – Pseudocódigo do algoritmo EM para treino de Redes de Bayes

Repare que muitos dos cálculos necessários no algoritmo EM, são também efectuados

no algoritmo do gradiente ascendente. O que o torna mais eficiente é simultaneamente a

inexistência do rácio de aprendizagem, que lhe permite fazer aproximações mais

rápidas, e a garantia automática de que os valores calculados satisfazem as

propriedades das funções de probabilidade.

Quando a estrutura da rede não é conhecida, o problema torna-se mais complexo, uma

vez que é necessário testar todas as combinações de variáveis, para determinar as

dependências entre elas. Dada a complexidade do problema, o seu estudo está fora do

âmbito deste texto.

Exemplo

Considere novamente o problema de classificar o nível de risco de cada condutor

provocar um acidente, e a rede apresentada na Figura 56 como um modelo para o

problema.

A partir do conjunto de treino utilizado até agora (Tabela 10), a determinação dos valores

das probabilidades condicionadas é trivial. Por exemplo, P(Vermelho|Feminino,Adulto) é

Page 86: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

155

igual a 0.5, uma vez que existem duas instâncias com as características Feminino e

Adulto, uma possuindo carro de cor Vermelho e outra instância de outra cor. A

determinação das entradas da tabela referente à variável Risco é semelhante, e feita com

base na análise das características Sexo e Cor.

Uma vez mais, suponha que se pretende determinar o nível do risco de um condutor do

sexo feminino, jovem e com um carro vermelho, provocar um acidente. De acordo com a

rede de Bayes inferida (Figura 56), a instância (feminino, jovem, vermelho) é classificada

como sendo de Alto risco, uma vez que

P(Feminino,Jovem,Vermelho|Alto)= P(Sexo=Feminino,Cor=Vermelho|Alto)=1,

de acordo com os valores da tabela de probabilidades condicionadas para a variável

Risco.

De modo a ilustrar a inferência das tabelas de probabilidades condicionadas na

presença de variáveis não observáveis, considere o conjunto de treino até agora usado,

mas simplificado como descrito na secção sobre Máquinas de vectores de suporte e

representado na Tabela 19 (a simplificação justifica-se unicamente pela diminuição do

número de cálculos a efectuar).

Adicionalmente, considere a rede representada na Figura 57.

Sexo F.Etária

Alcool

Risco

0100 1110

Negativo=0

Positivo=1

Alto=1

Baixo=0

Cor

0.(6)

Feminino=0

Masculino=1

0.(3)

0.(6)

Jovem=0

Adulto=1

0.(3)

0100 1110

Figura 57 – Rede de Bayes com variáveis não observáveis

Neste modelo, para além das quatro variáveis observáveis (Cor, Sexo, Faixa Etária e

Risco) existe uma quinta variável (Alcool) referente à presença de álcool no sangue,

variável esta não observável por não estar registada nos dados do conjunto de treino. No

modelo, esta nova variável é dependente das variáveis Sexo e Faixa Etária, e a variável

referente ao nível do risco depende apenas da nova variável e da variável Cor.

Como se percebe pela rede apresentada, tanto a tabela relacionada com a variável não-

observável como a tabela da variável risco não são conhecidas por simples inspecção

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

156

do conjunto de treino.

De modo a determinar os valores das probabilidades referidas será usado o algoritmo

EM. Assim, o primeiro passo é atribuir valores (aleatórios ou determinados pelo

conhecimento de domínio) a cada uma das entradas das tabelas desconhecidas.

A Tabela 20 apresenta os valores atribuídos inicialmente. Repare que apenas são

necessários valores para as probabilidades de o teste do Alcool ser Positivo (Risco ser

Alto), sendo a probabilidade de o teste ser negativo dada por 1-

P(Alcool=Positivo|Sexoi,Faixa).

Tabela 20 – Probabilidades condicionadas iniciais para as variáveis Alcool (à

esquerda) e Risco (à direita)

Alcool

SF 0 0

S F 0 1

SF 1 0

S F 1 1

Positivo=1 0.1 0.5 0.5 0.6

Risco

TC 0 0

T C 0 1

TC 1 0

T C 1 1

Alto=1 0.1 0.3 0.7 0.9

Partindo destes valores e do conjunto de treino, com o algoritmo EM consegue-se

determinar cada uma das probabilidades. Na Expressão 86, apresentam-se os cálculos

necessários para determinar a probabilidade de a variável Alcool ser Positivo quando o

Sexo é Masculino e a Faixa Etária corresponde a Adulto, denotado por P(A|SF).

[ ][ ]

[ ]

[ ]

303.2

)|()|()|()|(

)|()|(2

)|()|()|()|(

)|()|(2

)|()|(

)|()|(

),,,(

)(),()(),|(),|(

),,,(

),,,,(

),,,|(),,(

576.04

303.2

),(

),,(

),(

),,()|(

9

11

0

9

1

9

1

1

=

++

+=

=

=

=

=

====

∑∑

=

=

=

=

=

SFAPCARPSFAPCARP

SFAPCARP

SFAPCARPSFAPACRP

SFAPACRP

TotaisesobabilidadPrdasLeipela

FSAPCARP

FSAPACRP

iáveisvarentreciaindependênaFSCRP

FPSPCPFSAPCARP

BayesdeTeoremapeloFSCRP

FSCARP

FSCRAPFSANE

FSN

FSANE

FSNE

FSANESFAP

j

ijj

ij

ij

jjjj

j jjjj

jjjjjjj

j jjjj

jjjj

N

jjjjj

Expressão 86 – Cálculo de P(A|SF)

Várias notas antes de prosseguir com o exemplo. Em primeiro lugar, o valor de N(S,F) é

conhecido, existindo 4 instâncias de treino com carro de cor Vermelho e risco Alto, o que

implica que dos exemplos de treino apenas os quatro serão considerados na

determinação desta probabilidade. Em segundo lugar, N corresponde ao número de

Page 87: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

157

instâncias de treino (N=9), Xj designa o valor que a variável X assume na instância j, e Xi

denota o iésimo valor possível para a variável X. Em terceiro lugar, todas as variáveis são

usadas na determinação da probabilidade apesar de não serem parentes das variáveis

Alcool e/ou Risco. Finalmente é de notar que apenas existem exemplos de treino que

satisfazem uma das duas combinações possíveis dos valores dos atributos Cor e Risco,

quando Sexo e Faixa são ambos positivos: (R, C) e (R,C), não existindo exemplos para

as restantes combinações.

Aplicando os mesmos princípios, consegue-se determinar os valores das restantes

probabilidades condicionadas, chegando no fim da primeira iteração do algoritmo aos

valores apresentados na Tabela 21.

Tabela 21 – Probabilidades condicionadas para as variáveis Alcool (à esquerda) e

Risco (à direita) após uma iteração do algoritmo EM

Alcool

SF 0 0

S F 0 1

SF 1 0

S F 1 1

Positivo=1 0.357 0.5 0.813 0.576

Risco

TC 0 0

T C 0 1

TC 1 0

T C 1 1

Alto=1 0.038 1 0.467 1

Avaliação de modelos

De uma forma simplista e genérica, pode-se avaliar as diversas abordagens de

classificação segundo alguns parâmetros de interesse, como o tempo gasto no treino

dos modelos, o tempo gasto na classificação de instâncias desconhecidas, na

capacidade da abordagem em tolerar erros e finalmente na facilidade de interpretação

dos classificadores gerados.

A Tabela 22 resume essa avaliação.

Tabela 22 – Comparação das abordagens de classificação

Tempo

Treino

Tempo

Classificação

Tolerância

a Erros

Facilidade de

Interpretação

Baseada em Instâncias Rápido Lento Média Difícil

naïve Bayes Rápido Rápido Média Média

Árvores de Decisão Rápido Rápido Média Fácil

Redes Neuronais Lento Rápido Boa Difícil

Vectores de Suporte Rápido Rápido Baixa Difícil

Redes de Bayes Lento Rápido Boa Fácil

De um modo geral, as redes neuronais e as redes de Bayes (com variáveis escondidas)

sofrem processos de treino mais lentos do que os restantes métodos, uma vez que

utilizam processos iterativos aproximados para melhorar o seu desempenho. No entanto

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

158

são estes os classificadores mais tolerantes a erros.

Quanto ao tempo de classificação, os métodos baseados em instâncias são os mais

lentos, por não criarem um modelo capaz de sintetizar os dados. Pela mesma razão, a

sua interpretação não é facilitada. De interpretação difícil, são também as redes

neuronais e as máquinas de vectores de suporte, devido essencialmente à sua

naturalidade de manipulação dos dados em espaços de grande dimensionalidade.

Finalmente, quanto à tolerância a erros, é de referir que as árvores de decisão apenas o

conseguem através da utilização de técnicas de gestão de overfitting, e que as máquinas

de vectores de suporte vêem a sua simplicidade prejudicada para conseguirem lidar com

esta situação (alterações essas não abordadas neste texto).

Ainda a salientar há o facto de que apenas as redes de Bayes podem usar

conhecimento de domínio para facilitar a aprendizagem / treino.

Para além da avaliação genérica apresentada, cada problema tem as suas

características distintas, e cada abordagem aplicada a diferentes problemas apresenta

diferentes resultados.

Dada a multiplicidade de abordagens e de modelos encontrados pelas diferentes

abordagens de classificação (um só método pode gerar diferentes modelos para o

mesmo conjunto de instâncias se parametrizado de formas diferentes), torna-se

essencial identificar o melhor modelo a apresentar ao utilizador final.

De particular importância é a certeza associada a cada modelo, sendo particularmente

importante estimar esse valor de forma independente. Neste âmbito, a avaliação é feita

preferencialmente sobre um conjunto de dados independente, dados estes designados

por dados de teste, designado por D, nas expressões seguintes.

Concretamente, a certeza de um modelo de classificação é dada pela sua precisão

(accuracy): a percentagem de instâncias de teste correctamente classificadas pelo

modelo.

}{#

}:)()({#

Dx

Dxxcxhprecisão

i

iii

∈==

Expressão 87 – Precisão de um classificador

Na Expressão 87 e seguintes, h(xi) é a classificação dada pelo classificador à instância xi

e c(xi) a sua classificação real.

Para além desta medida é habitual avaliar a precisão de um modelo através da sua

matriz de confusão. Uma matriz de confusão não é mais do que uma matriz quadrada

nxn (com n o número de classes), em que cada entrada xij traduz a percentagem de

instâncias da classe i classificadas como sendo da classe j. Assim, uma matriz diagonal

Page 88: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

159

reflecte um classificador óptimo.

No caso da classificação binária, é habitual designar as entradas da diagonal da matriz

como positivos verdadeiros (true positives – TP) e negativos verdadeiros (true negatives

– TN), e os restantes elementos como falsos positivos (false positives – FP) e falsos

negativos (false negatives – FN) – Figura 58.

Classificação Positivos Negativos

Positivos TP FN R

eal

Negativos FP TN

Figura 58 – Matriz de confusão para classificação binária

Associado à precisão é habitual encontrar-se a sensibilidade e a especificidade. Enquanto

que a primeira capta a capacidade de classificar correctamente os casos positivos, a

segunda avalia a capacidade de excluir os casos negativos.

Assim, a sensibilidade é dada pelo rácio entre o número de instâncias correctamente

classificadas como positivas, isto é os positivos verdadeiros (true positives – TP), face ao

número total de instâncias positivas – a soma do número de positivos verdadeiros (true

positives – TP) e de falsos negativos (false negatives – FN) – Expressão 88.

FNTP

TP

PositivosDx

PositivosDxxcxhadesensibilid

i

iii

+=

∩∈∩∈=

=}{#

}:)()({#

Expressão 88 – Sensibilidade ou TPrate de um classificador binário

A sensibilidade é também conhecida como o rácio de positivos verdadeiros (true positive

rate), existindo naturalmente um rácio de falsos positivos (false positive rate) mas dado

pela Expressão 89.

FPTN

FPrateFP

+=

Expressão 89 – FPrate de um classificador binário

Por seu lado, a especificidade é dada pelo rácio entre o número de instâncias

correctamente classificadas como negativas, isto é os negativos verdadeiros (true

negatives – TN), face ao número total de instâncias negativas – a soma do número de

negativos verdadeiros (true negatives – TN) e de falsos positivos (false positives – FP) –

Expressão 90.

FPTN

TN

NegativosDx

NegativosDxxcxhdadeespecifici

i

iii

+=

∩∈

∩∈==

}{#

}:)()({#

Expressão 90 – Especificidade de um classificador binário

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

160

Note que o rácio de falsos positivos está relacionada com a especificidade, ou seja é

igual a 1–especificidade.

Apesar do contributo das métricas na avaliação dos modelos, a sua interpretação por si

só é pouco rica, uma vez que não avalia a qualidade do modelo no que diz respeito à

sua capacidade de compreensão do problema. Por exemplo, e como já foi referido, num

problema desequilibrado, com uma classe dominante, um modelo que classifique todas

as instâncias como pertencendo a essa classe é bastante preciso e extremamente

simples, não sendo no entanto de grande utilidade.

No contexto da classificação binária, e na perspectiva de evitar estas situações, é

habitual avaliar os modelos recorrendo a dois tipos de gráficos: os Lift e os ROC charts.

Em ambos os casos, assume-se que os modelos em avaliação atribuem a cada

instância de teste, uma pontuação que corresponde à probabilidade da instância ser

positiva.

ROC charts

Os ROC charts são originários da área de processamento de sinal e avaliam a relação

entre a sensibilidade e a especificidade de um ou mais modelos. Em concreto, traduzem-

se num gráfico, em que o eixo das coordenadas apresenta os valores possíveis para o

FPrate (ou seja 1-especificidade) e o eixo das ordenadas os valores possíveis para a

sensibilidade ou TPrate, como se ilustra na Figura 59.

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1FPrate

TP

rate

Figura 59 – Exemplo de um ROC chart para dois modelos, A e B

O método de construção destes gráficos é muito simples e consiste basicamente em

dois passos. Em primeiro lugar, ordenam-se as instâncias de teste por ordem

decrescente da classificação obtida pelo modelo. Em segundo, começando no ponto

(0,0) do gráfico, selecciona-se cada uma das instâncias de teste (pela ordem anterior):

caso a instância seja positiva avança-se verticalmente 1/P unidades, caso seja negativa

avança-se para a direita 1/N unidades; no caso de empate (em que a probabilidade de

ser positiva é igual à probabilidade de ser negativa) avança-se diagonalmente. (Com P e

Page 89: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

161

N, o número de instâncias positivas e negativas no conjunto de teste, respectivamente.)

Classe Pontos Classe Pontos1 P 0.9 11 P 0.42 P 0.8 12 N 0.393 N 0.7 13 P 0.384 P 0.6 14 N 0.375 P 0.55 15 N 0.366 P 0.54 16 N 0.357 N 0.53 17 P 0.348 N 0.52 18 N 0.339 P 0.51 19 P 0.3

10 N 0.505 20 N 0.1 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1FPrate

TP

rate

Figura 60 – ROC chart e respectiva tabela de pontuações

A Figura 60 ilustra o ROC chart obtido para o conjunto de teste da tabela apresentada na

mesma figura.

Há vários pontos a salientar sobre os ROC charts. Em primeiro lugar, o ponto (0;0) do

gráfico ilustra a situação em que nenhuma instância é classificada como positiva. O

ponto (1;1) por seu lado ilustra a situação em que todas as instâncias são consideradas

positivas. Quanto ao ponto (0;1), este evidencia o classificador óptimo que classifica

todas as instâncias correctamente, ou seja classifica como positivas todas as instâncias

positivas e nenhuma das negativas. Finalmente, um ponto é melhor do que outro se se

encontra mais a noroeste, ou seja, tem um maior valor de ordenada (TPrate) e um

menor valor de abcissa (FPrate).

Há ainda a salientar que uma curva ROC que se traduz numa recta de declive igual a

45° evidencia um modelo muito pobre, representando um classificador aleatório. Esta

linha é tipicamente usada como termo de comparação para os restantes modelos.

O modelo é tanto melhor quanto maior for a área abaixo da sua curva ROC, ou seja,

idealmente a sensibilidade cresce rapidamente, mantendo o número de falsos positivos

baixo. Na prática, a maior área é conseguida pelos modelos que apresentam curvas

mais altas e com maior declive na origem.

Lift charts

O Lift chart pretende apresentar a melhoria obtida pela utilização do modelo, face à

utilização de uma classificação aleatória. Para tal regista o número de instâncias

positivas correctamente classificadas (true positives – TP) para subconjuntos do

conjunto de teste com diferentes tamanhos (ou seja, o eixo das abcissas apresenta

valores de 0% a 100%). No entanto, os subconjuntos usados não são amostras

aleatórias mas sim os diferentes percentis do conjunto de teste. Deste modo, os

subconjuntos mais pequenos apresentam uma percentagem de instâncias classificadas

correctamente maior do que os subconjuntos maiores. A Figura 61 ilustra um Lift chart.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

162

0

100

200

300

400

500

600

700

800

900

1000

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

Tamanho da Amostra

Pos

itiv

os

Ve

rdad

eir

s (T

P)

Figura 61 – Exemplo de um Lift chart

A construção destes gráficos é trivial e baseia-se simplesmente na ordenação das

instâncias de teste por ordem decrescente da classificação obtida pelo modelo, e na

contagem do número de instâncias positivas correctamente classificadas em cada um

dos possíveis subconjuntos. Por exemplo, o gráfico da Figura 61 revela que no

subconjunto com os 15% de instâncias de teste com maior probabilidade de ser

classificadas como positivas, existem 400 instâncias realmente positivas.

Note-se que os melhores modelos são os que apresentam curvas mais altas e mais

próximas do eixo das ordenadas. Note-se ainda que o ponto (0;0) corresponde à

inexistência de dados de teste e consequente inexistência de instâncias correctamente

classificadas como positivas, e que o ponto (1;1) corresponde à correcção da

classificação da totalidade das instâncias positivas em todo o conjunto de teste. À

semelhança dos ROC charts, a recta com declive 45º com origem no ponto (0;0)

representa uma classificação aleatória.

Note que no caso em que o número de exemplos positivos é muito reduzido (como nos

problemas de classes dominantes e residuais), a diferença entre o número de exemplos

negativos e o tamanho da amostra é muito pequena, fazendo com que os ROC e os Lift

charts sejam bastante semelhantes para o mesmo problema.

Estratégias de determinação dos dados de treino e teste

A selecção das instâncias usadas para teste dos modelos depende naturalmente da

quantidade de instâncias existentes no conjunto de treino, ou seja, de instâncias

conhecidas. Existem basicamente duas estratégias:

� Partição para treino e teste: usado na presença de grandes quantidades de dados

(vários milhares de instâncias), divide o conjunto de instâncias conhecidas em

conjunto de treino e conjunto de teste; isto é, usa 2/3 dos dados para

aprender / treinar o modelo e os restantes 1/3 para avaliar / testar o modelo; no caso

em que o algoritmo avalia o desempenho do modelo criado para o treinar, é usado

um terceiro conjunto – conjunto de validação;

Page 90: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 8 – Classificação

163

� Validação cruzada (cross-validation): usado na presença de quantidades

moderadas de dados (centenas ou poucos milhares de instâncias), divide o conjunto

de instâncias conhecidas em k subconjuntos. Com cada (k-1) destes subconjuntos é

criado um modelo, avaliado com o subconjunto restante. Os resultados de precisão

dos modelos são então comparados, usando um teste estatístico que valide a

precisão dos modelos.

De modo a que se encontre um modelo (apesar dos k descobertos), é necessário

que os subconjuntos sejam semelhantes, ou seja que cada um seja uma amostra do

conjunto inicial.

� Leave-One-Out: caso particular de validação cruzada, com k igual ao número de

instâncias. É usado para conjuntos muito pequenos (com dezenas de instâncias).

Durante o treino de um modelo é ainda essencial garantir que os dados a utilizar existem

em proporções equilibradas, quando divididos pelas respectivas classes. Repare que na

presença de duas classes, uma dominante e outra residual (unbalanced data), um

modelo que classifique todas as instâncias como pertencentes à classe dominante terá

uma boa precisão e uma boa cobertura. Note ainda, que muitos dos problemas de

interesse para o Data mining têm esta característica, lembre-se por exemplo da

detecção de fraudes, em que os casos de fraude são naturalmente residuais face aos

casos normais.

De modo a garantir que o classificador é capaz de aprender a classe residual, é

necessário tornar o conjunto de treino equilibrado (balanced data). Para tal é habitual

utilizar todas as instâncias da classe residual e um igual número de instâncias da classe

dominante. No caso de múltiplas classes, há ainda a necessidade de garantir que as

proporções das diferentes classes no conjunto de treino se mantêm no conjunto de teste.

Sumário

O capítulo apresenta as várias abordagens de construção de classificadores,

começando pelos classificadores mais simples como os baseados em instâncias e o

naïve Bayes, passando para outros mais complexos e que habitualmente

apresentam melhores desempenhos. Em particular são apresentadas as árvores de

decisão, as redes neuronais, as máquinas de vectores de suporte e as redes de

Bayes. Para além de uma descrição genérica de cada uma das abordagens, são

descritos os algoritmos mais utilizados na construção dos classificadores.

O capítulo termina com a descrição das métricas de avaliação dos modelos criados,

dando particular atenção à precisão dos modelos, com a descrição dos gráficos mais

usados na sua comparação: os ROC e Lift charts.

Page 91: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

165

9 Novos Desafios

Duas décadas de forte investigação e aplicação das técnicas de data mining em

problemas reais e em domínios variados deram ao data mining um estatuto de

maturidade há muito desejado. Contudo, com o desenvolvimento da sociedade da

informação surgiram novas áreas de aplicação que apresentam por si só novos desafios.

Pelo apresentado nos capítulos anteriores, verifica-se que a aplicação das técnicas

tradicionais de data mining se traduzem essencialmente na detecção de semelhanças

dos valores dos atributos que caracterizam as instâncias, e que o seu sucesso depende

da capacidade de definir cada uma das instâncias segundo um mesmo formato, criando

uma tabela com todos os registos a analisar, e em que cada registo é caracterizado por

um conjunto fixo de pares atributo / valor.

A banca, os seguros, ou a venda a retalho são exemplos de áreas de aplicação de

sucesso. O que estas áreas têm em comum é a forma como registam e recolhem os

dados dos seus clientes. De facto, a aplicação típica de data mining consistiu até à data,

na exploração de conjuntos de dados “bem comportados”, descritos de forma tabular, e

armazenados em bases de dados relacionais. No entanto, a evolução verificada nos

meios de recolha de dados e mesmo os avanços das tecnologias de bases de dados

permitiram o registo de dados que dificilmente encaixam no formato tabular. Um exemplo

paradigmático é o caso das séries financeiras, cuja análise ao longo dos anos tem

requerido a sua adaptação àquele formato, e exigido o desenvolvimento de métodos de

pré-processamento exigentes e pouco eficazes.

Com aqueles avanços é hoje possível manipular automaticamente dados tão diversos

como as sequências de X, dados resultantes da exploração espacial, séries temporais

resultantes de alguma interacção de utilizadores ou somente o texto. O que agora

caracteriza estes dados são a sua abundância ou mesmo infinitude e a sua estrutura

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

166

específica e dificilmente traduzível para a forma tabular, sem perda de informação. A

juntar a este tipo de dados, surge a Web com todas as suas potencialidades.

São estes novos dados, ou melhor, a capacidade de lidar com estes velhos dados,

ignorados pelas técnicas de data mining até ao momento, que apresentam novos

desafios àquelas técnicas, nomeadamente no que diz respeito à sua exploração eficaz e

eficiente.

De um modo simplista, pode dizer-se que a investigação em data mining tem avançado

essencialmente em quatro direcções distintas: a exploração de dados complexos (séries

temporais, sequências, grafos, texto, etc.), a actualização da informação descoberta

perante um fluxo de dados contínuo e potencialmente infinito (data streams), a

incorporação de conhecimento de domínio no processo de data mining e a garantia da

salvaguarda da privacidade dos dados perante a aplicação de técnicas de data mining.

O presente capítulo aborda superficialmente cada um destes temas, indicando os

caminhos de investigação mais promissores para cada um dos problemas descritos.

Antes de considerar a manipulação de dados complexos, descrevem-se as principais

abordagens ligadas à garantia da preservação de privacidade.

Protecção da privacidade

Na sociedade ocidental, os receios relacionados com a privacidade dos dados pessoais

agudizaram-se profundamente com a expansão da utilização da Web, sobretudo na sua

faceta de prestador de serviços. De facto, com a possibilidade de efectuar uma panóplia

de serviços naquele ambiente, como são o e-commerce ou o e-banking, os utilizadores

passaram a ter a percepção clara que os seus dados pessoais se encontram registados

em bases de dados guardadas pelo mundo fora, que estão naturalmente sujeitas a

falhas de segurança. Associadas a estas preocupações, surgiram os receios de má

utilização da informação potencialmente descoberta pela aplicação das técnicas de data

mining nessas bases de dados. O ponto crítico foi atingido com o anúncio do programa

Total Information Awareness lançado pelo governo norte-americano, que pretendia entre

outras coisas, aplicar data mining no combate ao terrorismo. No final do segundo

milénio, os utilizadores temiam a falta de segurança nos processos de recolha dos

dados, tinham falta de confiança nos seus “donos” e temiam a invasão da sua

privacidade e limitação das suas liberdades, essencialmente no que dizia respeito à sua

relação com os governos.

Com o levantar da questão, começaram a surgir indicações claras de que grande parte

da população tinha reservas em disponibilizar os seus dados pessoais na Web. Estudos

sobre sua a utilização revelavam dados interessantes sobre os utilizadores: 27%

estavam apenas marginalmente preocupados com a segurança dos seus dados; 56%

eram pragmáticos, e na presença de políticas de segurança sentiam-se confortáveis com

Page 92: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

167

a disponibilização dos dados; mas, 17% eram totalmente fundamentalistas, e não

disponibilizavam os seus dados na Web ainda que os serviços tivessem aquelas

políticas implementadas [Cranor 1999]. Percebeu-se ainda, que os utilizadores tinham

atitudes diversas, consoante beneficiavam directamente do serviço ou não. Em concreto,

alguns utilizadores não se sentiam confortáveis em divulgar os valores reais de alguns

atributos particulares (como os seus rendimentos), mas não tinham problemas em

escolher valores intervalares para caracterizar os mesmos atributos [Westin 1999].

No contexto destas preocupações, os países ocidentais aprovaram leis que garantem o

direito dos indivíduos a determinar por si próprios quem, como e em que extensão, os

seus dados pessoais são comunicados a outros. Portanto, de modo a cumprir estas

directivas, as políticas de segurança têm de passar a contemplar as seguintes questões

acerca dos dados recolhidos: “para que vão ser usados?” (ou seja, qual o propósito da

recolha), “por quem?” e “por quanto tempo?”. No entanto, uma vez que a legislação não

é guiada pelas capacidades e limitações das infra-estruturas tecnológicas, têm-se

verificado várias dificuldades na implementação daquelas políticas.

Bases de dados hipocráticas

As bases de dados hipocráticas, propostas em 2002 [Agrawal 2002], dão resposta às

necessidades levantadas pela implementação das novas políticas de privacidade, ao

estabelecer um novo contexto e processo de recolha e acesso aos dados, em que

conjuntamente com os dados se regista o propósito da sua recolha. É pois o propósito

registado que permite a limitação de utilização dos dados, quer por utilizadores não

autorizados, quer fora do intervalo de tempo previsto, quer para outro propósito. Os

princípios que regem a sua definição são dez: especificação do propósito (purpose

specification), consentimento (consent), limitação da recolha (limited collection), limitação

do uso (limited use), limitação da divulgação (limited disclosure), limitação da retenção

(limited retention), precisão e actualidade (accuracy), segurança (safety), acessível ao

próprio (openness) e verificável se de acordo com os princípios (compliance).

A arquitectura inicialmente proposta para estas bases de dados (Figura 62) centra-se no

conceito de propósito (purpose) e engloba quatro módulos que manipulam os dados e

metadados registados.

O primeiro módulo – política de privacidade (privacy policy), é o responsável por

registar a política de privacidade e gerar as tabelas de metadados correspondentes.

Note-se a existência de tabelas de metadados referentes à própria política de

privacidade: a tabela de política de privacidade, em que se registam os receptores

externos dos dados, os períodos de retenção e os seus utilizadores autorizados

(pessoas ou aplicações); e a tabela de autorizações, que mantém os registos

necessários ao controlo de acessos de acordo com a política de privacidade. Repare-se

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

168

ainda que, para cada atributo registado e cada propósito identificado, se registam os

receptores externos, o período de retenção e os utilizadores autorizados.

Figura 62 – Arquitectura de uma base de dados Hipocrática ([Agrawal 2002])

O segundo módulo – recolha de dados (data collection), gere os processos de

introdução dos dados, garantindo que a política de privacidade é aceite pelo o utilizador,

e que os dados estão correctos. Por sua vez, o terceiro módulo – interrogações

(queries), garante a execução das interrogações de acordo com a política implementada,

nomeadamente no que respeita ao acesso por utilizadores autorizados, a propósitos

adequados e a atributos permitidos. Para além disso, o módulo regista a interrogação

efectuada, de modo a possibilitar a detecção de padrões de interrogações por utilizador

e por propósito. À semelhança de um sistema de detecção de intrusões, o módulo

permite a detecção de interrogações suspeitas de violar a política de privacidade.

Por último, o módulo de retenção (retention) é naturalmente o responsável por eliminar

os registos que ultrapassaram o período de tempo permitido.

A juntar aos quatro módulos fundamentais, os autores propuseram ainda a inclusão de

ferramentas de análise, tais como as de descoberta de padrões, de modo a ser possível

a identificação de atributos desnecessários ou de padrões de utilização.

Associada à implementação de uma política de privacidade que siga os princípios

enunciados, surgem outros aspectos importantes a ter em conta. Por um lado, é natural

que o desempenho da base de dados seja afectado, e por outro, é expectável que

pequenas alterações na política de privacidade impliquem grandes alterações na base

de dados. Um outro aspecto primordial está relacionado com a capacidade de prevenir

acessos ilegais aos dados. Com a arquitectura proposta torna-se possível identificar

Page 93: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

169

acessos e utilizações ilegais, mas a questão da prevenção está dependente da utilização

das ferramentas de análise e enfrenta as dificuldades habituais de detecção de intrusões

e de fraude.

Aplicação de operações

Num contexto em que uma percentagem significativa dos utilizadores (82% segundo

[Westin 1999]) estão dispostos a disponibilizar os seus dados pessoais, desde que

beneficiem da sua utilização, mas que consideram a implementação de políticas de

privacidade importante, a aplicação de técnicas de data mining aos dados existentes

enfrenta novos desafios. Em particular, a questão essencial é o desenvolvimento de

métodos que desempenhem as tarefas de classificação, segmentação e de descoberta

de padrões, sem manipular os registos individuais dos utilizadores, ou seja, recorrendo

apenas a dados agregados ou a valores modificados.

Também nesta área, as primeiras abordagens foram desenvolvidas por Agrawal e

Srikant, quer com a proposta da aplicação de árvores de decisão [Agrawal 2000], quer

na descoberta de padrões no novo contexto.

Em ambos os casos, a premissa básica é que os atributos considerados sensíveis são

distorcidos por uma função de aleatorização, de modo a que não possam ser estimados

individualmente com precisão suficiente. Esta aleatorização pode ser concretizada tanto

através de funções gaussianas como de funções uniformes: sendo xi o valor original do

atributo, o seu valor modificado será xi+r, com r um valor aleatório de acordo com a

distribuição escolhida.

Apesar da modificação dos dados, o objectivo continua a ser conseguir construir os

modelos subjacentes aos dados originais, ou seja, criar modelos precisos sem recorrer

aos dados reais e individuais dos utilizadores. Nesta perspectiva, o primeiro passo é

reconstruir a função de distribuição dos dados originais (a função e não os valores

individuais) a partir dos dados distorcidos.

No âmbito da classificação, considerem-se n valores originais x1, x2, …, xn de uma

distribuição unidimensional como concretizações de n variáveis aleatórias independentes

X1, X2, …, Xn, cada uma delas com a mesma distribuição que a variável aleatória X,

correspondente a um atributo numérico A sua modificação é obtida pela soma dos

valores y1, y2, …, yn, que à semelhança dos valores xi são concretizações de n variáveis

aleatórias independentes Y1, Y2, …, Yn, cada uma delas com a mesma distribuição que a

variável aleatória Y, distribuição esta conhecida. Dados os valores w1=x1+y1, wn=x2+y2, …,

wn=xn+yn, e a função de distribuição de probabilidades FY da variável Y, o objectivo é

estimar a função de distribuição de probabilidades FX da variável X. Note-se que os

valores individuais xi e yi são desconhecidos, mas que a função de densidade de

probabilidades fY é conhecida, que pode ser encarada como uma aproximação de FY.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

170

A estimativa de fX pode ser feita iterativamente, usando a regra de Bayes para funções

de densidade de probabilidades e assumindo um valor inicial para fX (Expressão 91, em

que a é o ponto médio de cada intervalo considerado e j o número de iterações

efectuadas). Note-se a necessidade de considerar a partição do domínio de cada

atributo (variável aleatória X) em intervalos, de modo a melhorar o desempenho do

algoritmo de reconstrução da distribuição de probabilidades de cada atributo.

∑∫=

∞−

+

−=

n

i jXiY

jXiYj

X

dz)z(f)zw(f

)a(f)aw(f

n)a(f

1

1 1

Expressão 91 – Estimação da função de densidade de probabilidades fY

Conhecida, ou melhor, aproximadamente conhecida a distribuição de cada atributo (X), a

construção de classificadores torna-se possível. Note-se por exemplo, que a construção

de um classificador de naïve Bayes apenas necessita daquelas probabilidades. No que

diz respeito à construção de árvores de decisão, são necessárias algumas adaptações

([Agrawal 2000]), nomeadamente na selecção do nó que melhor partição faz do conjunto

de treino, e na forma como é feita a partição:

� A determinação do melhor nó é feita recorrendo ao índice de Gini (descrito no

capítulo 8), uma vez que este apenas necessita da função de distribuição das

classes em cada partição. Os candidatos a nós correspondem aos valores fronteira

dos intervalos considerados para a reconstrução da função de distribuição de cada

atributo;

� Uma vez que aquela reconstrução também desvenda uma estimativa do número de

valores em cada intervalo, os valores de um atributo são ordenados e distribuídos

pelos intervalos, atribuindo ao primeiro intervalo os N(I1) valores mais baixos, ao

segundo intervalo os N(I2) valores mais baixos excluindo os já atribuídos a I1, e

assim por diante (com Ip o intervalo p e N(Ip) o número de valores pertencentes ao

intervalo Ip). Se o nó dividir os dados na fronteira entre os intervalos Ip-1 e Ip, então

os pontos atribuídos aos intervalos I1, …, Ip-1 são associados à partição S1, e os

pontos atribuídos aos intervalos Ip, …, Im são associados à partição S2.

Naturalmente que as questões mais relevantes a resolver são em que instante da

construção do classificador se deve proceder à reconstrução das funções de

probabilidades dos atributos: se no início do processo ou se em todos os nós; e que

dados devem ser usados na reconstrução: se se faz uma reconstrução global usando

todos os dados disponíveis, ou se se dividem os dados por classe e se faz a

reconstrução por cada classe. Agrawal e Srikant propuseram três métodos para

responder a estas questões: Global – que reconstrói as funções de distribuição de

probabilidades de cada atributo uma vez no início do processo, usando todos os dados

disponíveis; ByClass – reconstrói as funções de distribuição de probabilidades de cada

Page 94: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

171

atributo para cada uma das classes, uma vez no início do processo; e Local – reconstrói

as funções de distribuição de probabilidades de cada atributo em todos os nós e por

cada classe. Verificou-se experimentalmente que o que obtém melhores resultados em

termos de eficiência temporal é o Global, seguido pelo ByClass. Em termos de precisão,

o cenário inverte-se e o algoritmo Global apresenta o pior desempenho.

Ao nível da descoberta de padrões e regras de associação, uma vez que se manipulam

atributos categóricos, a distorção dos valores tem de ser obtida através de outros

procedimentos, sob o risco de ser possível reconstruir os valores originais e individuais

dos atributos. De modo a ultrapassar esta dificuldade, foi proposto que em vez de alterar

os items de uma transacção se lhe adicionassem novos items [Evfimievski 2002], de

modo que se torne tão provável encontrar um item que ocorreu numa dada transacção,

quanto encontrar um item que não ocorreu na mesma transacção. Naturalmente, que o

suporte de cada item e itemset é diferente nos dados originais e nos dados distorcidos,

mas se a aleatorização das transacções tiver algumas características particulares, é

possível estimar os valores de suporte. A adaptação dos algoritmos de descoberta de

padrões para lidar com os dados recuperados é simples, e consiste em descartar os

candidatos cujo suporte é significativamente mais baixo do que o limiar aceite para

suporte mínimo. No entanto, os padrões descobertos englobam alguns falsos positivos,

e alguns dos padrões com suporte mais baixo podem não ser descobertos.

Outras abordagens para lidar com as questões da privacidade advogam a utilização de

heurísticas para modificar apenas alguns valores, de modo a minimizar as perdas de

informação, enquanto que outros consideram que técnicas baseadas em criptografia,

que garantem que apenas os resultados são visíveis, são suficientes. Uma descrição e

classificação dos métodos que aplicam data mining mantendo a privacidade dos dados

pode ser encontrada em [Verykios 2004].

Exploração de séries temporais

A exploração de dados de natureza temporal, vulgarmente designada por temporal data

mining, é uma extensão importante às técnicas de exploração de dados convencionais,

uma vez que fornece a capacidade de explorar os aspectos dinâmicos das entidades,

em vez de explorar apenas os seus aspectos estáticos. Em particular, com este tipo de

exploração torna-se possível a inferência de relações de causa-efeito, permitindo a

compreensão da evolução do estado das entidades.

Os dados de natureza temporal surgem registados numa de duas formas: em conjuntos

de séries temporais (time series) – séries de valores numéricos correspondentes ao

estado de uma entidade em cada instante de tempo (normalmente igualmente

espaçadas no tempo), ou em conjuntos de sequências temporais – sequências de

eventos ordenados no tempo, mas compostas por elementos discretos.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

172

Como para a maioria dos dados complexos (não tabulares), o primeiro problema a

resolver, antes de aplicar operações de data mining, é a sua representação numa forma

facilmente manipulável por aquelas operações. O problema da representação é

especialmente importante na manipulação de séries temporais, uma vez que a

manipulação directa de dados n-dimensionais de domínio contínuo (continuous, high-

dimensional data) de um modo eficiente é difícil. Intimamente relacionado com a

representação dos dados destaca-se a capacidade de medir o grau de semelhança entre

duas séries de dados, ou seja, duas instâncias, pois tal como se viu, o sucesso das

operações de data mining (segmentação, descoberta de padrões e mesmo classificação)

são profundamente dependentes do desempenho destas medidas. No caso das séries

temporais, é particularmente relevante a capacidade de lidar com pontos isolados, ruído

nos dados, diferenças de amplitude e existência de lacunas ou outras distorções ao

longo do tempo. O que implica que as medidas de semelhança mais eficazes são as

capazes de manipular séries com diferentes tamanhos, níveis de ruído, amplitudes e

distorções temporais.

Representação de séries temporais

A abordagem mais simples para representar uma série temporal ou sequência de

valores numéricos (time series) é usar a própria sequência sem qualquer

processamento. Naturalmente que esta solução não lida eficazmente com qualquer dos

aspectos enunciados (tamanho, ruído, amplitude ou distorções).

Uma alternativa simples, baseada na teoria de que o sistema visual humano divide

curvas suaves em pequenos segmentos de recta, consiste em substituir a série temporal

original de n pontos por uma aproximação que consiste numa sequência de m

segmentos de recta, com m menor que n. Existem duas possíveis formas de dividir a

sequência: definir o número de segmentos à partida ou descobrir esse número, e em

seguida identificar os segmentos que melhor se aproximem da sequência.

Apesar de aquela ser uma forma fácil e clara de representação, os ganhos, em termos

de manipulação da sequência, não são muitos, no entanto facilita a detecção de

variações relevantes na sequência e a uniformização dos tamanhos. Outra vantagem

significativa destas abordagens é a capacidade de reduzir o impacto de ruído ou de

pontos isolados na sequência original. Contudo, quaisquer diferenças de amplitude

(problemas de escala) ou outra distorção na dimensão do tempo não são facilmente

tratadas.

Uma segunda abordagem é aplicar uma transformação significativa à série temporal,

passando-a do domínio do tempo para outro domínio, e depois desta transformação,

usar um ponto neste novo domínio para representar a série inicial. Um exemplo

paradigmático é a aplicação da Transformada de Fourier Discreta (DFT), que converte

Page 95: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

173

uma série do domínio do tempo para um ponto no domínio das frequências. A série é

representada por um ponto k-dimensional, sendo k o número das frequências principais

consideradas. Este método tem a vantagem de que a Transformada de Fourier mantém

a amplitude dos coeficientes de Fourier invariável face a deslocamentos no tempo, o que

permite estender o método para identificar sequências semelhantes ignorando

deslocamentos temporais.

Outra transformação frequentemente aplicada é a DWT (Discrete Wavelet Transform)

[Chan 1999], que traduz um série do domínio do tempo para o domínio do

tempo/frequência. A DWT é uma transformada linear, que decompõe a série inicial em

diferentes frequências sem perder a informação do instante a que correspondem os

valores. A série inicial é portanto representada pelas suas características principais,

expressas como os coeficientes principais das wavelets.

Uma vez que o número de frequências a usar por ambos os métodos tipicamente é

pequeno (2 ou 3), estas transformações permitem manejar facilmente séries temporais.

Contudo, diferenças de amplitude nas séries ou distorções no tempo inviabilizam a

identificação de séries semelhantes.

Uma terceira abordagem para lidar com séries temporais é a conversão da sequência

inicial (com valores numéricos) numa nova sequência de símbolos discretos. Associados

a esta conversão surgem dois problemas: definir o domínio dos símbolos da nova

sequência – alfabeto, e fazer a conversão dos valores numéricos para símbolos.

A escolha do alfabeto é por vezes negligenciada, sendo que a forma mais simples de

definir os símbolos do alfabeto é escolher um conjunto de símbolos sem significado no

domínio, restando apenas resolver o problema da conversão propriamente dita.

Abordagens com esta natureza introduzem naturalmente um grau adicional de

artificialidade, mas permitem a discretização da série ainda que não seja conhecida a

sua natureza, nem o significado dos padrões que se espera encontrar.

A alternativa à artificialidade de um conjunto de símbolos sem significado é a utilização

de um alfabeto em que cada símbolo tem um significado no domínio da série em análise,

recorrendo à utilização de uma linguagem (formal) capaz de descrever cada um dos

seus símbolos. Um exemplo deste tipo de linguagem é a SDL (Shape Definition

Language) [Agrawal 1995b], que permite a um utilizador (perito ou não) definir um

conjunto de padrões ou formas (shapes), associando a cada um deles um símbolo,

normalmente com significado para o utilizador. Estes padrões ou formas correspondem

aos vários tipos de transição existentes entre os elementos adjacentes da sequência

inicial. Depois de definido o alfabeto, a conversão da sequência é feita com base na

identificação do tipo de cada transição entre cada dois elementos adjacentes, sendo a

nova sequência o resultado de substituir cada transição pelo símbolo a ela associada.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

174

Medidas de semelhança

Quando a série é representada por uma sequência de elementos, a forma mais simples

de medir a semelhança entre os dados é comparando os iésimos elementos de cada

sequência. A medida de semelhança mais usada neste contexto é a distância

Euclidiana, considerando cada sequência (de tamanho n) como um ponto de Rn.

Repare-se que este método implica que as sequências tenham o mesmo tamanho, pelo

que de modo a conseguir lidar com a existência de ruído, problemas de amplitude ou de

desfasamentos temporais, foi proposta uma extensão simples àquela distância, que

consiste em determinar pares de porções de sequências que sejam semelhantes, depois

de aplicada alguma transformação linear. Uma proposta concreta de implementação

desta medida consiste em descobrir subsequências de tamanho w (por deslizamento de

uma janela) de ambas as sequências, que depois de normalizadas (com valores no

intervalo [-1, 1]) sejam iguais entre si. As duas sequências são consideradas

semelhantes se existir um número significativo daqueles pares de subsequências

[Agrawal 1995a]. Repare-se que a normalização das subsequências resolve o problema

da eventual diferença de amplitudes, e a procura de subsequências o problema dos

desfasamentos no tempo.

Uma técnica diferente de ultrapassar a grande sensibilidade da distância euclidiana a

pequenas distorções temporais é a utilização do Dynamic Time Warping (DWT)

[Berndt 1996]. Esta técnica consiste em alinhar duas sequências de modo a que uma

medida de distância pré-determinada seja minimizada. O objectivo é criar uma nova

sequência – a warping path, cujos elementos são pontos (i,j) em que i e j são os índices

dos elementos da primeira e segunda sequência, respectivamente, que emparelham.

Alguns algoritmos para aumentar o desempenho desta técnica foram propostos em

[Keogh 1999] e [Yi 1998].

Quando uma série é representada como uma sequência de símbolos discretos, a

semelhança entre duas sequências é, na maioria das vezes, calculada pela comparação

de cada elemento de uma sequência com o elemento correspondente da segunda

sequência. Porém, uma vez que na maioria dos espaços discretos ou alfabetos não

existe uma relação de ordem entre os seus elementos é necessária a existência de

outros mecanismos para permitir identificar sequências ou subsequências semelhantes.

Normalmente estas linguagens permitem definir interrogações (queries) usando

combinações de símbolos, e com estas identificar sequências ou subsequências

“globalmente semelhantes”, entre as existentes numa base de dados. Este processo de

identificar sequências “globalmente semelhantes” designa-se blurry matching, uma vez

que as combinações de padrões descrevem uma sequência como uma forma geral,

ignorando os seus detalhes. Este processo é conseguido através da utilização de um

conjunto de operadores, tais como in, any, noless ou nomore, que permitem descrever

Page 96: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

175

formas globais, resolvendo o problema da existência de lacunas de um modo elegante

[Agrawal 1995b].

Uma outra possibilidade é a utilização dos métodos de comparação de cadeias de

caracteres (strings) [Navarro 2001], em a medida mais simples é a distância de edição

(edit distance). Esta medida reflecte a quantidade de trabalho necessário para

transformar um sequência noutra, através de operações de remoção, introdução ou

permuta de um símbolo. Esta medida permite lidar com sequências de tamanhos

diferentes e existência de lacunas.

Aplicação de operações

Um aspecto relevante na descoberta de padrões em séries temporais é a capacidade de

identificar porções repetidas de uma série – problema habitualmente designado por

subsequence matching. O método mais usado neste contexto, corresponde a fazer

deslizar uma janela de tamanho w ao longo de toda a série. Os elementos de cada uma

destas janelas definem uma sub-série diferente, composta pelos elementos interiores da

janela, que são comparados (usando uma medida de semelhança, como as descritas

anteriormente) de modo a identificar as ocorrências da série usada como modelo.

Ainda no contexto da descoberta de padrões (ou regras de associação), não é habitual a

procura de padrões frequentes em séries temporais, apenas em sequências, como se

descreve mais adiante.

O problema fundamental da segmentação (clustering) de conjuntos de dados de

natureza temporal consiste na descoberta de um número de grupos (clusters), capaz de

representar as diferentes séries. Neste contexto surgem três dificuldades: escolher o

número de grupos, iniciar os parâmetros que os representem (ambas presentes nos

problemas tradicionais de segmentação) e definir uma medida de semelhança entre os

elementos (séries temporais).

Se se considerar que o número de grupos é conhecido, a forma mais habitual de lidar

com o problema, é considerar que a série foi gerada de acordo com um modelo

probabilístico, mais habitualmente por um modelo de Markov. Por exemplo, através da

utilização do algoritmo EM [Dempster 1997], os parâmetros do modelo podem ser

estimados [Smyth 1999]. A aprendizagem do número de grupos, se desconhecido, pode

ser efectuada recorrendo a abordagens de validação cruzado do tipo Monte-Carlo, como

sugerido em [Smyth 1997].

Uma abordagem diferente baseia-se na utilização de segmentação hierárquica

[Ketterlin 1997], usando algoritmos como o COBWEB [Fisher 1987], que funcionam em

dois passos: primeiro agrupa os elementos das séries e depois agrupa as próprias

séries. Repare-se que a segmentação dos elementos pode traduzir-se num caso

tradicional de segmentação (por exemplo numa série numérica), mas a segmentação

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

176

das séries requer a existência de um mecanismo de generalização das mesmas. Este

mecanismo deve ser capaz de escolher a descrição mais específica para o que é

comum às diferentes séries de um grupo.

Existe uma vasta literatura sobre previsão de séries temporais, especialmente no

domínio financeiro ([Fama 1970], [Weigend 1994]), mas uma grande fatia destes

trabalhos baseiam-se na utilização de redes neuronais, em particular de redes neuronais

com atraso temporal (time delay neural networks – TDNN) e redes neuronais recorrentes

(recurrent neural networks – RNN).

Uma rede TDNN recebe como entrada a série temporal completa, fazendo uso de

unidades de atraso para manter os valores anteriores da série. Este tipo de rede impõe

que o tamanho das séries seja fixo e não muito grande, permitindo deste modo manter

modelos manejáveis, quer em tamanho quer em complexidade. Por outro lado, estas

redes apenas estabelecem uma associação estática entre os padrões de entrada e

saída, uma vez que para cada entrada a rede devolve o padrão de saída associado ao

protótipo da entrada mais frequente [Berthold 1999]

Uma rede neuronal é designada recorrente (RNN) se contém ligações de realimentação

(cross, auto and backward connections). Este tipo de rede tem-se mostrado adequado

sobretudo para tarefas de aprendizagem dinâmica e para aprender funções de

mapeamento entre séries. A sua maior desvantagem reside na complexidade e nos

custos computacionais associados aos seus algoritmos de treino, devido essencialmente

à complexidade das suas topologias.

Aplicações deste tipo de redes podem ser encontradas quer no domínio financeiro quer

no campo da medicina. O trabalho de Giles [Giles 2001], que combina a discretização

das séries temporais (recorrendo a métodos de inferência gramatical) e a utilização de

redes neuronais recorrentes, é um bom exemplo deste tipo de aplicação.

Apesar da natureza imprevisível das séries financeiras (facto divulgado e geralmente

aceite pela sociedade, a análise e previsão de séries financeiras tem merecido grande

atenção nas últimas décadas. Muitas têm sido as abordagens aplicadas ao problema,

em particular a utilização de redes neuronais recorrentes, algoritmos genéticos

([Cortez 2001], [Szeto 1996]) ou somente conhecimento do domínio da economia e

finança ([Levitt 1996], [Mannila 1999]).

A classificação é uma das mais típicas operações de aprendizagem supervisionada, mas

não tem merecido uma atenção proporcional na exploração de dados de natureza

temporal.

Uma vez que a aplicação dos métodos de classificação a séries é difícil, devido

essencialmente ao vasto número de atributos potencialmente úteis, uma extensão

interessante aos métodos tradicionais, é aplicar um mecanismo que funcione como pré-

Page 97: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

177

processamento. Uma forma de aplicar este pré-processamento consiste em detectar um

conjunto de sub-séries frequentes, e utilizar estas como os atributos relevantes para a

classificação das séries, usando métodos tradicionais de classificação, como o naïve

Bayes [Lesh 1999]. Outro método possível é a utilização de máquinas de vectores de

suporte – SVMs ([Blankertz 2002], [Shimodaira 2001]), com o desempenho amplamente

melhorado quando a ideia de alinhamento temporal é incorporada na função de kernel, o

que permite estender o método original ao caso de séries de tamanho variável

[Shimodaira 2002].

Extracção de padrões estruturados

As técnicas de descoberta de padrões na sua forma tradicional tratam os dados como

colecções não ordenadas de acontecimentos, desprezando a sua informação estrutural.

Estas técnicas centram-se tipicamente na análise dos dados existentes dentro das

transacções (intratransactional analisys), em vez de se centraram na comparação entre

transacções (intertransactional analisys).

Um exemplo paradigmático é o processamento dos cabazes de compras efectuados por

clientes em diversos instantes de tempo. De facto, as regras de associação (descritas no

capítulo 6 – Regras de Associação) apenas reflectem o conjunto de itens

transaccionados em simultâneo, não tendo em consideração os dados sobre a

sequência de transacções efectuadas por cada cliente.

Outro exemplo de vulto é a análise da estrutura de moléculas, em que se pretende

descobrir as cadeias de átomos que se apresentam frequentemente ligadas. Note-se no

entanto, que estas cadeias não são lineares, apresentando uma estrutura complexa,

aproximada a um grafo.

Naturalmente, que uma sequência é um grafo linear, sendo que a descoberta de

padrões estruturados, em sequências ou em grafos, é abordada de forma semelhante,

mas apresentando maiores desafios no segundo caso. Por essa razão, apresentam-se

as abordagens de descoberta de padrões em sequências – normalmente designadas por

sequential pattern mining, em primeiro lugar; seguida da descrição das adaptações

necessárias para a detecção de padrões em grafos.

Descoberta de padrões em sequências

O problema de extracção de padrões sequenciais foi introduzido por Agrawal e Srikant

[Agrawal 1995c] na década de noventa, e o seu aspecto mais interessante está ligado ao

facto de uma sequência ser composta por conjuntos de itens (itemsets) em vez de itens.

Se se considerar um conjunto de itens Σ={a, b}, as sequências aa, ab, ba, bb e (ab) são

todas as sequências diferentes possíveis que possuem dois itens. Note que ab significa

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

178

que ocorre um item b depois de ter ocorrido um item a, e que (ab) significa que os itens a

e b ocorreram em simultâneo. Este aspecto reveste-se de importância acrescida, na

medida em que distancia este do problema de manipulação de cadeias de símbolos

(string processing).

Assim, e à semelhança da descoberta de padrões em dados tabulares, o objectivo é

descobrir as sequências de conjuntos de itens que ocorrem um número significativo de

vezes nas sequências de uma dada base de dados, ou seja, num conjunto de

sequências. Considera-se que uma sequência s1 ocorre numa sequência s2, ou seja, que

s1 é uma subsequência de s2, se todos os elementos de s1 ocorrem na sequência s2, pela

mesma ordem. Por exemplo, abab é uma subsequência de abaaaabaa ou de a(ab)aab.

A primeira abordagem à descoberta de padrões sequenciais consistiu na adaptação do

algoritmo tradicional de descoberta de regras de associação – apriori [Agrawal 1993], ao

caso particular deste tipo de dados, e designa-se GSP [Srikant 1996]. De uma forma

sucinta, este método consiste em iterativamente descobrir os padrões ou sequências

frequentes existentes na base de dados. Por padrões ou sequências frequentes

entendem-se as sequências que têm suporte mínimo, ou seja que ocorrem um número

de vezes superior a um valor mínimo aceitável. Mais concretamente, em cada passo, o

algoritmo gera um conjunto de sequências com k elementos (Ck). Cada sequência deste

conjunto designa-se por candidato, em seguida cria-se um novo conjunto (Lk) com todos

os elementos de Ck frequentes, ou seja Lk coincide com o conjunto de sequências de

tamanho k frequentes. No passo seguinte, o conjunto Ck+1 é gerado com base nos

elementos de Lk. O algoritmo termina quando Lk não contém elementos, ou não é

possível gerar candidatos de tamanho k+1.

A alteração mais significativa face ao algoritmo apriori reside no método de geração de

candidatos. Para além de usar as sequências de tamanho k frequentes para gerar os

candidatos de tamanho k+1, a geração de novas sequências está condicionada à

combinação de sequências em que o sufixo de uma seja igual ao prefixo da outra. Por

outro lado, à semelhança do apriori, é possível ignorar os k-candidatos que contenham

alguma subsequência contígua de tamanho k-1 não-frequente, já que uma sequência de

tamanho k não é frequente a não ser que todas as suas subsequências contíguas

máximas sejam frequentes.

De um modo geral, tal como o apriori, o algoritmo GSP pode ser visto como um

algoritmo de travessia em largura, uma vez que descobrem todos os padrões de

tamanho k em simultâneo.

Considere uma base de dados composta pelas sequências de items pertencentes ao

conjunto Σ={a, b}. Se todos os arranjos de tamanho três, feitos a partir dos dois itens,

forem frequentes, o algoritmo funcionaria como ilustrado na Figura 63.

Page 98: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

179

ba

aa ab(ab) ba bb

aaa aaba(ab) (ab)a (ab)b aba abb baa babb(ab) bba bbb

1st step

2nd step

3rd step

Figura 63 – Ilustração do comportamento do algoritmo GSP

No fim da primeira iteração, teria encontrado a e b como sequências frequentes de

tamanho 1. No fim do segundo passo, teria encontrado aa, (ab), ab, ba e bb. O algoritmo

prosseguiria a sua execução gerando o conjunto de candidatos de tamanho 3 a partir da

combinação das sequências frequentes de tamanho 2, ou seja, {aaa, a(ab), aab, (ab)a,

(ab)b, aba, abb, baa, b(ab), bab, bba, bbb} e terminaria quando verificasse que nenhum dos

candidatos de tamanho 4 era frequente. Note que em cada passo, o algoritmo GSP

apenas mantém em memória os padrões descobertos e os candidatos de tamanho k.

A verificação da frequência de um candidato é a tarefa que consome mais tempo, na

medida em que é necessário fazer um varrimento à base de dados para cada um dos

candidatos. Existem duas possíveis abordagens para diminuir o tempo de descoberta

dos padrões: desenvolver algoritmos capazes de evitar a geração de candidatos ou

simplesmente diminuir significativamente o número de candidatos gerados.

O algoritmo PrefixSpan (PREFIX projected Sequential PatterN mining) [Pei 2001] é um

algoritmo que evita a geração de candidatos, actuando recursivamente em três etapas.

Em primeiro lugar procura os itens ou sequências de tamanho 1 frequentes. De seguida,

divide o espaço de procura em n partições, com n o número de itens frequentes. Cada

partição é composta pelas sequências que têm como prefixo um dos itens encontrados

no passo anterior. Com cada item e respectiva partição é criada uma projecção da base

de dados (projected databases). Finalmente, cada projecção é explorada recursivamente

do mesmo modo.

A maior vantagem do PrefixSpan é a redução do tamanho do espaço de procura, uma

vez que apenas gera e testa candidatos que existem nalguma das projecções, e cada

uma destas é substancialmente menor a cada passo. Contudo, a construção das

projecções pode ser uma operação dispendiosa se o número de sequências diferentes

for elevado.

Ao contrário dos algoritmos baseados na geração e teste de candidatos, o algoritmo

PrefixSpan traduz-se num algoritmo de travessia em profundidade, uma vez que

descobre os padrões de tamanho k+1 por crescimento dos padrões frequentes de

tamanho k, explorando cada um dos padrões isoladamente, até que cada um não possa

ser estendido. Se se considerar a base de dados anterior, o algoritmo funcionaria como

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

180

ilustrado na Figura 64.

ba

aa ab(ab)

aaa aaba(ab)

Figura 64 – Ilustração do comportamento do algoritmo PrefixSpan

No fim do primeiro passo da recursão, tal como o GSP, o PrefixSpan teria descoberto as

sequências a e b como frequentes. Mas antes de encontrar os primeiros padrões

frequentes de tamanho 3, o algoritmo PrefixSpan apenas teria descoberto os padrões

frequentes de tamanho 2 com prefixo a, ou seja {aa, (ab), ab}. Do mesmo modo, apenas

depois de encontrar os padrões com prefixo aa ({aaa, a(ab), aab}), é que exploraria os

ramos seguintes.

É através da exploração em profundidade, que o algoritmo consegue gerir de modo

eficiente a memória consumida, uma vez que em cada passo para além dos padrões

descobertos tem de manter em memória as respectivas bases de dados projectadas. De

um modo geral, o algoritmo PrefixSpan apresenta um desempenho superior ao algoritmo

GSP, sendo a diferença tanto maior quanto menor for o suporte considerado.

Um problema normalmente associado aos algoritmos de descoberta de padrões, em

geral, e de padrões sequenciais, em particular, é a falta de foco do processo e falta de

controlo por parte do utilizador, que se traduz na maioria das vezes numa proliferação de

padrões descobertos. Este problema torna-se mais grave quando o utilizador possui à

partida algumas expectativas sobre os dados.

A abordagem mais seguida para resolver este problema, é a incorporação de restrições

durante o processo de descoberta de padrões [Bayardo 2002]. Neste contexto, o

exemplo mais interessante, é a família de algoritmos SPIRIT (Sequential Pattern Mining

with Regular Expressions) proposta em [Garofalakis 1999]. Estes algoritmos são uma

adaptação do GSP, e usam expressões regulares para restringir a geração de

candidatos. Deste modo, só são descobertos padrões que satisfazem as expectativas do

utilizador, o que reduz significativamente o número de padrões descobertos, e

simultaneamente, o tempo gasto na descoberta, uma vez que o número de candidatos

gerados é menor. Contudo, dado que a maioria das expressões regulares não satisfaz a

propriedade da anti-monotonia, o processo de geração de candidatos é dificultado.

Page 99: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

181

Descoberta de padrões em grafos

A descoberta de padrões em grafos teve a sua primeira abordagem na década de

oitenta, com a análise das estruturas frequentes de compostos químicos através do

sistema CASE [Klopman 1984]. Mas apenas recentemente, com abordagens baseadas

em descoberta de padrões em transacções, foi possível detectar estruturas mais ricas,

como grafos com ciclos.

Os grafos são estruturas de dados compostos por nós e arcos, com estes últimos a

estabelecer relações entre os primeiros. Sem perda de generalidade, na formulação do

problema de descoberta de padrões é ainda considerado que cada nó e cada arco são

rotulados.

Assim, dado um conjunto de dados representados como grafos e um valor de suporte

mínimo, o objectivo é descobrir os padrões estruturados máximos (grafos máximos

ligados) que ocorrem frequentemente naquele conjunto de dados. Note-se que o

objectivo da descoberta de padrões estruturados é essencialmente o mesmo que na

descoberta de padrões tradicional. No entanto, a existência de uma estrutura específica

e a possibilidade de os arcos serem rotulados, introduzem novos desafios ao problema.

Repare que existe um número considerável de grafos diferentes que apresentem o

mesmo número de nós e arcos, mas que alguns destes grafos são isomorfos, ou seja,

existe uma reordenação dos nós do segundo grafo que o torna idêntico ao primeiro.

Deste modo, a descoberta dos padrões máximos exige o reconhecimento de que dois

grafos são isomorfos, para que não sejam devolvidos como sendo padrões distintos.

Ora, este reconhecimento é um problema NP-completo, o que acrescenta um nível de

complexidade adicional à detecção de padrões.

Tal como nas restantes tarefas de descoberta de padrões, existem duas abordagens ao

problema de descoberta de padrões estruturados: baseada na geração e teste de

candidatos e baseada no crescimento de padrões.

O algoritmo FSG (Frequent Sub Graph Discovery) segue a primeira abordagem, tendo

uma estrutura idêntica à do algoritmo Apriori. Em particular, o algoritmo aplica aos grafos

um tratamento semelhante ao aplicado às transacções pelo Apriori, o que equivale a

fazer corresponder os conjuntos de itens (itemsets) aos arcos dos grafos. Deste modo, a

geração dos candidatos de tamanho k+1 (grafos com k+1 arcos) resulta da adição de um

arco a um grafo de tamanho k. Em concreto, o algoritmo cria novos candidatos de

tamanho k+1 por cada par de grafos de tamanho k frequentes, sempre que estes diferem

apenas em dois arcos. No entanto, por cada um destes pares é possível gerar múltiplos

candidatos de tamanho k+1. Veja por exemplo a Figura 65, a partir dos grafos à

esquerda é possível gerar os grafos à direita.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

182

Figura 65 – Geração de candidatos no algoritmo FSG

É importante notar, que a própria geração de candidatos implica a identificação dos

pares de grafos que contém sub-grafos isomorfos (grafos que podem gerar novos

candidatos). E que para além disso, é ainda necessário identificar os grafos gerados que

são redundantes, ou seja isomorfos.

No entanto, tanto a eliminação de candidatos com sub-grafos não frequentes, como a

contagem do suporte de cada candidato, são abordados sem recorrer à identificação de

isomorfismos, através da utilização de rotulagens canónicas e do registo da lista de

grafos da base de dados que suporta cada grafo frequente, respectivamente.

Por seu lado, o algoritmo gSpan (graph-based Substructure Pattern Mining) vai mais

longe que o algoritmo anterior, transformando os grafos em sequências e aplicando o

algoritmo PrefixSpan para detectar os padrões frequentes. É pois a transformação dos

grafos em sequências o fulcral neste algoritmo. Esta transformação é baseada na ordem

temporal da travessia de um grafo segundo a estratégia de “em profundidade primeiro”.

Naturalmente, que com a existência de ciclos, existem múltiplas ordenações possíveis,

pelo que o algoritmo identifica a ordem mínima, e cria um código baseado nessa ordem

para transformar os grafos nas respectivas sequências.

À semelhança da descoberta de padrões sequenciais, os algoritmos de crescimento de

padrões, em geral, e o gSpan em particular, apresentam desempenhos mais

competitivos. No entanto, é de notar que o algoritmo gSpan necessita de quantidades de

memória significativamente menores do que o algoritmo FSG, uma vez que evita a

geração dos múltiplos candidatos.

Exploração de texto

De entre o tipo de dados que traz desafios extraordinários à aplicação de técnicas de

data mining, o texto é sem dúvida um dos mais relevantes. Esta relevância é não só

devida às dificuldades inerentes à sua falta de estrutura, mas também devido à sua

importância na civilização ocidental, sendo uma das suas pedras basilares.

Neste contexto, é impensável que se ignorasse por mais tempo este tipo de dados,

tendo assumido um papel quase central, na investigação no domínio do data mining e

áreas afins, na última década.

Page 100: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

183

Representação do texto

As dificuldades introduzidas pela exploração de texto, na perspectiva de descobrir a

informação nele escondida, estão associadas a vários aspectos da sua natureza

intrínseca. O primeiro a destacar é a sua estrutura, uma vez que um texto é apenas uma

sequência de palavras, de tamanho ilimitado. O segundo aspecto importante está

relacionado com as palavras, ou melhor, os elementos da sequência: cada palavra pode

ter diferentes significados (palavras homógrafas) e podem referenciar entidades

(exemplo dos pronomes). Ora, qualquer destas situações é trivial de ser analisada por

um humano, leitor da língua em que o texto está escrito, mas de difícil resolução por

parte de um método automático. E, dado o papel do texto na nossa sociedade, qualquer

método semi-automático não é escalável, e portanto pouco interessante.

De modo a ultrapassar aquelas dificuldades, o mais frequente é transformar cada texto

num vector de termos (designados por index terms), atribuindo a cada termo uma

valoração associada à sua importância no texto. Assim, um texto de várias páginas

passa a ser representado por um único vector, com tantos elementos quanto se queira, e

cada elemento do vector é composto por um par (palavra, valor), sendo habitual

assumir-se que os termos são mutuamente independentes. A diferença entre as várias

abordagens está simplesmente na natureza do valor associado ao termo, podendo ser

um valor Booleano (modelo Booleano) que indica a presença ou ausência do termo, um

valor numérico que traduz a frequência absoluta da palavra no texto (modelo vectorial)

ou um valor entre zero e um, traduzindo a probabilidade de ocorrência da palavra

(modelo probabilístico).

Naturalmente, que a transformação do texto num único vector se traduz numa perda de

informação (por exemplo, a beleza intrínseca a um texto literário). O desafio passa

essencialmente por minimizar aquela perda, mantendo o menor número de termos

possível. Assim, é essencial que a transformação siga um processo simples, mas

eficiente e eficaz, que vai desde a análise léxica e sintáctica do texto, até à sua análise

semântica, com a identificação de nomes próprios e significados. Enquanto que a

segunda etapa é de difícil automatização, o processamento léxico e sintáctico segue

uma cadeia de passos bem definida, constituída por quatro elementos.

O primeiro passo (designado tokenization) consiste na identificação das palavras

existentes no texto, passando pela eliminação de todos os sinais de pontuação. No fim

desta etapa, o texto passa a ser uma cadeia de palavras separadas por espaços. Na

segunda etapa – a etapa de filtragem, o objectivo é descartar as palavras pouco

discriminantes, tais como artigos, proposições e conjunções, assim como alguns verbos,

advérbios e adjectivos. A terceira etapa (designada stemming) substitui cada palavra

pela sua raiz gramatical (stem), por exemplo cada nome comum no plural é substituído

pelo mesmo no singular, e cada forma verbal substituída pelo verbo correspondente. Por

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

184

fim, a etapa de selecção de termos consiste na identificação das palavras que melhor

descrevem o texto original, o que passa naturalmente pela contagem do número de

ocorrências dessas palavras, e na determinação das mais discriminantes. De entre as

estratégias usadas nesta determinação, destaca-se a utilização da medida de entropia

para avaliar cada palavra. Note-se que no fim do processo, a maioria das palavras

existentes correspondem a nomes.

Aplicação de operações

O processamento do texto de forma a reduzi-lo a um vector de termos discriminantes

possibilita a aplicação quase directa de qualquer uma das técnicas tradicionais de data

mining.

Ao nível da classificação, neste contexto também designada por categorização, o

objectivo é identificar o tópico descrito no texto, de entre um conjunto de tópicos

previamente definidos. Sendo esta a formulação habitual de um problema de

classificação, é ainda possível atribuir um texto a mais do que uma classe ou tópico

(multi-label text classification) ou determinar a probabilidade do texto pertencer a cada

uma das classes consideradas (ranking). Surpreendentemente, as abordagens mais

simples, como a utilização do método dos vizinhos mais próximos e o classificador de

naïve Bayes, obtêm resultados muito próximos dos obtidos com classificadores mais

elaborados como as máquinas de vectores de suporte. A Tabela 23 mostra os resultados

obtidos na classificação de um conjunto de textos da Reuters, habitualmente utilizado

pela comunidade científica para avaliar os resultados obtidos pelos diferentes

classificadores.

Tabela 23 – Precisão (accuracy) de diferentes classificadores aplicados a texto

Classificador Precisão

K-vizinhos mais próximos 0,856

Naïve Bayes 0,795

Árvores de Decisão (C4.5) 0,794

Máquinas de Vectores de Suporte 0,870

Neste contexto, a avaliação é feita sobre os resultados obtidos individualmente em cada

classe, e baseia-se essencialmente na determinação da fracção de textos correctamente

classificados na classe (ou seja, a fracção de verdadeiros positivos face a todas as

instâncias classificadas na classe), e que é habitualmente designada precision, e a

percentagem de textos reconhecidos na classe (ou seja, a fracção de verdadeiros

Page 101: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

185

positivos face a todos os positivos), medida designada por recall. As duas medidas são

dadas pela Expressão 92.

ii

ic

ii

ic FNTP

TPcallRe

FPTP

TPecisionPr

ii +=

+=

Expressão 92 – Precision e recall para cada uma das classes

Ao nível da segmentação (clustering), o objectivo é identificar subconjuntos de textos

que apresentem características semelhantes, tal como na formulação tradicional. Assim,

as abordagens a aplicar são as tradicionais. No entanto, a avaliação dos resultados é

frequentemente feita com base em abordagens comparativas (referidas no capítulo 7),

sendo a f-measure a medida mais usual (Expressão 93).

)P(allecR)P(cisionPre

)P(allRec)P(cisionPremax

|D|

|c|),(measureF

cc

cc

cP +

=− ∑∈

2

C

PCP

Expressão 93 – F-measure para a avaliação dos segmentos encontrados

Exploração da Web

Se é verdade que o texto é o suporte da cultura ocidental, não é menos verdade que a

Web se tornou num meio privilegiado da sua divulgação nos últimos anos. Esta realidade

deve-se não só à extensão da Web, mas também à riqueza de conteúdos que

acompanham o texto, tais como imagens, sons ou vídeos, e à sua natureza interactiva,

permitindo ao utilizador manipular, ou até mesmo controlar, o processo de interacção.

Escondida na sua riqueza, existe uma imensidão de informação disponível e de

informação que se pode recolher durante a interacção do utilizador. Em concreto, podem

distinguir-se três diferentes tipos de informação: a informação associada aos conteúdos

disponibilizados, a informação associada ao processo de interacção do utilizador com a

Web, e finalmente, a informação associada à estrutura da própria Web, ou seja, das

ligações entre os vários documentos e serviços ali disponíveis.

A seguir descrevem-se sucintamente as abordagens mais relevantes seguidas para

explorar cada um daqueles tipos de informação.

Descoberta de conteúdo

O primeiro grande desafio na exploração da Web traduz-se na identificação da

informação intrínseca aos documentos disponibilizados, que como já foi referido são

constituídos por textos, imagens, sons e vídeos.

Naturalmente que as técnicas descritas na secção anterior são as utilizadas para

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

186

processar o texto aqui existente, e que os restantes suportes são explorados usando

técnicas específicas, como as trabalhadas na área do processamento de imagem, do

processamento de sinal (incluindo som e vídeo), e do reconhecimento de padrões. A

exploração deste tipo de conteúdos é muitas vezes designada por multimedia data

mining.

Para além destes conteúdos há ainda a referir as próprias páginas HTML que suportam

os diversos conteúdos. Estas por si só contêm informação, uma vez que a organização

das páginas estabelece a importância dos diferentes componentes. Por exemplo, um

elemento identificado por um identificador H1 tem (por princípio) mais relevância para o

conteúdo do documento do que outro identificado por um identificador H2. Este tipo de

análise é muitas vezes designado por extracção de informação (information extraction)

e pretende recolher os dados disponibilizados, habitualmente de um formato não fixo

para um formato fixo, por exemplo uma base de dados.

A extracção de informação recorre essencialmente a regras ou padrões de extracção

que descrevem o formato específico de cada elemento a extrair, e os sistemas de

extracção de informação centram-se, essencialmente, na aprendizagem daqueles

padrões. Considere por exemplo as páginas dos colaboradores de uma organização. É

usual que apresentem o nome, a categoria, e outros elementos identificativos, seguindo

uma estrutura comum. Usando o conhecimento desta estrutura é pois possível recuperar

os diferentes elementos e construir e preencher uma ou mais tabelas de uma base de

dados.

O sistema WHISK [Soderland 1999] é exemplificativo dos sistemas dedicados à

extracção de informação. Este sistema utiliza expressões regulares para descrever os

padrões de informação a extrair, compreendendo duas componentes: a primeira que

descreve o contexto que engloba os dados relevantes e a segunda que especifica os

delimitadores daqueles dados. Por exemplo, a Expressão 94 permite ignorar todo o

hipertexto no documento até encontrar o identificador <H1>, e extrair o texto até

encontrar o delimitador </H1>, em seguida ignora todo o texto até encontrar o

identificador <H2>, e volta a extrair o texto até encontrar o novo delimitador (</H2>).

Expressões semelhantes a esta poderiam ser aprendidas pelo sistema WHISK, em

documentos referentes ao exemplo anterior, permitindo a identificação do nome e

categoria dos colaboradores de uma organização.

* ‘<H1> ( nome ) ‘</H1>’*’<H2>’ ( categoria ) ‘</H2>’

Expressão 94 – Expressão regular exemplificativa de um padrão de extracção

Descoberta da estrutura

A segunda oportunidade de informação oferecida pela Web traduz-se na sua estrutura,

Page 102: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

187

ou seja, na rede de ligações existentes entre as diversas páginas. Ao descobrir esta

estrutura torna-se possível identificar páginas relacionadas, quer referentes a um mesmo

site, quer referentes a sites relacionados. Este assunto tem sido abordado no que diz

respeito à identificação de comunidades Web, que se traduz pela segmentação de um

conjunto de páginas Web de modo a obter conjuntos de páginas inter-relacionadas.

Um dos primeiros esforços para identificação de comunidades traduziu-se no algoritmo

HITS (Hypertext Induced Topic Search) [Kleinberg 1998] que tenta identificar

comunidades ao encontrar as páginas mais relevantes para um tópico específico,

introduzindo as noções de autoridade (authority) e de hub. Neste contexto, uma

comunidade é definida como um conjunto de páginas de autoridade ligadas por páginas

hub. Uma página é considerada uma página de autoridade, se existirem muitas

ligações de entrada para si em páginas hub fortes, e é considerada uma página hub

forte, se for referenciada por várias páginas de autoridade. Note-se o reforço mútuo

entre os dois conceitos.

De modo a fazer a identificação de comunidades, o algoritmo representa a estrutura da

rede de ligações da Web como um grafo direccionado G=(A, E), em que os nós (vértices

do grafo – conjunto A) representam as várias páginas e os arcos (conjunto E)

correspondem às ligações (hyperlinks) entre as páginas (uma ligação da página p para a

página q é representada por (p,q)). A cada nó p do grafo são atribuídos dois pesos, o

peso de autoridade xp e o peso hub yp, ambos iniciados com o valor 1. Em cada iteração,

o algoritmo actualiza o valor de cada peso de acordo com a Expressão 95, em que se

uma página p apresenta ligações para muitas páginas qi com pesos xqi elevados então

vê o seu peso yp incrementado, se pelo contrário, p é apontada por muitas páginas qi

com pesos yqi elevados então obtém um peso xp elevado.

∑∑∈∈

←←E)q,p(:qqp

E)p,q(:qqp xyyx

Expressão 95 – Fórmulas de actualização dos pesos no algoritmo HITS

No fim de cada iteração, os valores de cada peso são normalizados de modo a que a

soma de todos os pesos do mesmo tipo seja igual a um. O algoritmo termina com a

convergência de todos os pesos de cada página, ou seja, quando não se verificam

alterações significativas (maiores do que um valor limiar) em nenhum dos pesos. As

páginas com pesos de autoridade e pesos hub mais altos são identificadas como

páginas authority e páginas hub, respectivamente.

À semelhança do algoritmo HITS, o algoritmo PageRank [Brin 1998] usado no bem

sucedido motor de pesquisa Google, utiliza apenas as ligações existentes nas páginas e

para páginas para as classificar. No entanto, a qualidade de uma página é determinada

segundo uma perspectiva democrática, em que uma ligação de uma página x para uma

página y é visto como um voto de x em y, e o prestígio de x irá influenciar directamente o

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

188

prestígio de y. Novamente, a Web é representada por um grafo direccionado e a

pontuação de cada página i, P(i) é dada pela Expressão 96, em que Oj expressa o

número de ligações existentes na página j, de modo a distribuir o prestígio da página por

todas as páginas para as quais contém uma ligação.

∑∈

←E)i,j( jO

)j(P)i(P

Expressão 96 – Fórmula para o prestígio de uma página no algoritmo PageRank

É de salientar que os algoritmos descritos apenas utilizam os dados nas próprias

páginas (mais precisamente as ligações), não recorrendo a nenhuma outra informação

ou dados. Mais recentemente, foram propostas várias extensões ao algoritmo de modo a

enriquecê-lo com dados resultantes de motores de recuperação de informação

(information retrieval). Veja-se por exemplo os trabalhos de Ng, Zheng e Jordan

[Ng 2001] e de Richardson e Domingos [Richardson 2002].

Descoberta de modos de utilização

Por último, os dados resultantes da interacção do utilizador com a Web apresentam-se

como uma fonte de dados inesgotável e riquíssima, que reflectem tanto os interesses

dos utilizadores, como as suas características mais intrínsecas.

Na verdade, a exploração dos registos da interacção do utilizador com as páginas, que

inclui logs de acessos, dados sobre a sessão, clicks, etc., permitem, num primeiro passo,

detectar padrões frequentes de utilização, e num segundo identificar perfis de

utilizadores.

Desta forma, a exploração destes dados permitem a reengenharia das páginas, de modo

a optimizá-las tanto do ponto de vista do próprio utilizador, como segundo os interesses

do seu fornecedor. Se ao utilizador interessa aumentar a eficiência de navegação, tendo

acesso mais rápido à página pretendida, ao fornecedor interessa mostrar os seus

produtos ou serviços (incluindo publicidade), o mais amplamente possível.

Os métodos usados nesta exploração não são muito diferentes dos métodos de

descoberta de padrões sequenciais, mas dada a especificidade dos dados

(habitualmente representados por sequências de páginas visitadas – logs) aqueles

algoritmos podem ser optimizados, obtendo melhores desempenhos.

De entre estes métodos, destacam-se o WAP-Mine [Pei 2000] e o CS-Mine [Zhou 2004],

que constroem uma WAP-Tree (estrutura semelhante à FP-tree descrita no capítulo 6) e

que apresentam um funcionamento semelhante ao PrefixSpan descrito na secção de

Extracção de padrões estruturados deste capítulo.

Page 103: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

189

Exploração de data streams

Todas as abordagens descritas, desde as tradicionais até aos novos desafios discutidos,

lidam com conjuntos estáticos de dados, ou seja com quantidades fixas e imutáveis de

dados. Nesse contexto, os modelos são descobertos uma única vez, sendo que a

chegada de novos dados implica a redescoberta completa dos modelos, descartando a

informação descoberta até então.

De modo a evitar esta situação, mais recentemente, os métodos tradicionais de data

mining começaram a ser adaptados para que consigam lidar com a actualização dos

modelos, sempre que estão na presença de fluxos de dados contínuos e infinitos,

habitualmente designados por data streams.

Aliado às características de continuidade e de infinitude, é habitual que estes fluxos

contenham grandes quantidades de registos (dados), que dificultam (se não

impossibilitam) quer a sua transmissão aos métodos, quer a sua computação, quer o seu

armazenamento. Neste contexto, é essencial que os sistemas de descoberta de

informação funcionem em permanência, processando os dados à medida que vão

chegando ao sistema, e de modo a incorporar todo o seu contributo no modelo

descoberto até ao momento. De modo a atingir este objectivo, os novos sistemas estão

sujeitos a várias condicionantes, entre elas: requerer pequenas porções de tempo por

registo, analisar cada registo uma única vez, necessitar de quantidades de memória

fixas, disponibilizar o modelo descoberto e actual a qualquer momento, modelo este que

deve ser equivalente ao obtido através dos métodos tradicionais quando aplicados os

dados já conhecidos.

Um outro aspecto interessante, associado aos fluxos contínuos de dados, é o facto de

que os dados sofrem alterações ao longo do tempo. Ora naturalmente, os modelos

construídos face a conjuntos de dados estáticos não contemplam estas alterações, mas

é fundamental que as actualizações efectuadas nos modelos criados perante os fluxos

contínuos reflictam aquelas alterações.

Actualização de modelos de classificação

Na presença de tais restrições, nomeadamente ao nível do não armazenamento dos

registos e do seu processamento numa única consulta, o processo de classificação

torna-se mais difícil, uma vez que a maioria dos métodos estudados exige múltiplas

consultas a cada um dos registos, o que necessariamente obriga ao seu

armazenamento. As excepções evidentes a este cenário são os métodos Bayesianos e

as máquinas de vectores de suporte.

Na verdade, a adaptação do naïve Bayes ou mesmo das Redes de Bayes (quando a sua

topologia é conhecida) ao processamento de fluxos contínuos de dados, traduz-se

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

190

apenas na manutenção actualizada dos valores das probabilidades apriori e a posteriori

para os registos processados até ao momento, o que envolve exclusivamente a

contabilização dos registos de acordo com as suas características (combinação dos

diversos valores dos atributos). Note-se que a presença deste tipo de dados não altera

nem o tempo gasto no processamento dos registos, nem as quantidades de memória

necessárias. Quanto à actualização do modelo em cada instante, é também ela

verificada, uma vez que as probabilidades determinadas neste caso, são exactamente

as mesmas que as calculadas para um conjunto estático constituído pelos mesmos

dados.

Quanto aos classificadores por máquinas de vectores de suporte, e caso a natureza dos

dados seja conhecida, não é difícil conceber um procedimento para determinação dos

vectores de suporte para o fluxo contínuo de dados, que passe somente pela

actualização dos vectores de suporte para o conjunto [Domeniconi 2001]. Visto que

estes vectores são os registos que determinam o hiperplano de margem máxima, o que

corresponde aos registos mais próximos desse hiperplano, é apenas necessário

comparar os novos registos com os vectores já encontrados e substituir estes últimos

pelos novos que melhor definam o classificador. No caso em que a natureza dos dados

seja conhecida, ou seja, em que se conhece o kernel a aplicar aos dados para que o

problema seja tratável, o problema fica reduzido à sucessiva determinação do hiperplano

de margem máxima, o que naturalmente requer tempo de processamento significativo,

mas que pode ser minimizado caso sejam processadas quantidades significativas de

registos de uma só vez.

Repare-se que tantos os classificadores por máquinas de vectores de suporte como os

classificadores Bayesianos para data streams são exactamente equivalentes aos

encontrados para os conjuntos estáticos de dados equivalentes, não se cometendo

nenhum erro adicional na sua modelação. Pelo contrário, a adaptação dos métodos de

determinação de árvores de decisão, torna os novos classificadores sujeitos a um erro,

quando comparados com as árvores de decisão determinadas a partir de um conjunto

estático de dados.

O método central da determinação de árvores de decisão a partir de fluxos de dados

contínuos é o algoritmo VFDT (Very Fast Decision Trees), da autoria de Pedro Domingos

[Domingos 2000]. Ao contrário dos métodos tradicionais de árvores de decisão, este

método utiliza apenas um subconjunto das instâncias de treino para determinar o melhor

atributo a testar em cada nó. Assim, as primeiras instâncias do fluxo de dados são

usadas para determinar o atributo a ser testado na raiz da árvore, e as instâncias

seguintes para determinar os nós dos níveis posteriores da árvore. Um aspecto

importante a realçar, é que é possível determinar o número de instâncias necessárias

para escolher o atributo a testar. De facto, é possível garantir que com grande

probabilidade se escolhe o mesmo atributo usando um número limitado ou infinito de

Page 104: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

191

instâncias. Este resultado é conhecido como limiar de Hoeffding (Hoeffding bound), e é

ele que permite restringir o erro cometido pelas novas árvores de decisão quando

comparadas com as obtidas em dados estáticos. Naturalmente quanto maior é a

confiança (1-δ) que o atributo é o melhor, maior é o número de instâncias (n) necessárias

para determinar cada nó (relação dada pela Expressão 97, em que R representa o

espectro de uma variável aleatória que represente as instâncias de treino e ε o erro

permitido).

)log()R(nn

)ln(R

δε=⇔δ←ε 22

1

2

1

2

2

Expressão 97 – Limiar de Hoeffding

Note-se que, à semelhança dos classificadores Bayesianos, apenas é necessário

registar o número de instâncias já consultadas para cada combinação de valores de

atributos. Pois estas contagens são as necessárias e suficientes para determinar os

melhores atributos, usando qualquer dos critérios definidos anteriormente (ganho de

informação, split info ou índice de gini).

Visto que o método proposto não revê a árvore criada até ao momento, não é possível

reflectir as alterações registadas nos dados oriundos de fluxos contínuos. De modo a

responder a este desafio, os mesmos autores propuseram o algoritmo CVFDT (Concept-

adapting Very Fast Decision Tree) [Hulten 2001]. Este algoritmo estende o método

anterior criando sub-árvores alternativas, e fazendo as substituições necessárias sempre

que estas apresentem maior precisão do que as sub-árvores consideradas.

À semelhança de outros métodos usados para abordar as alterações verificadas nos

dados, o algoritmo CVFDT baseia-se no conceito de janelas deslizantes (sliding

windows), que concentram a atenção dos métodos em porções de dados específicas,

ignorando os restantes dados. Em concreto, este método vai incrementando os

contadores à medida que consulta as sucessivas instâncias de treino e decrementando

os mesmos contadores à medida que as instâncias consultadas vão saindo da janela

considerada.

Actualização de regras de associação

A descoberta de regras de associação, ou melhor de padrões frequentes, segue uma

abordagem semelhante, assumindo que a existência de um pequeno erro na

determinação dos padrões não é significativa. Esta necessidade verifica-se devido ao

enorme número de diferentes itens habitualmente existentes em dados reais (por

exemplo o número de produtos vendidos, ou o número de páginas visitadas). Ora, a

memória gasta para registar cada um destes itens e o seu número de ocorrências,

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

192

seguida pelo registo das várias combinações possíveis (mesmo que só as ocorridas)

tornariam os métodos incomportáveis em termos de armazenamento.

A abordagem mais simples, e pioneira nesta área, traduziu-se no algoritmo

LossyCounting [Manku 2002], que segue uma abordagem baseada na geração e teste

de candidatos, mas seguindo uma estratégia em profundidade primeiro. De modo a

optimizar a descoberta de padrões, o algoritmo processa lotes de transacções, e não

cada uma das transacções separadamente. Assim, perante o primeiro lote de

transacções, o algoritmo descobre o conjunto de padrões frequentes, que passa como

parâmetro para o passo seguinte. Perante o segundo lote de transacções, o algoritmo

actualiza os contadores de cada um dos padrões descobertos no passo anterior e cria os

novos padrões e respectivos contadores verificados no novo lote. Ora, uma vez que

perante cada lote, o método descarta os conjuntos de itens não frequentes, não os

propagando para os lotes seguintes, são descartados alguns padrões, que apesar de

não terem suporte suficiente num lote, podem tê-lo no conjunto de vários lotes.

A outra abordagem que merece algum destaque – o algoritmo FPstream

[Giannella 2003], é naturalmente baseada no crescimento de padrões, e armazena os

padrões descobertos numa árvore de padrões frequentes (FPTree), de modo

semelhante ao algoritmo FP-growth (descrito no capítulo 6 – Regras de Associação). À

semelhança do método anterior, sempre que tenha sido processado um lote, a árvore é

percorrida descartando os padrões não frequentes.

Em ambos os casos, de modo a minimizar o erro cometido, os métodos não descartam

todos os padrões não frequentes, mantendo em memória os que apresentam um suporte

suficientemente próximo do exigido para serem considerados frequentes. Desta forma, é

possível limitar o erro cometido. Também em ambos os casos, as alterações verificadas

nos fluxos de dados são tratadas de forma semelhante, considerando janelas de tempo,

e associando aos padrões encontrados o identificador do lote em que se verificou a sua

frequência, e descartando os padrões que não têm apresentado ocorrências nos lotes

mais recentes.

Descoberta guiada por conhecimento de domínio

Apesar dos avanços registados na área de data mining, os esforços têm-se concentrado

essencialmente no desenvolvimento e aperfeiçoamento de métodos rápidos que

descubram informação a partir exclusivamente dos dados, ignorando todo e qualquer

conhecimento de domínio existente. Uma excepção a referir é o trabalho realizado no

campo da programação em lógica indutiva (inductive logic programming – ILP), que tem

na sua base a utilização de formulações lógicas para abordar os problemas. No entanto,

é difícil encarar a ILP como uma técnica de data mining, visto que a maioria das suas

aplicações limitam-se a problemas de pequena dimensão, sem correspondentes nas

Page 105: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

193

situações reais.

Apesar desta escassez, é inegável que vários trabalhos têm reclamado a inclusão de

conhecimento de domínio no processo de descoberta de informação; no entanto, a

maioria resume-se a ferramentas que atribuem o controlo do processo ao utilizador,

assegurando que as decisões são tomadas por estes, que podem utilizar o seu

conhecimento do domínio para melhor actuar. Ora, esta abordagem apenas pode ser

explorada convenientemente por peritos, uma vez que o conhecimento de domínio não é

integrado no sistema. Da mesma forma, ferramentas que se baseiam em algoritmos

optimizados pela exploração de conhecimento de domínio existente, como é o caso do

trabalho de Sondhauss e Weihs [Sondhauss 2004], apesar de obterem resultados mais

interessantes, continuam a não representar o conhecimento de uma forma explícita que

possa ser facilmente actualizado ou corrigido.

De entre os sistemas de descoberta de informação que verdadeiramente exploram o

conhecimento de domínio existente, incorporando-o explicitamente no seu interior,

destacam-se os que utilizam restrições, e mais recentemente os que fazem uso de

ontologias para representar aquele conhecimento.

Utilização de restrições

A utilização de restrições como forma de limitar o espaço de procura dos sistemas

informáticos, é uma realidade há largos anos, e no âmbito da descoberta de informação

tem sido igualmente explorada [Bayardo 2005]. Em grande parte das situações, as

restrições representam as expectativas do utilizador face aos resultados, e permitem

guiar o processo de descoberta para espaços de procura mais limitados, encontrando

assim soluções mais próximas das esperadas pelo utilizador. Também neste contexto, e

apesar das suas potencialidades, muitas vezes, as restrições não são usadas para

representar explicitamente o conhecimento existente, mas tão só para restringir o âmbito

da procura, veja-se por exemplo o trabalho de Feldman e Hirsh [Feldman 1996], na

identificação de regras de associação em texto ou os trabalhos na descoberta de

padrões, em que maioritariamente se estabelecem valores limiares quanto ao interesse

dos padrões a descobrir, como é o caso do suporte, a confiança e outras medidas de

interesse [Bayardo 1999].

Outros casos há mais interessantes, em que as restrições tentam representar o

conhecimento, ou parte do conhecimento, existente. Nestes casos, o mais frequente é

recorrer a linguagens de declaração das restrições específicas ao domínio, ou no melhor

caso, baseadas em lógica de primeira ordem. Um exemplo paradigmático é o trabalho

de Srikant no âmbito da descoberta de regras de associação, que estabelece as regras

de interesse para o utilizador com base nos itens presentes. Através da introdução de

uma expressão Booleana, o utilizador pode especificar que só está interessado nas

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

194

regras que envolvam ou excluam algum item em particular [Srikant 1997]. Na sequência

deste trabalho, várias abordagens têm sido seguidas, com particular interesse no campo

da descoberta de padrões sequenciais.

De entre as abordagens mais promissoras, encontra-se a família de algoritmos SPIRIT

que utilizam autómatos finitos (DFAs) para representar o conhecimento existente e

simultaneamente restringir a procura de padrões [Garofalakis 1999]. Mais recentemente,

mostrou-se que a utilização de linguagens mais poderosas, por exemplo definidas por

gramáticas livres de contexto [Antunes 2002], apesar de tornarem o processo mais lento

não o inviabilizam, tornando assim possível uma representação mais rica do

conhecimento existente. Todavia, a utilização destes mecanismos tornou claro que a

utilização de restrições desta natureza aproximam, significativamente, o processo de

descoberta de informação de um simples teste de hipóteses [Hipp 2002]. Com o intuito

de contornar esta situação, foi proposta a utilização de relaxamentos de restrições

[Antunes 2004b]. Na verdade, estes relaxamentos são também restrições, mas definidas

global e independentemente do conhecimento representado; por exemplo, é possível

fazer uso das restrições aproximadas, que aceitam como padrões os que estão de

acordo com o conhecimento de domínio representado, a menos de um erro definido pelo

utilizador. Deste modo, torna-se viável a descoberta de conhecimento ainda

desconhecido, mas continuando a focar o processo num espaço de procura mais

reduzido.

Utilização de ontologias

Apesar das dificuldades envolvidas na exploração do conhecimento de domínio em

situações reais, os desenvolvimentos verificados na área de representação de

conhecimento, nomeadamente no que diz respeito à definição e construção de

ontologias, têm tornado viável a sua exploração no contexto da descoberta de

informação a partir dos dados registados em bases de dados.

As primeiras contribuições na área da descoberta de informação exploraram uma das

formas mais simples de representar o conhecimento de domínio – as taxonomias. No

âmbito da descoberta de padrões foi Srikant uma vez o primeiro a utilizar taxonomias

para descobrir o que designou por padrões gerais [Srikant 1995]. Os padrões gerais

reflectem os diferentes níveis de abstracção descritos na taxonomia, podendo-se

representar o mesmo padrão a diferentes níveis. No âmbito da classificação, o

classificador AVT-NBL [Zhang 2004] faz também uso de uma taxonomia para generalizar

o classificador de naïve Bayes, tornando-o mais preciso e compacto.

Com a divulgação generalizada das ontologias na última década, várias têm sido as

abordagens propostas para a sua incorporação no processo de descoberta de

informação. Por exemplo, o trabalho de Češpivová [Češpivová 2004] mostra que estes

Page 106: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Capítulo 9 – Novos Desafios

195

formalismos podem dar um contributo significativo em todas as etapas do processo de

descoberta de informação, desde o pré-processamento (veja-se o trabalho de Euler

[Euler 2004] ou de Jaroszewicz [Jaroszewicz 2004]) até ao pós-processamento (por

exemplo [Vanzin 2004]).

Uma ontologia é uma especificação de uma conceptualização, ou por outras palavras,

uma especificação de uma visão simplificada e abstracta de um domínio [Gruber 1998].

Formalmente pode ser vista como um 5-tuplo, composto por um conjunto de conceitos

que representam as entidades do domínio, um conjunto de relações definidas entre os

conceitos, uma taxonomia que relaciona os diferentes conceitos, uma função que

especifica o domínio e contradomínio de cada relação declarada, e um conjunto de

axiomas, tipicamente expresso numa linguagem formal, que descreve explicitamente as

restrições de domínio conhecidas [Maedche 2002]. A par das ontologias surgem as

bases de conhecimento, que especificam as instanciações de uma ontologia em

particular, e que portanto podem ser vistas como um 4-tuplo constituído por uma

ontologia, um conjunto de instâncias, e duas funções: uma que estabelece que conceito

é instanciado por uma dada instância, e uma segunda função que faz a instanciação das

relações da ontologia perante as instâncias conhecidas. De um modo simplificado pode

dizer-se que, “enquanto que as ontologias tentam capturar as estruturas conceptuais de

um domínio, a base de conhecimento define o conjunto de elementos que podem ser

interpretados e compreendidos no contexto da ontologia” [Maedche 2002].

Novamente no campo da descoberta de padrões, a utilização de ontologias, ou melhor,

de bases de conhecimento, foi explorada na plataforma Onto4AR [Antunes 2007]. Nesta

plataforma, é possível utilizar restrições definidas com base no conhecimento de domínio

representado numa ontologia, e descobrir os padrões que as satisfazem, de acordo com

as instanciações identificadas na base de conhecimento. Note-se que a utilização do

conhecimento de domínio é feita na fase de descoberta, propriamente dita, e não para

filtrar os padrões descobertos. Uma das maiores vantagens desta plataforma reside na

forma de definir novas restrições, independentes do domínio de aplicação. No trabalho

original, foram propostas restrições baseadas quer na taxonomia quer nas relações

definidas na ontologia, variando o seu grau de constrangimento. Esta plataforma foi

aplicada na identificação de fragmentos moleculares com sucesso [Chapouto 2007],

permitindo atingir resultados semelhantes aos obtidos pela utilização de métodos mais

complexos, tais como os métodos de descoberta de padrões estruturados, descritos

anteriormente.

Sumário

Este capítulo apresenta os novos desafios enfrentados pela área de data mining,

descrevendo os problemas mais relevantes e os métodos fundamentais para a sua

resolução.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

196

De entre os tópicos abordados, dá-se uma ênfase particular às questões

relacionadas com a privacidade, dada a sua importância para a continuação do

sucesso de aplicação das técnicas de data mining sem interferir com as convicções

mais profundas dos utilizadores da sociedade da informação. Na sequência da

descrição dos fundamentos do tratamento deste tópico, descrevem-se as

dificuldades enfrentadas na exploração de séries temporais, de texto e da Web,

discutindo-se os algoritmos principais em cada uma das áreas.

Para além destes temas, descrevem-se as dificuldades associadas à extracção de

padrões estruturados, dada a sua importância na área da bioinformática e análise de

dados complexos. Não menos importante é a exploração de data streams com a

actualização da informação descoberta anteriormente, ou a descoberta de

informação guiada por conhecimento, em que se pretende fazer uso do

conhecimento de domínio existente, de modo a optimizar o processo de descoberta

de informação, quer do ponto de vista da eficiência, quer do ponto de vista da

qualidade da informação revelada.

Page 107: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

197

Referências [Adriaans 1996] P. Adriaans and D. Zantinge. Data mining. Addison-Wesley. 1996.

[Agrawal 1993] R. Agrawal, C. Faloutsos, A. Swami, “Efficient similarity search in sequence

databases”, in Proc. 4th Int’l Conf. Foundations of Data Organization and Algorithms

(FODO 93), pp. 69-84. Springer. 1993.

[Agrawal 1994] R. Agrawal, R. Srikant, “Fast Algoritms for Mining Association Rules”, in Proc. 20th

Int’l Conf. Very Large Data Bases (VLDB 94), pp. 487-499. Morgan Kaufmann. 1994.

[Agrawal 1995a] R. Agrawal et al., “Fast Similarity Search in the Presence of Noise, Scaling, and

Translation in Time-Series Databases”, in Proc. 21st Int’l Conf. Very Large Data Bases

(VLDB 95), pp. 490-501. Morgan Kaufmann. 1995.

[Agrawal 1995b] R. Agrawal et al., “Querying Shapes of Histories”, in Proc. 21st Int’l Conf. Very

Large Data Bases (VLDB 95), pp. 502-514. Morgan Kaufmann. 1995.

[Agrawal 1995c] R. Agrawal and R. Srikant, “Mining Sequential Patterns”, in Proc. 11th Int'l. Conf.

Data Engineering (ICDE 95), pp. 3-14. IEEE Press. 1995.

[Agrawal 2000] R. Agrawal, R. Srikant, "Privacy-Preserving Data mining", in ACM SIGMOD Int'l

Conf. on Management of Data, pp. 439-450. ACM Press, 2000.

[Agrawal 2002] R. Agrawal, J. Kiernan, R. Srikant, Y. Xu, "Hippocratic Databases", in 28th Int'l

Conf. on Very Large Data Bases, pp. 143 – 154. VLDB Endowment, 2002.

[Antunes 2002] C. Antunes and A. L. Oliveira. "Using Context-Free Grammars to Constrain

Apriori-based Algorithms for Mining Temporal Association Rules", in Proc. 2nd Workshop

on Temporal Data mining – Int'l Conf. Knowledge Discovery and Data mining (KDD 02),

pp. 11-24. 2002

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

198

[Antunes 2003] C. Antunes and A. L. Oliveira, "Generalization of Pattern-Growth Methods for

Sequential Pattern Mining with Gap Constraints", in Proc Int'l Conf on Machine Learning

and Data mining, pp. 239-251. Springer. 2003.

[Antunes 2004b] C. Antunes and A. L. Oliveira. "Mining Patterns Using Relaxations of User

Defined Constraints", in Proc. of 3rd Int’l Workshop on Knowledge Discovery in Inductive

Databases (KDID 2004) – Int’l Conf. Principles and Practice of Knowledge Discovery in

Databases (PKDD 04), 2004

[Antunes 2007] Antunes, C., "Onto4AR: a framework for mining association rules". Proc. Int’l

Workshop on Constraint-Based Mining and Learning (CMILE 2007), Int’l Conf. Principles

and Practice of Knowledge Discovery in Databases (PKDD 07), 2007

[Bayardo 1999] R. J. Bayardo Jr., R. Agrawal, and D. Gunopulos. Constraint-Based Rule Mining

in Large, Dense Databases. In Proc. of the 15th IEEE Int'l Conf. on Data Engineering, 188-

197, 1999

[Bayardo 2002] R.J. Bayardo, The Many Roles of Constraints in Data mining, in SIGKDD

Explorations, vol. 4, nr. 1 pp. i-ii. ACM Press. 2002

[Bayardo 2005] R. J. Bayardo Jr., “The Hows, Whys, and Whens of Constraints in Itemset and

Rule Discovery”, in Proc. of the Workshop on Inductive Databases and Constraint Based

Mining, pp. 1-13. 2005

[Berndt 1996] D. Berndt and J. Clifford, “Finding Patterns in Time Series: a Dynamic

Programming Approach”, in U.M. Fayyad, G. Piatetsky-Shapiro, P. Smyth and

R. Uthurusamy (eds.), Advances in Knowledge Discovery and Data mining, pp. 229-248.

AAAI Press. 1996.

[Berthold 1999] M. Berthold and D.J. Hand, Intelligent Data Analysis: an introduction. Springer.

1999.

[Blankertz 2002] B. Blankertz, G. Curio, K.R. Muller, “Classifying Single Trial EEG: Towards Brain

Computer Interface”, in T.G. Dietterich, S. Becker, Z. Ghahramani (eds), Advances in

Neural Information Processing Systems, vol. 14. MIT Press. 2002.

[Breiman 1984] L. Breiman, J. H. Friedman, R. A. Olshen, and C. J. Stone. Classification and

Regression Trees. Wadsworth, Belmont, 1984.

[Brin 1998] S. Brin, L. Page. “The anatomy of a large-scale hypertextual Web search engine”, in

Proc. Int’l Conf. World Wide Web, pp. 107-117. Elsevier Science Publishers, 1998.

[Češpivová 2004] Češpivová, H., Rauch, J., Vojtĕch, S., Kejkula, M. and Tomĕcková, M., Roles of

Medical Ontology in Association Mining CRISP-DM Cycle. In Proc. Workshop on

Knowledge Discovery and Ontologies. (2004). 1-12

Page 108: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Referências

199

[Chapouto 2007] Chapouto, R. AR Enrichment – Identificação de fragmentos moleculares

utilizando conhecimento de domínio, Tese de Mestrado, Instituto Superior Técnico, 2007.

[Chan 1999] K. Chan and W. Fu, “Efficient Time Series Matching by Wavelets”, in Proc. 15th Int'l

Conf. Data Engineering (ICDE 99), pp. 126-133. IEEE Press. 1999.

[Chen 1996] Chen, Ming-Syan e Jiawei Han e Philip Yu. “Data mining: An Overview from

Database Perspective”, in IEEE Transaction on Knowledge and Data Engineering, vol. 8,

nº. 6, (pg. 866-883). 1996.

[Cortez 2001] P. Cortez, M. Rocha, J. Neves, “A Meta-Genetic Algorithm for Time Series

Forecasting”, in Workshop Artificial Intelligence for Financial Time Series Analysis

(AIFTSA 01), pp. 21-30. 2001.

[Cranor 1999] L.F. Cranor, J. Reagle, M.S. Ackerman. Beyond concern: Understanding net users'

attitudes about online privacy. Technical Report TR 99.4.3, AT&T Labs Research, 1999.

[Dempster 1997] A.P.Dempster, N.M.Laird, D.B.Rubin: "Maximum Likelihood from Incomplete

Data via the EM Algorithm", in Journal of the Royal Statistical Society Series, vol. 39, pp. 1-

38, Blackwell Publishing. 1997.

[Domeniconi 2001] C. Domeniconi e D. Gunopulos, “Incremental Support Vector Machine

Construction”, in Proc. IEEE Int’l Conf. Data mining, pp. 589-592, IEEE Computer Society,

2001.

[Domingos 2000] P. Domingos, G. Hulten. “Mining high-speed data streams”, in Proc. ACM

SIGKDD Int’l Conf. on Knowledge Discovery and Data mining, pp. 71-80. ACM Press,

2000.

[Evfimievski 2002] A. Evfimievski, R. Srikant, R. Agrawal, J. Gehrke. “Privacy preserving mining

of association rules”, in Proc. ACM SIGKDD Int’l Conf. Knowledge Discovery and Data

mining, pp. 217–228. ACM Press, 2002.

[Euler 2004] Euler, T., Scholz, M., Using Ontologies in a KDD Workbench. In Proc. Workshop

Knowledge Discovery and Ontologies, pp. 103-108. 2004.

[Faloutsos 1994] C. Faloutsos, M. Ranganathan, Y. Manolopoulos, “Fast Subsequence Matching

in Time-Series Databases”, in Proc. Int'l Conf. on Management of Data, pp. 419-429. ACM

Press. 1994.

[Fama 1970] E. Fama, “Efficient Capital Markets: a review of theory and empirical work”, in

Journal of Finance, pp. 383-417. Blackwell Publishing. 1970.

[Fayyad 1996] Fayyad, U.M., G. Shapiro, P. Smyth. “From Data mining to Knowledge Discovery:

An Overview”, in Fayyad, U.M., G. Shapiro, P. Smyth, R. Uthurusamy. Advances in

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

200

Knowledge Discovery and Data mining (pg. 1-36). AAAI Press. 1996.

[Feldman 1996] Feldman, R.; Hirsh, H. “Mining Associations in Text in the Presence of Back-

ground Knowledge” in Proc. 2nd

Int’l Conf. Knowledge Discovery in Databases and Data

mining, pp. 343-346, 1996

[Fisher 1987] D. Fisher, “Knowledge Acquisition via Incremental Conceptual Clustering”, Machine

Learning, vol. 2 pp. 139-172. Kluwer. 1987.

[Fix 1951] E. Fix, J.L. Hodges, Discriminatory analysis, nonparametric discrimination. USAF

School of Aviation Medicine, Randolph Field, Tex., Project 21-49-004, Rept. 4, Contract

AF41(128)-31, 1951

[Frawley 1992] W. Frawley, G. Piatetsky-Shapiro, C. Matheus, “Knowledge discovery in

databases: an overview”, in AI Magazine, vol. 13, no. 3, pp. 57-70. AAAI Press. 1992.

[Garofalakis 1999] M. Garofalakis, R. Rastogi, K. Shim, “SPIRIT: Sequential Pattern Mining with

Regular Expression Constraint”, in Proc. Int’l Conf. Very Large Databases (VLDB 1999),

pp. 223-234. Morgan Kaufmann. 1999.

[Giannella 2003] C. Giannella, J. Han, J. Pei, X. Yan, P.S. Yu, “Mining Frequent Patterns in Data

streams at Multiple Time Granularities”, in H. Kargupta, A. Joshi, K. Sivakumar, and Y.

Yesha (eds.), Next Generation Data mining, 2003.

[Giles 2001] C. Giles, S. Lawrence, A.C. Tsoi, “Noisy Time Series Prediction using Recurrent

Neural Networks and Grammatical Inference”, in Machine Learning, vol. 44, pp. 161-184.

Kluwer. 2001.

[Gruber 1998] T.R. Gruber, "A Translation Approach to Portable Ontology Specifications", in

Knowledge Acquisition, 5(2):21-66. Academic Press. 1998.

[Han 2000a] J. Han, J. Pei, Y. Yin, “Mining Frequent Patterns without Candidate Generation”, in

Proc. Int'l Conf. on Management of Data, pp. 1-12. ACM Press. 2000.

[Han 2001a] J. Han and M. Kamber, Data mining: concepts and techniques. Morgan Kaufmann

Publishers. 2001.

[Heckerman 1996] Heckerman, D. “Bayesian Networks for Knowledge Discovery”, in Fayyad,

U.M., G. Shapiro, P. Smyth, R. Uthurusamy. Advances in Knowledge Discovery and Data

mining (pg. 273-306). AAAI Press. 1996.

[Hilderman 1999] R. Hilderman and H. Hamilton, " Knowledge discovery and interestingness

measures: a survey", Technical Report CS 99-04, Department of Computer Science,

University of Regina. 1999.

[Hipp 2002] J. Hipp, and U. Güntzer, "Is pushing constraints deeply into the mining algorithms

Page 109: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Referências

201

really what we want?", in SIGKDD Explorations, vol. 4, nr. 1, pp. 50-55. ACM Press. 2002.

[Holsheimer 1994] M. Holsheimer e A. Siebes. Data mining: the search for knowledge in

databases. Report CS-R9406, CWI. Amsterdam.1994.

[Hulten 2001] G. Hulten, L. Spencer, P. Domingos. Mining time-changing data streams. In Proc.

ACM SIGKDD Int’l Conf. on Knowledge Discovery and Data mining, pp. 97-106, San

Francisco, California, 2001. ACM Press

[Inmon 1996] W.H. Inmon, Building the Data warehouse. New York: John Wiley & Sons. 1996.

[Jain 1988] A.K. Jain, R.C. Dubes. Algorithms for clustering data. Prentice-Hall, Englewood Cliffs,

1988.

[Jaroszewicz 2004] Jaroszewicz, S., Simovici, D.; “Interestingness of Frequent Itemsets Using

Bayesian Networks as Background Knowledge”, in the Proc ACM Int’l Conf on Knowledge

Discovery and Data mining (KDD 2004), pp. 178 – 186. ACM Press. 2004.

[Kaufman 1990] L. Kaufman and P.J. Rousseeuw. Finding Groups in Data: An Introduction to

Cluster Analysis. Wiley, New York, 1990.

[Keogh 1999] E. Keogh and M. Pazzani, “Scaling up Dynamic Time Warping to Massive

Datasets”, in Proc. European Conf. Principles and Practice of Knowledge Discovery in

Databases (PKDD 99), pp. 1-11. Springer. 1999.

[Ketterlin 1997] A. Ketterlin, “Clustering Sequences of Complex Objects”, in Proc. 3rd

Int'l Conf.

Knowledge Discovery and Data mining (KDD 97), pp. 215-218. ACM Press. 1997.

[Kimball 2002a] R Kimball and M Ross, The Data warehouse Toolkit - the complete guide to

dimensional modeling, Wiley. 2002.

[Kimball 2004] R. Kimball and J. Caserta, The ETL Data warehouse Toolkit: Practical Techniques

for Extracting, Cleaning, Conforming and Delivering Data, Wiley. 2004.

[Kimball 2002b] R. Kimball and M. Ross, The Data warehouse Toolkit. Wiley, 2ª ed. 2002.

[Kleinberg 1998] J.M. Kleinberg, “Authoritative Sources in a Hyperlinked Environment”, in Proc.

ACM-SIAM Symposium on Discrete Algorithms, pp. 668 – 677. 1998

[Klopman 1984] G. Klopman. Artificial intelligence approach to structure activity studies. In

Journal of American Chemical Society, Vol.106, pp.7315-7321. 1984

[Kohavi 1998] R. Kohavi and F. Provost, "Glossary of Terms", in Spec. Issue on Apps of Machine

Learning and the KDD Process, Machine Learning Journal, 30, pp. 271-274. Kluwer. 1998.

[Laudon 2000] K. Laudon and J. Laudon, Management Information Systems, 6th edition, Prentice

Hall. 2000.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

202

[Lesh 1999] N. Lesh, M. Zaki, M. Ogihara, “Mining Features for Sequence Classification”, in Proc.

5th Int'l Conf. Knowledge Discovery and Data mining (KDD 99), pp. 342-346. ACM Press.

1999.

[Levitt 1996] M.E. Levitt, “Market-Time and Short-term Forescasting of Foreign Exchange Rates”,

in A.S. Weigend, Y. Abu-Mostafa and A.P. Refenes (eds.), Decision Technologies for

Financial Engineering, pp. 111-122. London: World Scientific Press. 1996.

[Levenshtein 1965] V. Levenshtein, “Binary Codes capable of correcting spurious insertions and

deletions of ones” in Problems of Information Transmission, 1:8-17. Kluwer Academic

Publishers. 1965.

[Maedche 2002] Maedche, A., Ontology Learning for the Semantic Web, Kluwer Publishers,

(2002)

[Manku 2002] Manku, G.S., Motwani, R. Approximate Frequency Counts over Data streams, in

Proc. Int’l Conf. on Very Large Databases (VLDB 02), pp. 346-357, Hong Kong, China,

2002

[Mannila 1999] H. Mannila, D. Pavlov, P. Smyth, “Prediction with Local Patterns using Cross-

Entropy”, in Proc. 5th Int. Conf. Knowledge Discovery and Data mining (KDD 99), pp. 357-

361. ACM Press. 1999.

[Mitchell 1997] T. Mitchell, Machine Learning. McGrawHill. 1997.

[Navarro 2001] G. Navarro, "A guided tour to approximate string matching", in ACM Computing

Surveys, vol. 33, nr. 1, pp. 31-88. ACM Press. 2001

[Ng 2001] A.Y. Ng, A.X. Zheng, M.I. Jordan, “Stable Algo-rithms for Link Analysis”, in Proc. 24th

Annual Int’l ACM SIGIR Conference, pp. 258 – 266. ACM Press. 2001

[Pei 2000] J. Pei, J. Han, B. Mortazavi-asl, and H. Zhu. “Mining Access Patterns Efficiently from

Web Logs”, in Proc 4th Pacific-Asia Conference on Knowledge Discovery and Data mining,

Current Issues and New Applications, pp. 396 - 407. Springer, 2000.

[Pei 2001] J. Pei et al., “PrefixSpan: Mining Sequential Patterns Efficiently by Prefix-Projected

Pattern Growth”, in Proc. 17th Int’l Conf. Data Engineering (ICDE 2001), pp. 215-226. IEEE

Press. 2001.

[Quinlan 1986] Quinlan, J.R. “Induction of Decision Trees”, in Machine Learning, vol. 1 (pg 81-

106). Kluwer Academic Publishers.1986.

[Quinlan 1993] J.R. Quinlan, C4.5 Programs for Machine Learning, Morgan Kaufmann, San

Mateo, CA, 1993.

[Ramakrishnan 2000] Ramakrishnan, R. e J. Gehrke. Database Management Systems. McGraw

Page 110: Data MiningData Mining e ee e Data WarehousingData ... · Criação dos modelos de dados ... Esquema em floco de neve ... Modelo geral da arquitectura técnica de uma data warehouse

Referências

203

Hill. 2000.

[Richardson 2002] M. Richardson, P. Domingos, “The Intelligent Surfer: Probabilistic Combination

of Link and Content Information in PageRank”, in Advances in Neural Information

Processing Systems, vol. 14, pp. 1441-1448, MIT Press. 2002

[Russel 1995] Russel, S. e P. Norvig. Artificial Intelligence – a modern approach. Prentice Hall

International Editions. 1995.

[Shannon 1948] C. Shannon, “A Mathematical Theory of Communication”, in The Bell System

Technical Journal, vol. 27, pp. 379–423, 1948.

[Shavlik 1990] Shavlik, J. e Dietterich, T. Readings in Machine Learning (pg. 1-10). Morgan

Kaufmann. 1990.

[Shearer 2000] C. Shearer, "The CRISP-DM Model: The New Blueprint for Data mining" Journal

of Data warehousing, vol. 5, n.º 4, pp. 13-22. Springer, 2000.

[Shimodaira 2001] H. Shimodaira et al., “Support Vector Machine with Dynamic Time-Alignment

Kernel for Speech Recognition”, in Proc. 7th European Conf. Speech Communication and

Technology (Eurospeech 01). 2001.

[Shimodaira 2002] H. Shimodaira et al., “Dynamic Time-Alignment Kernel in Support Vector

Machine”, in T.G. Dietterich, S. Becker and Z. Ghahramani (eds), Advances in Neural

Information Processing Systems, vol. 14. Cambridge: MIT Press, 2002.

[Smyth 1997] P. Smyth, “Clustering Sequences with Hidden Markov Models”, in G. Tesauro, D.

Touretzky, T. Leen (eds), Advances in Neural Information Processing Systems, vol. 9,

pp. 648-654. MIT Press. 1997.

[Smyth 1999] P. Smyth, “Probabilistic Model-Based Clustering of Multivariate and Sequential

Data”, in Proc. 7th Int’l Workshop Artificial Intelligence and Statistics, pp. 299-304. 1999

[Soderland 1999] S. Soderland, “Learning Information Extraction Rules for Semi-Structured and

Free Text”, in Machine Learning, vol. 34, pp. 233-272. Kluwer Academic Publishers. 1999

.[Sondhauss 2004] U Sondhauss, Claus Weihs, “Incorporating Background Knowledge for Better

Prediction of Cycle Phases”, in Knowledge and Information Systems Journal, vol. 6, nr. 5,

pp. 544 - 569. Springer. 2004

[Srikant 1995] R. Srikant and R Agrawal, "Mining Generalized Association Rules", in Proc. Int’l

Conf. Very Large Databases (VLDB 1995), pp. 407-419. Morgan Kaufmann. 1995.

[Srikant 1996] R. Srikant and R. Agrawal, “Mining Sequential Patterns: Generalizations and

Performance Improvements”, in Proc. 5th Int'l Conf. Extending Database Technology

(EDBT 96), pp. 3-17. Berlin: Springer. 1996.

Data Mining e Data Warehousing – da exploração de dados à descoberta de informação

204

[Srikant 1997] R. Srikant and R. Agrawal, "Mining association rules with item constraints", in Proc.

Int'l Conf Knowledge Discovery and Data mining (KDD 1997), pp. 67-73. ACM Press.

1997.

[Szeto 1996] K.Y. Szeto and K.H. Cheung, “Application of Genetic Algorithms in Stock Market

Prediction”, in A.S. Weigend, Y. Abu-Mostafa and A.P. Refenes (eds), Decision

Technologies for Financial Engineering, pp. 95-103. London: World Scientific Press. 1996.

[Vapnik 1971] V. Vapnik, A. Chervonenkis. "On the uniform convergence of relative frequencies

of events to their probabilities.", in Theory of Probability and its Applications, nr 16, vol. 2,

pp. 264--280, 1971

[Vapnik 1995] V Vapnik, The nature of statistical learning theory. Springer. 1995.

[Vanzin 2004] Vanzin, M., Becker, K., Exploiting Knowledge Representation for Pattern

Interpretation. In Proc. Workshop on Knowledge Discovery and Ontologies. 2004. 61-72

[Verykios 2004] V. Verykios, E. Betino, I. Fovino, L. Provenza, Y. Saygin, Y. Theodoridis. “State-

of-the-art in Privacy Preserving Data mining”, in SIGMOD Record, vol. 33, pp. 50-57. ACM

Press, 2004.

[Weigend 1994] A. Weigend and N. Gershenfeld, Time Series Prediction: Forecasting the Future

and Understanding the Past. Addison-Wesley. 1994.

[Westin 1999] A.F. Westin. Freebies and privacy: What net users think. Technical report, Opinion

Research Corporation, 1999.

[Witten 2000] I.H. Witten and E. Frank, Data mining Practical Machine Learning Tools and

Techniques with Java Implementations. Morgan Kaufmann. 2000.

[Yi 1998] B. Yi, H. Jagadish, C. Faloutsos, “Efficient Retrieval of Similar Time Sequences Under

Time Warping”, in Proc. 14th Int'l Conf. Data Engineering (ICDE 98), pp. 201-208. IEEE

Press. 1998.

[Zachman 1987] J. Zachman, The Zachman Framework for Enterprise Architecture. ZIFA. 1987.

[Zhang 2004] Zhang, J., Honavar, V., “AVT-NBL: an algorithm for learning compact and accurate

Naïve Bayes classifiers from Attribute Value Taxonomies and data”, in Proc IEEE Int’l

Conf on Data mining (ICDM 2004), pp. 289-296. 2004

[Zhou 2004] B. Zhou, S.C Hui, and A.C.M Fong, “CS-Mine: An Efficient WAP-Tree Mining for

Web Access Patterns”, in Advanced Web Technologies and Applications, LNCS vol. 3007,

pp. 523-532, Springer, 2004.