data miningdata mining e ee e data warehousingdata ... · criação dos modelos de dados ......
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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.
7
Part
Part
Part
Parteee e I I I I
Data
Data
Data
Data WWW W
arehousingarehousingarehousingarehousing
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:
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 (€).
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
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
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
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ó.
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.
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).
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.
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
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.
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
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
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
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.
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
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.
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
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
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
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]’
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}
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]]
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
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] )
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.
61
PartPartPartParteeee II II II II
Data Data Data Data MMMMiningininginingining
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.
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
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
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.
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
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.
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.
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.
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.)
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
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
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.
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
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
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
1µ
while while while while ¬ satisfiesTerminatingCondition()
returnreturnreturnreturn {µj: j∈{1…k}}
Algoritmo 6 – Pseudocódigo do algoritmo EM para segmentação
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
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
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.
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
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).
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).
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).
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).
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
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
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
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
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.
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
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.
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
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
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
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.
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
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
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).
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
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
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
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.
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
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
♦
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.
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
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) é
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
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
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
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;
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.
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
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
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
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
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
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é-
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.
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.
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.
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
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,
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.
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
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
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
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.
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
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
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
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.