Вы находитесь на странице: 1из 43

Tcnicas de Minerao de Dados

Sandra de Amo

Universidade Federal de Uberlndia


Faculdade de Computao
deamo@ufu.br

Abstract
Data Mining is a multidisciplinary research area, including database tecnology, articial
intelligence, machine learning, neural networks, statistics, pattern recognition, knowledge-
based systems, information retrieval, high-performance computing and data visualization.
This course is based on a database perspective and is focused on techniques for a variety of
data mining tasks. We present algorithms, optimization techniques, important application
domains and also some theoretical aspects which may help to develop algorithms for new
data mining tasks.

Resumo
Minerao de Dados uma rea de pesquisa multidisciplinar, incluindo tecnologia de ban-
cos de dados, inteligncia articial, aprendizado de mquina, redes neurais, estatstica,
reconhecimento de padres, sistemas baseados em conhecimento, recuperao da infor-
mao, computao de alto desempenho e visualizao de dados. Este curso baseado em
um perspectiva de banco de dados e focalizado sobretudo sobre as tcnicas para realizar
uma grande variedade de tarefas de minerao. Apresentamos algoritmos, tcnicas de
otimizao, importantes domnios de aplicao e tambm alguns aspectos tericos da rea
que podem ajudar no desenvolvimento de algoritmos para novas tarefas de minerao.
5.1 Introduo
Minerao de Dados um ramo da computao que teve incio nos anos 80, quando
os prossionais das empresas e organizaes comearam a se preocupar com os grandes
volumes de dados informticos estocados e inutilizados dentro da empresa. Nesta poca,
Data Mining consistia essencialmente em extrair informao de gigantescas bases de dados
da maneira mais automatizada possvel. Atualmente, Data Mining consiste sobretudo na
anlise dos dados aps a extrao, buscando-se por exemplo levantar as necessidades reais
e hipotticas de cada cliente para realizar campanhas de marketing. Assim, uma empresa
de cartes de crdito, por exemplo, tem uma mina de ouro de informaes: ela sabe os
hbitos de compra de cada um dos seus seis milhes de clientes. O que costuma consumir,
qual o seu padro de gastos, grau de endividamento, etc. Para a empresa essas informaes
so extremamente teis no estabelecimento do limite de crdito para cada cliente, e alm
disso, contm dados comportamentais de compra de altssimo valor. Os seguintes pontos
so algumas das razes por que o Data Mining vem se tornando necessrio para uma boa
gesto empresarial: (a) os volumes de dados so muito importantes para um tratamento
utilizando somente tcnicas clssicas de anlise, (b) o usurio nal no necessariamente
um estatstico, (c) a intensicao do trco de dados (navegao na Internet, catlogos
online, etc) aumenta a possibilidade de acesso aos dados.
Este minicurso tem como objetivo fornecer um apanhado geral das principais tare-
fas e tcnicas de minerao de dados. Discutiremos algumas tcnicas de otimizao e
implementao de algoritmos de minerao de dados referentes a tarefas de regras de
associao, descoberta de padres sequenciais, classicao e anlise de clusters. Alm
disto, discutiremos aspectos tericos subjacentes a diferentes tcnicas de minerao, que
possibilitaro o desenvolvimento de algoritmos de minerao para novas tarefas.

5.1.1 O que Minerao de Dados


Anal, o que Minerao de Dados ? Falando simplesmente, trata-se de extrair ou
minerar conhecimento de grandes volumes de dados. Muitas pessoas consideram o termo
Minerao de Dados como sinnimo de Knowledge Discovery in Databases (KDD) ou
Descoberta de Conhecimento em Banco de Dados. Na verdade, KDD um processo mais
amplo consistindo das seguintes etapas, como ilustrado na Figura 5.1:

1. Limpeza dos dados : etapa onde so eliminados rudos e dados inconsistentes.

2. Integrao dos dados : etapa onde diferentes fontes de dados podem ser combinadas
produzindo um nico repositrio de dados.

3. Seleo : etapa onde so selecionados os atributos que interessam ao usurio. Por


exemplo, o usurio pode decidir que informaes como endereo e telefone no so
de relevantes para decidir se um cliente um bom comprador ou no.

4. Transformao dos dados : etapa onde os dados so transformados num formato


apropriado para aplicao de algoritmos de minerao (por exemplo, atravs de
operaes de agregao).

5. Minerao : etapa essencial do processo consistindo na aplicao de tcnicas in-


teligentes a m de se extrair os padres de interesse.
6. Avaliao ou Ps-processamento : etapa onde so identicados os padres interes-
santes de acordo com algum critrio do usurio.

7. Visualizao dos Resultados : etapa onde so utilizadas tcnicas de representao de


conhecimento a m de apresentar ao usurio o conhecimento minerado.

Figura 5.1: As etapas do processo de KDD

Este curso est focado sobretudo nas tcnicas frequentemente utilizadas na etapa Min-
erao do processo de KDD. Supomos que os dados j foram devidamente selecionados
e transformados, integrados num armazm de dados ( Data Warehouse ) e deles foram
eliminados rudos que possam afetar o processo de descoberta de conhecimento. A fase
de visualizao do conhecimento descoberto tambm no tratada neste curso.

5.1.2 Tarefas e Tcnicas de Minerao de Dados


importante distinguir o que uma tarefa e o que uma tcnica de minerao. A tarefa
consiste na especicao do que estamos querendo buscar nos dados, que tipo de regu-
laridades ou categoria de padres temos interesse em encontrar, ou que tipo de padres
poderiam nos surpreender (por exemplo, um gasto exagerado de um cliente de carto
de crdito, fora dos padres usuais de seus gastos). A tcnica de minerao consiste na
especicao de mtodos que nos garantam como descobrir os padres que nos inter-
essam. Dentre as principais tcnicas utilizadas em minerao de dados, temos tcnicas
estatsticas, tcnicas de aprendizado de mquina e tcnicas baseadas em crescimento-poda-
validao. A seguir, descrevemos de forma sucinta as principais tarefas de minerao.
Anlise de Regras de Associao. Uma regra de associao um padro da forma
X Y , onde X e Y so conjuntos de valores (artigos comprados por um cliente, sin-
tomas apresentados por um paciente, etc). Consideremos por exemplo um supermercado.
O seguinte padro Clientes que compram po tambm compram leite representa uma
regra de associao que reete um padro de comportamento dos clientes do supermer-
cado. Descobrir regras de associao entre produtos comprados por clientes numa mesma
compra pode ser til para melhorar a organizao das prateleiras, facilitar (ou dicultar)
as compras do usurio ou induzi-lo a comprar mais.
Anlise de Padres Sequenciais. Um padro sequencial uma expresso da forma
< I1 , . . . , In >, onde cada Ii um conjunto de items. A ordem em que esto alinhados
estes conjuntos reete a ordem cronolgica em que aconteceram os fatos representados
por estes conjuntos. Assim, por exemplo, a sequncia < {carro}, {pneu, toca-tas} >
representa o padro Clientes que compram carro, tempos depois compram pneu e toca-
tas de carro. Descobrir tais padres sequenciais em dados temporais pode ser til em
campanhas de marketing, por exemplo.
Classicao e Predio. Classicao o processo de encontrar um conjunto de
modelos (funes) que descrevem e distinguem classes ou conceitos, com o propsito de
utilizar o modelo para predizer a classe de objetos que ainda no foram classicados. O
modelo construdo baseia-se na anlise prvia de um conjunto de dados de amostragem ou
dados de treinamento, contendo objetos corretamente classicados. Por exemplo, suponha
que o gerente do supermercado est interessado em descobrir que tipo de caractersticas
de seus clientes os classicam em bom comprador ou mau comprador. Um modelo
de classicao poderia incluir a seguinte regra: Clientes da faixa econmica B, com
idade entre 50 e 60 so maus compradores. Em algumas aplicaes, o usurio est
mais interessado em predizer alguns valores ausentes em seus dados, em vez de descobrir
classes de objetos. Isto ocorre sobretudo quando os valores que faltam so numricos.
Neste caso, a tarefa de minerao denominada Predio. Veremos neste curso algumas
tcnicas usualmente empregadas em tarefas de classicao, tais como rvores de deciso
e redes neurais. Boa parte dos mtodos de classicao utilizam tcnicas estatsticas e de
aprendizado de mquina.
Anlise de Clusters (Agrupamentos). Diferentemente da classicao e predio
onde os dados de treinamento esto devidamente classicados e as etiquetas das classes
so conhecidas, a anlise de clusters trabalha sobre dados onde as etiquetas das classes no
esto denidas. A tarefa consiste em identicar agrupamentos de objetos, agrupamentos
estes que identicam uma classe. Por exemplo, poderamos aplicar anlise de clusters
sobre o banco de dados de um supermercado a m de identicar grupos homogneos de
clientes, por exemplo, clientes aglutinados em determinados pontos da cidade costumam
vir ao supermercado aos domingos, enquanto clientes aglutinados em outros pontos da
cidade costumam fazer suas compras s segundas-feira.
Anlise de Outliers. Um banco de dados pode conter dados que no apresentam
o comportamento geral da maioria. Estes dados so denominados outliers (excees).
Muitos mtodos de minerao descartam estes outliers como sendo rudo indesejado.
Entretanto, em algumas aplicaes, tais como deteco de fraudes, estes eventos raros
podem ser mais interessantes do que eventos que ocorrem regularmente. Por exemplo,
podemos detectar o uso fraudulento de cartes de crdito ao descobrir que certos clientes
efetuaram compras de valor extremamente alto, fora de seu padro habitual de gastos.
5.1.3 Como Avaliar os Padres Interessantes ?
Existem diversas medidas objetivas para avaliar o grau de interesse que um padro pode
apresentar ao usurio. Tais medidas so baseadas na estrutura do padro descoberto e
em estatsticas apropriadas. Por exemplo, uma medida objetiva para avaliar o interesse
de uma regra de associao o suporte, representando a porcentagem de transaes de
um banco de dados de transaes onde a regra se verica. Em termos estatsticos, o
suporte de uma regra X Y a probabilidade P (X Y ), onde X Y indica que a
transao contm os dois conjuntos de items X e Y . Uma outra medida objetiva para
regras de associao a conana, que mede o grau de certeza de uma associao. Em
termos estatsticos, trata-se simplesmente da probabilidade condicional P (Y | X), isto
, a porcentagem de transaes contendo os items de X que tambm contm os items
de Y . Em geral, cada medida objetiva est associada a um limite mnimo de aceitao,
que pode ser controlado pelo usurio. Por exemplo, o usurio pode decidir que regras
cuja conana inferior a 0.5 devem ser descartadas como no-interessantes, pois podem
simplesmente representar uma minoria ou exceo ou envolver rudos.
Alm das medidas objetivas, o usurio pode especicar medidas subjetivas para guiar
o processo de descoberta, reetindo suas necessidades particulares. Por exemplo, padres
descrevendo as caractersticas dos clientes habituais de uma loja pode ser de interesse para
o gerente de marketing da loja, mas com certeza de pouco interesse para analistas que
esto interessados em padres de comportamento dos empregados da loja. Alm disto,
padres que so interessantes segundo medidas objetivas podem representar conhecimento
bvio e portanto sem interesse. Pode-se por exemplo medir o grau de interesse de um
padro pelo fato de ele ser inesperado pelo usurio. Ou, ao contrrio, pode-se dizer que um
padro interessante se ele se adequa s expectativas do usurio, servindo para conrmar
uma hiptese que o usurio deseja validar.
Medidas (objetivas ou subjetivas) de avaliao do grau interesse de padres so essen-
ciais para a ecincia do processo de descoberta de padres. Tais medidas podem ser
usadas durante o processo de minerao ou aps o processo a m de classicar os padres
encontrados de acordo com seu interesse para um dado usurio, ltrando e eliminando os
no interessantes. Em termos de ecincia importante incorporar medidas de interesse
que restrinjam o espao de busca dos padres durante o processo de descoberta, ao invs
de aps o processo ter terminado.

5.1.4 Sistemas Comerciais de Minerao de Dados


O quadro abaixo contm dados sobre alguns sistemas mineradores importantes, junta-
mente com suas principais funcionalidades:

Nome Fabricante Funes Destaque


Intelligent IBM algoritmos para regras de Integrado com o SGBD
Miner associao, classicao, DB2 da IBM. Grande es-
regresso, padres sequen- calabilidade dos algorit-
ciais, clustering. mos.
MineSet Silicon Graphics Inc. algoritmos para regras de Um robusto conjunto de
associao, classicao, ferramentas avanadas de
anlise estatstica. visualizao.
Clementine Integral Solutions algoritmos de regras de in- Interface orientada-
Ltd. duo, redes neurais, clas- objeto.
sicao e ferramentas de
visualizao.
DBMiner DBMiner Technol- algoritmos de regras de Data Mining utilizando
ogy Inc. associao, classicao, OLAP
clustering.
Genamics Genamics Devel- algoritmos de anlise de Anlise de protenas e de
Expression oper sequncias sequncias de DNA

Notas Bibliogrcas. Existe uma grande variedade de livros texto sobre Minerao
de Dados, desde os focados no uso da minerao para tomada de decises (destinados
a leitores interessados em usar softwares de minerao) at os focados principalmente
nas tcnicas de minerao (destinados a leitores interessados em construir softwares de
minerao). Dentro desta segunda linha, o leitor interessado poder encontrar amplo
material de estudo em [HK 2001, HMS 2001]. Em [WF 2000], o leitor interessado em
tcnicas de implementao de algoritmos de minerao encontra um bom material focado
sobre a Linguagem Java. Em [FPPR 1996], o leitor de nvel avanado tem um texto
que rene artigos cientcos importantes na rea de minerao de dados, abrangendo os
principais tpicos de interesse na rea. Em [Man 1997], o leitor mais apressado encontra
um texto agradvel e acessvel que d uma idia geral dos mtodos, tcnicas e tarefas de
minerao de dados. Em [Amo 2003], o leitor tem acesso a um curso de Data Mining
ministrado pela autora do presente minicurso, com farto material didtico e referncias
bibliogrcas.

5.2 Tcnicas para Regras de Associao e Sequncias


5.2.1 Tcnica Apriori
Suponha que voc seja gerente de um supermercado e esteja interessado em conhecer os
hbitos de compra de seus clientes, por exemplo, quais os produtos que os clientes cos-
tumam comprar ao mesmo tempo, a cada vez que vm ao supermercado. Conhecer a
resposta a esta questo pode ser til: voc poder planejar melhor os catlogos do super-
mercado, os folhetos de promoes de produtos, as campanhas de publicidade, alm de
organizar melhor a localizao dos produtos nas prateleiras do supermercado colocando
prximos os items frequentemente comprados juntos a m de encorajar os clientes a com-
prar tais produtos conjuntamente. Para isto, voc dispe de uma mina de dados, que
o banco de dados de transaes efetuadas pelos clientes (Figura 5.3). A cada compra de
um cliente, so registrados neste banco todos os itens comprados. Para facilitar a repre-
sentao dos artigos na tabela, vamos associar nmeros a cada artigo do supermercado,
como ilustrado na Figura 5.2.

Artigo (item) nmero que o representa


Po 1
Leite 2
Acar 3
Papel Higinico 4
Manteiga 5
Fralda 6
Cerveja 7
Refrigerante 8
Iogurte 9
Suco 10

Figura 5.2: Representao numrica de cada artigo do supermercado

Cada conjunto de itens comprados pelo cliente numa nica transao chamado de
Itemset. Um itemset com k elementos chamado de k -itemset. Suponha que voc, como
gerente, decide que um itemset que aparece em pelo menos 50% de todas as compras
registradas ser considerado frequente. Por exemplo, se o banco de dados de que voc
dispe o ilustrado na Figura 5.3, ento o itemset {1,3} considerado frequente, pois
aparece em mais de 60% das transaes. Denimos suporte de um itemset como sendo a
porcentagem de transaes onde este itemset aparece. A tabela da Figura 5.4 contabiliza
TID Itens comprados
101 {1,3,5}
102 {2,1,3,7,5}
103 {4,9,2,1}
104 {5,2,1,3,9}
105 {1,8,6,4,3,5}
106 {9,2,8}

Figura 5.3: Um banco de dados de transaes de clientes

os suportes de diversos itemsets com relao ao banco de dados de transaes da Figura


5.3.
Itemset Suporte
{1,3} 0,6666
{2,3} 0,3333
{1,2,7} 0,16666
{2,9} 0,5

Figura 5.4: Suporte de alguns itemsets

Repare que o que identica uma transao o identicador da transao TID e no o


identicador do cliente.
Caso a sua exigncia mnima para um itemset ser considerado frequente seja 50%,
ento os seguintes itemsets da tabela da Figura 5.4 sero considerados frequentes: {1,3},
{2,9}.
Formalizao do Problema
Seja I = {i1 , i2 , . . . , im } um conjunto de itens (o conjunto de todos os artigos do super-
mercado). Seja D um banco de dados de transaes, isto , uma tabela de duas colunas,
a primeira correspondente ao atributo TID (identicador da transao) e o segundo cor-
respondente transao propriamente dita, isto , a um conjunto de itens (itemset). Os
elementos de D so chamados de transaes. Um itemset um subconjunto no vazio de
I . Dizemos que uma transao T suporta um itemset I se I T. Por exemplo, a primeira
transao do banco de dados da Figura 5.3 suporta os itemsets {1}, {3}, {5}, {1,3}, {1,5},
{3,5}, {1,3,5}.
Repare que, embora uma transao e um itemset sejam a mesma coisa (conjunto de
items), chamamos de transao somente aqueles itemsets que esto registrados no banco
de dados como sendo a compra total feita por algum cliente.
Denio 5.2.1 Uma regra de associao uma expresso da forma A B , onde A e
B so itemsets. Por exemplo, {po, leite} {caf} uma regra de associao. A idia
por trs desta regra que pessoas que compram po e leite tm a tendncia de tambm
comprar caf, isto , se algum compra po e leite ento tambm compra caf. Repare
que esta regra diferente da regra {caf} {po,leite}.
A toda regra de associao A B associamos um grau de conana, denotado por
conf (A B). Este grau de conana simplesmente a porcentagem das transaes que
suportam B dentre todas as transaes que suportam A, isto :

nmero de transaes que suportam (A B)


conf (A B) =
nmero de transaes que suportam A
Por exemplo, o grau de conana da regra {cerveja} {manteiga}, isto , {7} {5},
com relao ao banco de dados da Figura 5.3 1 (100%).
Ser que o fato de uma certa regra de associao ter um grau de conana relativamente
alto suciente para a considerarmos uma boa regra ? Repare que no nosso banco
de dados da Figura 5.3, os itens cerveja, manteiga aparecem juntos somente em uma
transao entre 6, isto , poucos clientes compram estes dois itens juntos. Entretanto,
somente pelo fato de que em 100% das transaes onde cerveja aparece tambm o item
manteiga foi comprado, temos que o grau de conana da regra {cerveja} {manteiga}
de 100%. Nossa intuio diz que isto no suciente para que esta regra seja considerada
boa, j que esta conana diz respeito somente s poucas transaes que suportam
{cerveja, manteiga}. A m de garantirmos que uma regra A B seja boa ou interessante,
precisamos exigir que seu suporte tambm seja relativamente alto, alm de seu grau de
conana.
A toda regra de associao A B associamos um suporte, denotado por sup(A B)
denido como sendo o suporte do itemset AB . Por exemplo, o suporte da regra {cerveja}
{manteiga} com relao ao banco de dados da Figura 5.3 0.1666%.
Uma regra de associao r dita interessante se conf (r) e sup(r) , onde
e so respectivamente um grau mnimo de conana e um grau mnimo de suporte
especicados pelo usurio. No nosso exemplo, caso = 0.8 e = 0.1 ento a regra
{cerveja} {manteiga} interessante.
O problema da minerao de regras de associao o seguinte: Dados um banco de
dados de transaes D, um nvel mnimo de conana e um um nvel mnimo de suporte
, encontrar todas as regras de associao interessantes com relao a D, e .
O algoritmo Apriori
Este algoritmo foi proposto em 1994 pela equipe de pesquisa do Projeto QUEST da
IBM que originou o software Intelligent Miner. Trata-se de um algoritmo que resolve
o problema da minerao de itemsets frequentes, isto , dados um banco de dados de
transaes D e um um nvel mnimo de suporte , o algoritmo encontra todos os itemsets
frequentes com relao a D e .
Suponha que tenhamos obtido todos os itemsets frequentes com relao a D e . A
m de obter as regras de associao interessantes, basta considerarmos, para cada itemset
frequente L, todas as regras candidatas A (L A), onde A L e testarmos para
cada uma destas regras candidatas se o seu grau de conana excede o nvel mnimo de
conana . Para calcular a conana de A (L A) no preciso varrer novamente
o banco de dados D. De fato, durante a execuo do algoritmo Apriori j calculamos o
suporte de L e A. Note que:

total de trans. suportando L


total de trans. suportando L total de trans sup(L)
conf (A (L A)) = = =
total de trans. suportando A total de trans. suportando A sup(A)
total de trans
Assim, para calcular a conana de A (L A) basta dividir o suporte de L pelo
suporte de A.
As fases de Apriori: gerao, poda, validao O algoritmo Apriori possui trs
fases principais: (1) a fase da gerao dos candidatos, (2) a fase da poda dos candidatos
e (3) a fase do clculo do suporte. As duas primeiras fases so realizadas na memria
principal e no necessitam que o banco de dados D seja varrido. A memria secundria
s utilizada caso o conjunto de itemsets candidatos seja muito grande e no caiba na
memria principal. Mas, mesmo neste caso bom salientar que o banco de dados D, que
normalmente nas aplicaes extremamente grande, no utilizado. Somente na terceira
fase, a fase do clculo do suporte dos itemsets candidatos, que o banco de dados D
utilizado. Tanto na fase de gerao de candidatos (Fase 1) quanto na fase da poda dos
candidatos (Fase 2) a seguinte propriedade de antimonotonia utilizada:
Propriedade Apriori - ou Antimonotonia da relao : Sejam I e J dois itemsets
tais que I J . Se J frequente ento I tambm frequente.
O algoritmo Apriori executado de forma iterativa: os itemsets frequentes de tamanho
k so calculados a partir dos itemsets frequentes de tamanho k 1 que j foram calculados
no passo anterior (a partir dos itemsets frequentes de tamanho k 2, etc). No que se
segue, suponhamos que estejamos no passo k e que portanto j tenhamos obtido no passo
anterior o conjunto Lk1 dos itemsets frequentes de tamanho k 1.

A fase da gerao dos candidatos de tamanho k. Nesta fase, vamos gerar os


itemsets candidatos (no necessariamente frequentes) de tamanho k a partir do con-
junto Lk1 . Como estamos interessados em gerar somente itemsets que tenham alguma
chance de serem frequentes, devido propriedade Apriori sabemos que todos os itemsetsde
tamanho k 1 contidos nos nossos candidatos de tamanho k devero ser frequentes, por-
tanto, devero pertencer ao conjunto Lk1 . Assim, o conjunto Ck0 de itemsets candidatos
de tamanho k construdo juntando-se pares de itemsets de tamanho k 1 que tenham
k 2 elementos em comum. Desta maneira temos certeza de obter um itemset de tamanho
k onde pelo menos dois de seus subconjuntos de tamanho k 1 so frequentes. A Figura
5.5 ilustra esta construo.

a b c d e x itemset frequente de tamanho 6

a b c d e y itemset frequente de tamanho 6

a b c d e x y itemset candidato de tamanho 7

Figura 5.5: Construo de um k-itemset candidato a partir de dois frequentes de tamanho k 1

A funo Apriori-Gen descrita abaixo responsvel pela construo do conjunto dos


pr-candidatos Ck0 :

insert into Ck0


select p.item1 , p.item2 , . . ., p.itemk2 ,p.itemk1 , q.itemk1
from Lk1 p, Lk1 q
where p.item1 = q.item1 , p.item2 = q.item2 , . . .,p.itemk2 = q.itemk2 ,
p.itemk1 < q.itemk1 ;

Exemplo 5.2.1 Consideremos o banco de dados de transaes dado na Figura 5.3 e


suponhamos que no passo 2 da iterao tenhamos obtido o seguinte conjunto de itemsets
frequentes de tamanho 2:
L2 = {{1, 3}, {1, 5}, {1, 4}, {2, 3}, {3, 4}, {2, 4}}
Ento o conjunto dos pr-candidatos C30 da iterao seguinte ser:

C30 = {{1, 3, 5}, {1, 3, 4}, {1, 4, 5}, {2, 3, 4}}

Fase da Poda dos Candidatos. Utilizando novamente a propriedade Apriori, sabemos


que se um itemset de Ck0 possuir um subconjunto de itens (um subitemset) de tamanho
k 1 que no estiver em Lk1 ele poder ser descartado, pois no ter a menor chance
de ser frequente. Assim, nesta fase calculado o conjunto Ck = Ck0 {I | existe J
I tal que | J |= k 1 e J 6 Lk1 }. A notao | J | signica o nmero de elementos do
itemset J .
Exemplo 5.2.2 Consideremos a situao apresentada no exemplo 5.2.1. Neste caso, C3
= C30 {{1, 4, 5}, {1, 3, 5}} = {{1, 3, 4}, {2, 3, 4}}. O itemset {1,4,5} foi podado pois no
tem chance nenhuma de ser frequente: ele contm o 2-itemset {4,5} que no frequente,
pois no aparece em L2 . Por que o itemset {1,3,5} foi podado ?
Fase do Clculo do Suporte. Finalmente, nesta fase calculado o suporte de cada
um dos itemsets do conjunto Ck . Isto pode ser feito varrendo-se uma nica vez o banco
de dados D: Para cada transao t de D verica-se quais so os candidatos suportados
por t e para estes candidatos incrementa-se de uma unidade o contador do suporte.
Como so calculados os itemsets frequentes de tamanho 1. Os itemsets de
tamanho 1 so computados considerando-se todos os conjuntos unitrios possveis, de
um nico item. Em seguida, varre-se uma vez o banco de dados para calcular o suporte
de cada um destes conjuntos unitrios, eliminando-se aqueles que no possuem suporte
superior ou igual ao mnimo exigido pelo usurio.

5.2.2 Tcnica Apriori para Sequncias: Algoritmo GSP


O algoritmo GSP projetado para a tarefa de minerao de padres sequencias ou se-
quncias. Uma sequncia ou padro sequencial de tamanho k (ou k -sequncia) uma
coleo ordenada de itemsets < I1 , I2 , ..., In >. Por exemplo, s = <{TV,aparelho-de-
som},{Vdeo}, {DVDPlayer}> um padro sequencial. Uma k -sequncia uma sequn-
cia com k itens. Um item que aparece em itemsets distintos contado uma vez para
cada itemset onde ele aparece. Por exemplo, < {1, 2} >, < {1}, {2} >, < {1}, {1} > so
2-sequncias.
Denio 5.2.2 Sejam s e t duas sequncias, s = < i1 i2 ...ik > e t = < j1 j2 ...jm >.
Dizemos que s est contida em t se existe uma subsequncia de itemsets em t, l1 , ..., lk
tal que i1 l1 , ... , ik lk . Por exemplo, sejam t =< {1, 3, 4}, {2, 4, 5}, {1, 7, 8} > e
s =< {3}, {1, 8} >. Ento, claro que s est contida em t, pois {3} est contido no
primeiro itemset de t e {1,8} est contido no terceiro itemset de t. Por outro lado, a
sequncia s0 =< {8}, {7} > no est contida em t.
De agora em diante, vamos utilizar a seguinte nomenclatura para diferenciar as se-
quncias: sequncias que fazem parte do banco de dados de sequncias (correspondem
a alguma sequncia de itemsets comprados por algum cliente) so chamadas de sequn-
cia do cliente. Sequncias que so possveis padres que podem aparecer nos dados so
chamadas de padro sequencial.
Denimos suporte de um padro sequencial s com relao a um banco de dados de
sequncias de clientes D como sendo a porcentagem de sequncias de clientes que suportam
s, isto :

nmero de sequncias de clientes que suportam s


sup(s) =
nmero total de sequncias de clientes
Um padro sequencial s dito frequente com relao a um banco de dados de sequn-
cias de clientes D e um nvel minimo de suporte , se sup(s) . Assim como acontecia
com os itemsets, a propriedade de ser frequente tambm antimonotnica, no que diz
respeito a padres sequenciais. Isto , se s frequente ento todos os seus subpadres
(ou subsequncias) so frequentes. O problema da minerao de sequncias consiste em,
dados um banco de dados de sequncias D e um nvel mnimo de suporte , encontrar
todos os padres sequenciais com suporte maior ou igual a com relao a D.
Seguindo a mesma idia dos algoritmos da famlia Apriori, o algoritmo GSP gera as
k -sequncias frequentes (sequncia com k itens) na iterao k . Cada iterao composta
pelas fases de gerao, de poda e de validao (clculo do suporte).
Fase da Gerao dos Candidatos. Caso k 3
Suponhamos que Lk1 j tenha sido gerado na etapa k 1. Duas sequncias s =
< s1 , s2 , . . . , sn > e t =< t1 , t2 , . . . , tm > de Lk1 so ditas ligveis se, retirando-se o
primeiro item de s1 e o ltimo item de tm as sequncias resultantes so iguais. Neste caso,
s e t podem ser ligadas e produzir a sequncia v , onde:

se tm no unitrio: v = < s1 , s2 , . . . , sn t0 >, onde t0 o ltimo item de tm .

se tm unitrio: v = < s1 , s2 , . . . , sn , tm >

Repare que estamos supondo que cada itemset est ordenado segundo a ordem lexo-
grca de seus itens. Estamos supondo tambm que o conjunto dos itens foi ordenado (a
cada item foi associado um nmero natural). A Figura 5.6 ilustra o processo de juno
de duas sequncias de k 1 itens a m de produzir uma sequncia de k itens.

a b c d e f g h i j k l sequncia de k 1 itens

b c d e f g h i j k l m sequncia de k 1 itens

a b c d e f g h i j k l m sequncia de k itens
resultante

Figura 5.6: Como juntar sequncias

Exemplo 5.2.3 Sejam s =< {1, 2}, {3}, {5, 7} >, t =< {2}, {3}, {5, 7, 10} >. Retirando-
se o primeiro item de s1 (o item 1) e o ltimo item de t3 (o item 10) obtemos a mesma
sequncia: < {2}, {3}, {5, 7} >. Logo, s e t so ligveis e sua juno produz a sequncia
s =< {1, 2}, {3},{5, 7, 10} >.
Denimos o conjunto dos pr-candidatos Ck0 como sendo o conjunto obtido ligando-se
todos os pares ligveis de sequncias de Lk1 .

Exemplo 5.2.4 As tabelas abaixo ilustram o conjunto L3 ( esquerda) e o conjunto de


candidatos C40 correspondente ( direita):

< {1, 2}, {3} > < {1, 2}, {3, 4} >
< {1, 2}, {4} > < {1, 2}, {3}, {5} >
< {1}, {3, 4} >
< {1, 3}, {5} >
< {2}, {3, 4} >
< {2}, {3}, {5} >

Repare que uma propriedade da sequncia resultante da juno de duas sequncias s1


e s2 que ao eliminarmos o primeiro item do primeiro itemset da juno obtemos s2 .
Caso k = 2: Para juntar duas sequncias s1 =< {x} > e s2 =< {y} > de 1 item a m de
produzir uma de dois itens precisamos adicionar o item y de s2 em s1 tanto como parte do
itemset {x} quanto como um itemset isolado. Assim a juno de s1 com s2 produz duas
sequncias de 2 elementos: < {x, y} > e < {x}, {y} >.Repare que a propriedade acima
mencionada se verica para as duas sequncias obtidas como resultado da juno de s1 e
s2 : nas duas sequncias, ao eliminarmos o primeiro item do primeiro itemset obtemos a
sequncia s2 =< {y} >.
Caso k = 1: O clculo de C1 feito considerando-se todas as sequncias de 1 item
< {i} > e testando-se o suporte para cada uma delas. As que so frequentes constituem
o conjunto L1 .

Fase da Poda dos Candidatos. Seja s uma k -sequncia. Se s for frequente, ento, pela
propriedade de antimonotonia, sabemos que toda subsequncia de s deve ser frequente.
Seja t uma subsequncia qualquer obtida de s suprimindo-se um item de algum itemset.
Se t no estiver em Lk1 ento s no tem chance nenhuma de ser frequente e portanto
pode ser podada.

Exemplo 5.2.5 Considere a mesma situao do exemplo 5.2.4. A sequncia < {1, 2},
{3}, {5} > ser podada, pois se retiramos o item 2 do primeiro itemset, a sequncia
resultante < {1}, {3}, {5} > no est em L3 . Assim, aps a fase da poda, o conjunto C4
resultante { < {1, 2}, {3, 4} > }.

Fase da Contagem do Suporte. A cada iterao, cada sequncia de cliente d lida


uma vez e incrementa-se o contador dos candidatos de Ck que esto contidos em d.
Assim, dado um conjunto Ck de sequncias candidatas de uma sequncia de cliente d,
precisamos encontrar todas as sequncias em C que esto contidas em d. Duas tcnicas
so utilizadas para resolver este problema: (1)usamos uma estrutura de rvore-hash para
reduzir o nmero de candidatos de C que sero testados para d; (2) Transformamos
a representao da sequncia de cliente d de tal modo que possamos testar de forma
eciente se um determinado candidato de C suportado (est contido) em d. Veremos
detalhes da primeira tcnica na Seo 5.4.
5.2.3 Minerao com Restries nos Padres
Imagine que voc esteja interessado somente em minerar padres sequenciais < s1 , ..., sn >
que satisfazem uma determinada expresso regular, por exemplo, que comeam por {TV}
e terminam em {DVD Player}. Assim, somente sero gerados padres satisfazendo a
expresso regular: {T V }a {DV DP layer}, onde a representa uma sequncia qualquer
de itemsets. Para ser mais exato: a = (a1 + a2 + ... + an ), onde {a1 , ..., an } o conjunto
de todos os itemsets possveis de serem formados com os itens dados. O problema de
minerao que temos agora o seguinte: Dados um banco de dados D, um nvel mnimo
de suporte e uma expresso regular R, encontrar todas as sequncias s com sup(s)
e que satisfazem R.
Uma primeira idia para resolver este problema de minerao seria a seguinte : Seja Lk
= k -sequncias frequentes satisfazendo R.
k+1
Fase de Gerao: usando Lk e R, produzir um conjunto C de candidatos tais que (1)
Os candidatos devem satisfazer R; (2) Os candidatos so k + 1-sequncias potencialmente
k+1
frequentes. Assim, os candidatos C devem conter Lk+1 .
k+1
Fase da Podagem: Suprimir de C aquelas sequncias que no tm nenhuma chance
de serem frequentes. Repare que a diculdade em utilizar esta idia que a fase de
podagem deve ser efetuada utilizando somente o conjunto Lk calculado na fase anterior, e
que constitudo de todas as sequncias de tamanho k que so frequentes e que satisfazem
a expresso regular R. Note que a restrio de ser frequente antimonotnica mas a
restrio de satisfazer uma expresso regular no . Por exemplo, a sequncia abb satisfaz
a expresso regular ab , mas sua subsequncia bb no satisfaz ab . Logo, na fase de
podagem, no basta simplesmente eliminar as k + 1-sequncias que possuem uma k -
sequncia que no est em Lk .
Seja L = L1 L2 ...Lk . Precisamos eliminar sequncias que no sejam frequentes.
Para isto, suciente que possua uma subsequncia 0 que no seja frequente. Ora,
se 0 6 L e 0 satisfaz a expresso regular R, teremos certeza de que 0 no frequente.
Assim:
k+1 k+1
C k+1 = C { C | 0 , 0 6 L e 0 satisfaz R}
k+1
O problema com esta idia o seguinte: Seja Ak+1 = { C | 0 , 0 6 L
e |= R} o conjunto de sequncias que so podadas. Repare que quanto mais restritiva
0

for a expresso regular R, menor ser o conjunto Ak+1 , isto , menos sequncias sero
podadas. A tabela abaixo ilustra este fato:

k+1 k+1
Poder de Restrio de R C Ak+1 C Ak+1

Assim, a introduo da restrio R, por um lado, na fase de gerao restringe os can-


didatos gerados, mas por outro lado, na fase da podagem, tambm restringe as sequncias
podadas, o que no interessante. Precisamos encontrar uma espcie de meio-termo:
como restringir sucientemente os candidatos na fase de gerao sem diminuir muito o
conjunto de sequncias que sero podadas na fase de podagem ?
Idia: Considerar um relaxamento apropriado da expresso regular R. O
que um relaxamento de R ? Sabemos que a expresso regular R especica uma
linguagem regular, isto , o conjunto de todas as palavras (sequncias) que satisfazem
R. Um relaxamento de R seria qualquer condio c (inclusive uma outra expresso
regular R0 ) mais fraca do que R, isto , tal que a linguagem satisfazendo c contivesse a
linguagem satisfazendo R. Assim, c menos restritiva do que R. Que tipo de relaxamento
seria considerado apropriado ? Cada relaxamento R0 de R corresponde a um Algoritmo
SPIRIT(R0 ), cuja idia geral de execuo a descrita acima, mas considerando, ao invs
de R, a condio R0 . Estuda-se as performances dos diversos algoritmos da famlia e
chega-se concluso, de forma experimental, qual o relaxamento mais apropriado.

5.2.4 Os Quatro Algoritmos Principais da Famlia SPIRIT


Antes de discutirmos estes algoritmos, notamos que se R antimonotnica ento as fases
de gerao e podagem so exatamente como nos algoritmos da famlia Apriori. Neste caso,
no necessrio procurar um relaxamento R0 de R, pois as fases de gerao e podagem
estaro em sintonia: Se frequente e satisfaz R e 0 ento 0 deve ser frequente
e satisfazer R. Logo, a fase da podagem consiste simplesmente em eliminar as sequncias
k+1
candidatas C tais que 0 , 0 6 Lk .

Os quatro principais algoritmos da famlia SPIRIT so SPIRIT(N), SPIRIT(L),


SPIRIT(V) e SPIRIT(R), cada um deles correspondente a um relaxamento da restrio
R.

1. SPIRIT(N): aqui consideramos o maior de todos os relaxamentos de R, aquele que


no impe nenhuma restrio s sequncias. Assim, neste caso, qualquer sequncia
satisfaz a restrio N.

2. SPIRIT(L): neste relaxamento, somente so consideradas as sequncias legais com


respeito a algum estado do autmato correspondente expresso regular R, que
denotamos por AR . Dizemos que uma sequncia a1 a2 ...an legal com respeito ao
estado q do autmato R se existe um caminho no autmato que comea no estado
q e que percorre a palavra a1 a2 ...an .

3. SPIRIT(V): neste relaxamento, somente so consideradas as sequncias vlidas


com respeito a algum estado do autmato AR . Dizemos que uma sequncia a1 a2 ...an
vlida com respeito ao estado q do autmato R se existe um caminho no autmato
que comea no estado q e termina num estado nal e que percorre a palavra
a1 a2 ...an .

4. SPIRIT(R): este, no um relaxamento. Corresponde exatamente expresso


R. Somente as sequncias vlidas (isto , aquelas que comeam no estado inicial e
terminam num estado nal do autmato) so aceitas.

A Figura 5.7 ilustra as noes de sequncias legais com respeito a algum estado de
AR , de sequncias vlidas com respeito a algum estado de AR e de sequncias vlidas
com respeito a AR .
A sequncia < 1, 2 > legal com respeito ao estado a do autmato, pois existe um
caminho no autmato percorrendo a sequncia < 1, 2 >.
A sequncia < 2 > vlida com respeito ao estado b do autmato, pois existe um
caminho no autmato, saindo do estado b, percorrendo a sequncia < 2 > e chegando
num estado nal.
2
1
2 3 4
a b c d

Figura 5.7: Sequncias Legais e Vlidas

sequncia < 4, 4 > vlida, pois existe um caminho no autmato, saindo do estado
inicial, percorrendo a sequncia < 4, 4 > e chegando num estado nal.
A tabela abaixo resume as restries consideradas por cada um dos algoritmos SPIRIT.

Algoritmo Relaxamento R0
SPIRIT(N) nenhuma restrio
SPIRIT(L) somente sequncias legais com respeito a algum estado de AR
SPIRIT(V) somente sequncias vlidas com respeito a algum estado de AR
SPIRIT(R) somente sequncias vlidas (R0 = R)
O esquema geral dos algoritmos SPIRIT o seguinte:
Etapa1 1: Etapa do relaxamento R'. Calcula-se o conjunto L0 das sequncias fre-
quentes que satisfazem um relaxamento R' da expresso regular R original fornecida pelo
usurio (vamos denotar AR o autmato correspondente a R). R' pode ser: (1) o relaxam-
ento total (algoritmo SPIRIT(N)), (2) o relaxamento correspondente s sequncias legais
com respeito a algum estado do autmato AR (algoritmo SPIRIT(L)), (3) o relaxam-
ento correspondente s sequncias vlidas com respeito a algum estado do autmato AR
(algoritmo SPIRIT(V)), (4) nenhum relaxamento, isto , R' = R (algoritmo SPIRIT(R)).
Etapa 2: Etapa da Restrio R. Elimina-se de L0 as sequncias que no satisfazem
R, obtendo-se assim o conjunto L das sequncias frequentes e que satisfazem R. Isto se
faz atravs de um procedimento que dado um autmato e um string, verica se o string
ou no aceito pelo autmato.
Repare que o algoritmo SPIRIT(N) corresponde a aplicar o algoritmo GSP sem nen-
huma restrio na fase de gerao (Etapa 1). A etapa 2 corresponde a uma etapa de
ps-processamento, onde so eliminadas as sequncias que no interessam. Num outro
extremo est o algoritmo SPIRIT(R), onde a etapa 2 no realiza nada, pois a etapa 1 j
fornece o conjunto L das sequncias frequentes e que satisfazem R.
Notas Bibliogrcas. Detalhes do algoritmo Apriori e anlise dos resultados exper-
imentais podem ser encontrados no artigo [AS 1994]. Em [ASV 1997] so introduzidas
restries nos itemsets e diversos algoritmos de minerao so propostos. O algoritmo
GSP foi introduzido em [AS 1996], onde foi adaptada para incorporar diversos tipos de
restries nos padres, na fase de clculo do suporte. Outros algoritmos de minerao de
sequncias, de desempenho inferior ao GSP tinham sido introduzidos anteriormente em
[AS 1995]. Foi neste artigo onde foi tratado primeiramente o problema da minerao de
sequncias. O problema da minerao com restries de expresso regular tratado em
[GRS 1999, GRS 2002].

5.3 Tcnicas para Classicao e Anlise de Clusters


Nesta seo, vamos estudar duas outras tarefas de minerao que, como mencionamos
na Seo 5.1, esto de certa forma relacionadas. Trata-se das tarefas de classicao e
anlise de clusters. Para cada uma destas tarefas, veremos algumas tcnicas comumente
utilizadas para realiz-las. Comearemos pela Classicao.
Suponha que voc gerente de uma grande loja e disponha de um banco de dados
de clientes, contendo informaes tais como nome, idade, renda mensal, prosso e se
comprou ou no produtos eletrnicos na loja. Voc est querendo enviar um material de
propaganda pelo correio a seus clientes, descrevendo novos produtos eletrnicos e preos
promocionais de alguns destes produtos. Para no fazer despesas inteis voc gostaria
de enviar este material publicitrio apenas a clientes que sejam potenciais compradores
de material eletrnico. Outro ponto importante : voc gostaria de, a partir do banco de
dados de clientes de que dispe no momento, desenvolver um mtodo que lhe permita
saber que tipo de atributos de um cliente o tornam um potencial comprador de produtos
eletrnicos e aplicar este mtodo no futuro, para os novos clientes que entraro no banco
de dados. Isto , a partir do banco de dados que voc tem hoje, voc quer descobrir regras
que classicam os clientes em duas classes : os que compram produtos eletrnicos e os
que no compram. Que tipos de atributos de clientes (idade, renda mensal, prosso)
inuenciam na colocao de um cliente numa ou noutra classe ? Uma vez tendo estas
regras de classicao de clientes, voc gostaria de utiliz-las no futuro para classicar
novos clientes de sua loja. Por exemplo, regras que voc poderia descobrir seriam: Se
idade est entre 30 e 40 e a renda mensal `Alta' ento ClasseProdEletr = `Sim'. Se
idade est entre 60 e 70 ento ClasseProdEletr = `No'. Quando um novo cliente Joo,
com idade de 25 anos e renda mensal `Alta' e que tenha comprado discos, catalogado no
banco de dados, o seu classicador lhe diz que este cliente um potencial comprador de
aparelhos eletrnicos. Este cliente colocado na classe ClasseProdEletr = `Sim', mesmo
que ele ainda no tenha comprado nenhum produto eletrnico.
O que um classicador ?. Classicao um processo que realizado em trs
etapas :

1. Etapa da criao do modelo de classicao. Este modelo constitudo de regras


que permitem classicar as tuplas do banco de dados dentro de um nmero de
classes pr-determinado. Este modelo criado a partir de um banco de dados de
treinamento. cujos elementos so chamados de amostras ou exemplos.

2. Etapa da vericao do modelo ou Etapa de Classicao : as regras so testadas


sobre um outro banco de dados, completamente independente do banco de dados de
treinamento, chamado de banco de dados de testes. A qualidade do modelo medida
em termos da porcentagem de tuplas do banco de dados de testes que as regras do
modelo conseguem classicar de forma satisfatria. claro que se as regras forem
testadas no prprio banco de dados de treinamento, elas tero alta probabilidade
de estarem corretas, uma vez que este banco foi usado para extra-las. Por isso a
necessidade de um banco de dados completamente novo.

Diversas tcnicas so empregadas na construo de classicadores. Neste curso vamos


ver duas tcnicas: rvores de deciso e redes neurais.

5.3.1 rvore de Deciso


Uma rvore de deciso uma estrutura de rvore onde: (1) cada n interno um atributo
do banco de dados de amostras, diferente do atributo-classe, (2) as folhas so valores do
atributo-classe, (3) cada ramo ligando um n-lho a um n-pai etiquetado com um
valor do atributo contido no n-pai. Existem tantos ramos quantos valores possveis
para este atributo. (4) um atributo que aparece num n no pode aparecer em seus ns
descendentes.
Exemplo 5.3.1 Considere o banco de dados de treinamento:

Nome Idade Renda Prosso ClasseProdEletr


Daniel =< 30 Mdia Estudante Sim
Joo 31..50 Mdia-Alta Professor Sim
Carlos 31..50 Mdia-Alta Engenheiro Sim
Maria 31..50 Baixa Vendedora No
Paulo =< 30 Baixa Porteiro No
Otvio > 60 Mdia-Alta Aposentado No

A Figura 5.8 ilustra uma possvel rvore de deciso sobre este banco de dados.

Idade ?

=< 30 > 60
31..50 51..60

Renda ? No
Sim Sim
B A
M M-A
No Sim Sim Sim

Figura 5.8: Uma rvore de deciso

Idia geral de como criar uma rvore de deciso. A idia geral a que est por
trs do algoritmo ID3, criado por Ross Quinlan, da Universidade de Sydney em 1986 e
de seus sucessores (um deles, o algoritmo C4.5 tambm proposto por Quinlan em 1993).
Trata-se do procedimento recursivo:
Gera-Arvore(A,Cand-List)
Entrada : Um banco de dados de amostras A onde os valores dos atributos foram catego-
rizados, uma lista de atributos candidatos Cand-List.
Output : Uma rvore de deciso
Mtodo
(1) Crie um n N; Associe a este n o banco de dados A
(2) Se todas as tuplas de A pertencem mesma classe C ento transforme o n N numa
folha etiquetada por C. Pre.
(3) Caso contrrio: Se Cand-List = ento transforme N numa folha etiquetada com o
valor do atributo-Classe que mais ocorre em A. Pre.
(4) Caso contrrio: calcule Ganho(Cand-List). Esta funo retorna o atributo com o maior
ganho de informao. Ser detalhada no prximo pargrafo. Chamamos este atributo de
Atributo-Teste.
(5) Etiquete N com o nome de Atributo-Teste
(6) Etapa da partio das amostras A: para cada valor si do Atributo-Teste faa o
seguinte:
(7) Crie um n-lho Ni , ligado a N por um ramo com etiqueta igual ao valor si e associe
a este n o conjunto Ai das amostras tais que o valor de Atributo-Teste = si .
(8) Se Ai = : transforme o n Ni numa folha etiquetada pelo valor do atributo-Classe
que mais ocorre em A.
(9) Caso contrrio: calcule Gera-Arvore(Ai , Cand-List - {Atributo-Teste}) e grude no
n Ni a rvore resultante deste clculo.
Como decidir qual o melhor atributo para dividir o banco de amostras ?.
Agora vamos detalhar a funo Ganho(Cand-List) que decide qual atributo em Cand-List
o mais apropriado para ser utilizado no particionamento das amostras. Vamos utilizar
como exemplo o banco de dados amostral da Figura 5.9 sobre condies meteorolgicas.
O objetivo identicar quais as condies ideiais para se jogar um determinado jogo.

Aparncia Temperatura Humidade Vento Jogo


Sol Quente Alta Falso No
Sol Quente Alta Verdade No
Encoberto Quente Alta Falso Sim
Chuvoso Agradvel Alta Falso Sim
Chuvoso Frio Normal Falso Sim
Chuvoso Frio Normal Verdade No
Encoberto Frio Normal Verdade Sim
Sol Agradvel Alta Falso No
Sol Frio Normal Falso Sim
Chuvoso Agradvel Normal Falso Sim
Sol Agradvel Normal Verdade Sim
Encoberto Agradvel Alta Verdade Sim
Encoberto Quente Normal Falso Sim
Chuvoso Agradvel Alta Verdade No

Figura 5.9: Banco de dados amostral

Vamos considerar as quatro possibilidades para a escolha do atributo que ser utilizado
para dividir o banco de dados no primeiro nvel da rvore. Estas possibilidades esto
ilustradas na Figura 5.10.
Qual a melhor escolha ? Repare que se uma folha s tem `Sim' ou s tem `No', ela no
ser mais dividida no futuro: o processo GeraArvore aplicado a esta folha pra logo no
incio. Gostaramos que isto ocorresse o mais cedo possvel, pois assim a rvore produzida
ser menor. Assim, um critrio intuitivo para a escolha do atributo que dividir um n
seria: Escolha aquele que produz os ns mais puros. Por exemplo, no nosso caso, a
escolha boa seria o atributo Aparncia.
Grau de Pureza de um atributo num n: Entropia. Vamos denir uma funo
Info que calcula o grau de pureza de um atributo num determinado n. Este grau de pureza
representa a a quantidade de informao esperada que seria necessria para especicar se
uma nova instncia seria classicada em `Sim' ou `No', uma vez chegado a este n. A
idia a seguinte: se A1 , A2 , ..., An so as folhas (tabelas) saindo deste n, ni = tamanho
de Ai e N = total dos tamanhos das tabelas, ento Info(N) = ni=1 nNi Entropia(Ai ).
Quanto maior a entropia, maior a informao. A entropia uma medida estatstica que
mede o quo confuso a distribuio das tuplas entre as classes. Por exemplo, se existem
Aparncia Temperatura
Sol chuvoso Frio
Quente
Encoberto Agradavel
Sim Sim Sim Sim Sim Sim
Sim Sim Sim Sim Sim
Sim
Sim Sim Sim Sim Sim
No
Sim No Sim No
No No
No No
No
No

Humidade Vento

Falso Verdadeiro
Alta Normal

Sim Sim Sim


Sim
Sim Sim Sim
Sim
Sim Sim Sim
Sim
No Sim No
Sim
Sim No
No Sim
No Sim No
Sim
No No
No
No

Figura 5.10: As quatro possibilidades para o atributo do n raiz

2 classes, e exatamente metade das tuplas esto numa classe e a outra metade na outra
classe, ento a entropia seria maximal. Por outro lado, se todas as tuplas esto numa
mesma classe, ento a entropia zero.
Seja Ai uma tabela com ni tuplas, das quais Si esto classicadas como `Sim' e Ni
esto classicadas como `No'. Ento a entropia de Ai denida como:

Ni
Entropia(Ai ) = ( Sn1i log2 Sn1i + ni
log2 Nnii )

Esta frmula para entropia bem conhecida. Atente para o sinal negativo, necessrio
pois a entropia deve ser positiva e os logaritmos so negativos (j que so calculados sobre
nmeros entre 0 e 1). Esta frmula generalizada (da maneira bvia) para um nmero
de classes qualquer.
Exemplo 5.3.2 Consideremos as quatro possibilidades para o atributo do primeiro n,
conforme ilustrado na Figura 5.10.

Se escolhemos o atributo Aparncia:


5 4 5
Info(N) = 14 entropia(Folha 1) + 14 entropia(Folha 2) + 14
entropia(Folha3)
entropia(Folha 1) = 25 log2 25 + 35 log2 35 = 0.971
entropia(Folha 2) = 44 log2 55 + 04 log2 04 =0
entropia(Folha 3) = 53 log2 35 + 25 log2 25 = 0.971
5 4 5
Logo, Info(N) = 14 0.971 + 14 0 + 14 0.971 = 0.693

Se escolhemos o atributo Temperatura:


4 6 4
Info(N) = 14 entropia(Folha 1) + 14 entropia(Folha 2) + 14
entropia(Folha3) =
0.911
Se escolhemos o atributo Humidade:
7 7
Info(N) = 14 entropia(Folha 1) + 14 entropia(Folha 2) = 0.788

Se escolhemos o atributo Vento:


8 6
Info(N) = 14 entropia(Folha 1) + 14
entropia(Folha 2) = 0.892

Ganho de Informao ao escolher um Atributo. O ganho de informao ao escol-


her um atributo A num n a diferena entre a informao associada ao n antes (Info-pr)
da diviso e a informao associada ao n aps a diviso (Info-ps).
Info-ps = a informao do n (Info(N)) que calculamos no passo anterior, ao escolhermos
A como atributo divisor.
Info-pr = entropia do n antes da diviso = NSim
N
log2 NSim
N
+ NNNao log2 NNNao , onde NSim =
total de tuplas classicadas como Sim; NN ao = total de tuplas classicadas como No;
N = total de tuplas no n.
Exemplo 5.3.3 Consideremos a situao do exemplo 5.3.2. Temos que Info-pr = 149 log2 149 +
5 5
14
log2 14 = 0.940. Logo, os ganhos de informao de cada uma das quatro escolhas so:
ganho(Aparncia) = 0.940 - 0.693 = 0.247
ganho(Temperatura) = 0.940 - 0.911 = 0.029
ganho(Humidade) = 0.940 - 0.788 = 0.152
ganho(Vento) = 0.940 - 0.892 = 0.020
Logo, o atributo ideal para dividir as amostras o atributo Aparncia, como era de
se supor deste o incio. Veja que o nico atributo onde uma das folhas arrumadinha,
todas as tuplas pertencendo a uma nica classe.

Como transformar uma rvore de deciso em regras de classicao. Uma r-


vore de deciso pode ser facilmente transformada num conjunto de regras de classicao.
As regras so do tipo: IF L1 AND L2 . . . AND Ln THEN Classe = Valor, onde Li so
expresses do tipo Atributo = Valor. Para cada caminho, da raiz at uma folha, tem-se
uma regra de classicao. Cada par (atributo,valor) neste caminho d origem a um Li .
Por exemplo, a rvore de deciso do exemplo 5.3.1 corresponde ao seguinte conjunto de
regras de classicao:

IF Idade =< 30 AND Renda = Baixa THEN Classe = No

IF Idade =< 30 AND Renda = Mdia THEN Classe = Sim

IF Idade =< 30 AND Renda = Mdia-Alta THEN Classe = Sim

IF Idade =< 30 AND Renda = Alta THEN Classe = Sim

IF Idade 31..50 THEN Classe = Sim

IF Idade 51..60 THEN Classe = Sim

IF Idade > 60 THEN Classe = No


5.3.2 Redes Neurais
At o momento, temos dois tipos de conceitos que podem ser produzidos em resposta a
uma tarefa de classicao: (1)Regras de Classicao; (2)rvore de Deciso. Uma rvore
de deciso pode ser facilmente transformada num conjunto de regras de classicao e vice-
versa. Nesta subseo, vamos ver um terceiro conceito que pode ser produzido em resposta
a uma tarefa de classicao: uma rede neural. O algoritmo de classicao ter como
entrada um banco de dados de treinamento e retornar como output uma rede neural.
Esta rede tambm poder ser transformada num conjunto de regras de classicao, como
foi feito com as rvores de deciso. A nica diferena que esta transformao no to
evidente como no caso das rvores de deciso.
As redes neurais foram originalmente projetadas por psiclogos e neurobiologistas que
procuravam desenvolver um conceito de neurnio articial anlogo ao neurnio natural.
Intuitivamente, uma rede neural um conjunto de unidades do tipo:
input output

Tais unidades so conectadas umas s outras e cada conexo tem um peso associado.
Cada unidade representa um neurnio. Os pesos associados a cada conexo entre os
diversos neurnios um nmero entre -1 e 1 e mede de certa forma qual a intensidade da
conexo entre os dois neurnios. O processo de aprendizado de um certo conceito pela
rede neural corresponde associao de pesos adequados s diferentes conexes entre os
neurnios. Por esta razo, o aprendizado utilizando Redes Neurais tambm chamado
de Aprendizado Conexionista.
Mais precisamente: uma Rede Neural um diagrama como mostra a Figura 5.11.
camada de camada camada de
input intermediria output
I1

I2

.. . ..
. .
Ii
. .
wij wjk

Oj Ok

Figura 5.11: Uma rede neural

A rede composta de diversas camadas (verticais): (1) Camada de Input : consiste


dos ns da primeira coluna na Figura 5.11. Estes ns correspondem aos atributos (dis-
tintos do atributo classe) do banco de dados de treinamento. (2) Camada de Output :
consiste dos ns da ltima coluna na Figura 5.11. Estes ns so em nmero igual ao
nmero de classes. Eles correspondem, de fato, aos possveis valores do Atributo-Classe.
(3)Camadas escondidos ou intermedirios : consiste dos ns das colunas intermedirias
(indo da segunda at a penltima). Numa rede neural existe pelo menos uma camada
intermediria. Alm disto, a seguinte propriedade se verica: Cada n de uma camada i
deve estar conectado a todo n da camada seguinte i + 1.
Uma rede neural dita de n camadas se ela possui n 1 camadas intermedirias.
Na verdade, conta-se apenas as camadas intermedirias e a de output. Assim, se a rede
tem uma camada intermediria, ela ser chamada de rede de duas camadas, pois possui
uma camada intermedirio e uma de output. A camada de input no contado, embora
sempre exista.

Como utilizar uma rede neural para classicao. Antes de entrar nos detalhes
do algoritmo de classicao, vamos descrever de forma geral, como o processo de
classicao utilizando uma rede neural.
Dispe-se de um banco de dados de treinamento composto de uma nica tabela. Uma
das colunas desta tabela corresponde ao Atributo-Classe. As amostras j esto classi-
cadas. A rede ser treinada para aprender (em cima destas amostras) como classicar
corretamente novos dados. Para cada amostra X = (x1 , ..., xn ), onde x1 , ..., xn so os
valores correspondentes aos atributos no-classe, os elementos x1 , ..., xn so fornecidos a
cada uma das unidades da camada de input. Cada unidade da camada de input fornece
como output o mesmo xi que recebeu como input. Cada unidade da prxima camada
receber como input uma combinao adequada (envolvendo os pesos das conexes) dos
outputs de cada uma das unidades da camada precedente qual est conectada. Esta
unidade retornar como output o resultado da aplicao de uma certa funo de ativao
aplicada ao valor que recebeu como input. Este processo vai se repetindo camada por ca-
mada at chegar na ltima (camada de output). Seja C a classe qual pertence a amostra
X. Suponha que C corresponde i-sima unidade de output. Ento o valor que deveria
ter sido produzido pela rede se ela estivesse bem treinada seria (0,0,...,1,0,0,...0), onde o
nmero 1 aparece na i-sima coordenada. Calcula-se a diferena entre o vetor (O1 , ..., On )
( onde cada Oj o valor de output produzido na j -sima unidade da camada de output,
para j = 1, ..., n ) e o vetor ideal (0,0,...,1,0,0,...0) que deveria ter sido produzido se a
rede estivesse treinada. Seja j o valor da j -sima coordenada do vetor (0,0,...,1,0,0,...0),
para j = 1, ..., n. Caso a diferena = min { | Oj j |, j = 1...n} seja muito grande ,
porque a rede ainda no est bem treinada, no aprendeu ainda a classicar uma amostra
corretamente. Um processo de percurso inverso se inicia, com os pesos das conexes
sendo reavaliados de acordo com uma funo que depende da diferena . Este processo
chamado de Backpropagation. Quando este processo de Backpropagation termina, esta-
mos novamente na situao inicial, s que os pesos das conexes foram alterados. Agora,
a segunda amostra do banco de dados ser utilizada para o aprendizado da mesma forma
como o foi a primeira. Quando todas as amostras do banco de dados foram escaneadas
pela rede, tudo se repete a partir da primeira amostra. Cada iterao correspondendo a
varrer o banco de dados de amostras uma vez chamado de poca.
O algoritmo pra quando uma das condies a seguir se verica numa determinada
poca: (1) Na poca precedente, para cada amostra testada, todas as diferenas entre os
pesos wij so muito pequenas, isto , menor que um certo nvel mnimo fornecido. (2)
S uma pequena porcentagem de amostras (abaixo de um nvel mnimo fornecido) foram
mal classicadas na poca precedente. (3) Um nmero de pocas mximo pr-especicado
j se passou.
Na prtica, centenas de milhares de pocas so necessrias para que os pesos convir-
jam. Quando isto acontece, dizemos que a rede neural est treinada. Teoricamente, a
convergncia no garantida, mas na prtica em geral, ela ocorre depois de um grande
nmero de pocas.
Antes que o processo acima descrito comece a ser executado, obviamente preciso
estabelecer como ser a topologia da rede neural que ser treinada para classicar cor-
retamente as amostras. Esta topologia consiste na especicao do nmero de camadas
intermedirias e do nmero de unidades em cada camada. Tambm necessrio inicializar
os parmetros de aprendizado: os pesos entre as diferentes conexes e os parmetros en-
volvidos na funo que calcula o input de cada unidade j a partir dos outputs recebidos
das unidades da camada precedente; alm disto, preciso especicar qual a funo (de
ativao) que calcula o output de cada unidade j a partir do input recebido.
Como denir a melhor topologia de uma rede neural para uma certa tarefa de
classicao.
1. O nmero de unidades na camada de input : Para cada atributo diferente do atributo
classe, suponhamos que o nmero de valores deste atributo nA ( importante cate-
gorizar o domnio de cada atributo de modo que os valores assumidos sejam poucos).
O nmero de unidades de input ser igual a nA1 +...+nAk onde A1 , ..., Ak so os atrib-
utos distintos do atributo classe. Por exemplo, suponhamos que Idade e RendaMensal
sejam atributos no-classe e seus valores respectivos so: 30, 30..40, 40..50, 50 e
{Baixa,Mdia,Mdia-Alta,Alta}. Ento, teremos pelo menos 8 unidades de input, 4
para o atributo Idade (a primeira para o valor 30, a segunda para o valor 30..40,
etc) e 4 para o atributo RendaMensal (a primeira para o valor `Baixa', a segunda
para o valor `Mdia', etc). Uma amostra X tendo Idade = 30..40 e RendaMensal =
`Alta' vai entrar os seguintes inputs para as unidades: Unidade 1 = 1, Unidade 2 =
0, Unidade 3 = 0, Unidade 4 = 0, Unidade 5 = 0, Unidade 6 = 0, Unidade 7 = 0,
Unidade 8 = 1.

Caso no seja possvel categorizar os atributos, ento normaliza-se os valores dos


atributos de modo a carem entre 0 e 1 ou entre -1 e 1. E constri-se tantas unidades
de input quanto for o nmero de atributos.

2. O nmero de unidades na camada de output : Se existirem somente duas classes,


ento teremos apenas uma unidade de output (o valor 1 de output nesta unidade
representa a classe 1, o valor 0 de output nesta unidade representa a classe 0). Se
existirem mais de duas classes, ento teremos uma unidade de output para cada
classe.

3. O nmero de camadas intermedirias : Normalmente utilizada uma nica camada


intermediria. No h regra clara para determinar este nmero.

4. O nmero de unidades nas camadas intermedirias : No h regra clara para deter-


minar este nmero. Determinar a topologia da rede um processo de tentativa e
erro. Este nmero de unidades nas camadas intermedirias pode afetar o processo de
aprendizagem. Uma vez que uma rede neural foi treinada e o grau de acertos de sua
atividade de classicao no considerado bom na fase de testes, comum repetir
todo o processo de aprendizado com uma rede neural com topologia diferente.

Como inicializar os parmetros da rede. Os pesos iniciais so inicializados por


nmeros pequenos (entre -1 e 1 ou entre -0.5 e 0.5). Outros parmetros que determinam
a funo que calcula o input de cada unidade (numa camada intermediria ou de output)
em funo dos outputs das unidades da camada precedente so tambm inicializados por
valores pequenos. Tais parmetros sero detalhados a seguir. Assim como a denio
adequada da topologia da rede, a boa inicializao dos parmetros da rede um processo
de tentativa e erro. Uma rede treinada que no produz resultados satisfatrios com uma
base de testes pode ser re-treinada com outros valores iniciais para os pesos e demais
parmetros at que consiga bons resultados na etapa de testes.
O algoritmo de classicao por Backpropagation utilizando Redes Neurais.
Vamos descrever abaixo cada passo do Algoritmo de classicao Backpropagation. O
algoritmo vai varrer todas as amostras do banco de dados. Para cada amostra ele vai
percorrer para frente a rede neural e depois para trs. Cada iterao do algoritmo cor-
responde a varrer todas as amostras do banco de dados. As etapas do algoritmo so
descritas a seguir:

1. Inicializa os pesos de cada conexo e as tendncias de cada unidade. Normalmente,


os valores empregados so nmeros muito pequenos entre -1 e 1 ou entre -0.5 e 0.5.
A taxa de aprendizado normalmente especicada pela funo(t) = 1t , onde t o
nmero correspondente iterao em que se est. Assim, na primeira iterao, a
taxa 1, na segunda 12 , etc.

2. Iterao 1: Inicia-se o processo de varrer o banco de amostras. Para cada amostra


X , entra-se os valores dos atributos de X na camada de input. Propaga-se os inputs
para a frente na rede neural at chegar na camada de output nal.

3. Chegando na camada nal, faz-se um teste para ver se X foi ou no bem classicada
de acordo com o limite mnimo de exigncia estabelecido no input do algoritmo.

4. Independentemente do resultado do teste, inicia-se o processo de volta recalculando


todos os pesos das conexes e tendncias das unidades at chegar na camada de
input.

5. Existem duas possibilidades para os updates dos pesos e tendncias:(1) Estes so


atualizados a cada passada por uma amostra. (2) Para cada amostra os novos pesos
e tendncias so estocados em variveis, mas no so atualizados. Assim, a prxima
amostra utiliza os mesmos pesos e tendncias utilizados na amostra precedente. A
atualizao s ocorre no nal da iterao, quando todas as amostras foram varridas.
Normalmente, utiliza-se a primeira poltica de atualizao, que produz melhores
resultados.
A iterao 1 termina quando todo o banco de dados de amostras foi varrido.

6. Iterao k (k > 1 ) : o processo se repete, isto , o banco de dados varrido


novamente com os novos pesos e tendncias atualizados para cada amostra.

7. Condies de Parada : como j dissemos antes, o algoritmo pra numa certa it-
erao k quando uma das condies se verica (em ordem de prioridade):(1) Os
ij calculados na iterao k 1 so todos muito pequenos, abaixo de um limite
mnimo especicado no input do algoritmo. (2) A porcentagem de amostras mal-
classicadas na iterao precedente est abaixo de um limite mnimo especicado
no input do algoritmo.(3) k maior do que um limite mximo especicado no input
do algoritmo.

Cada iterao do algoritmo corresponde a uma poca.


Os processos de propagao para frente e para trs so descritos a seguir:
1. Fase de ida: Como so calculados os inputs das unidades intermedirias ? Para
calcular o input Ij na unidade j de uma certa camada intermediria, utilizamos
a seguinte frmula Ij = (i wij Oi ) + j , onde Oi o output de cada unidade i da
camada precedente, wij o peso da conexo entre a unidade i da camada precedente
e a camada j atual, e j um parmetro prprio da unidade j , chamado tendncia.
Trata-se de um parmetro de ajuste ligado unidade. Ele serve para variar a
atividade da unidade.

Depois de calculado este Ij , aplicamos uma funo f , chamada funo de ativao


que tem como tarefa normalizar os valores de Ij de modo a carem num intervalo
entre 0 e 1. O resultado deste clculo o output Oj da unidade j . Normalmente
esta funo deve ser no-linear e diferencivel. Uma funo que frequentemente
utilizada f (x) = 1+e1x . A Figura 5.12 esquematiza o clculo do input Ij na
unidade j em funo dos outputs das unidades da camada precedente e o clculo do
output Oj na unidade j , aplicando a funo de ativao do neurnio j em seu input
Ij .
pesos

w0j
x0

+ j
w1j
x1 INPUT Ij na unidade j
tendncia

w2j
x2

outputs da
camada precedente Mdia ponderada
dos outputs recebidos

Input Ij f Output Oj

funo de ativao

Figura 5.12: Clculos do input e do output de uma unidade j

2. Fase de volta: Como so recalculados os pesos das conexes e as tendncias de cada


unidade na volta para a camada de input. Quando, no nal da fase de ida, atinge-se a
camada de output, feito um teste para ver qual a diferena entre o output calculado
em cada unidade e o valor correspondente classe do input que est associado a
esta unidade (1 ou 0). Se todas as diferenas calculadas em cada unidade de output
so muito grandes (ultrapassam um certo limite fornecido), inicia-se um processo de
volta (Backpropagation ) que vai recalcular todos os pesos e tendncias em funo
destas diferenas que foram encontradas nas camadas de output. Isto , a rede vai
tentar ajustar seus pesos e tendncias de modo que estes novos parmetros reitam
o seu aprendizado sobre a amostra que acabou de ser avaliada. Como feito este
ajuste ?
(a) Primeiramente so calculados os erros em cada unidade: Para a unidade j da
camada de output computado o erro Ej = Oj (1 Oj )(Tj Oj ), onde Oj =
valor do output da unidade j , Tj = valor correspondente classe da amostra
X , associado unidade j . Este valor 1 ou 0. Repare que Oj (1 Oj ) =
derivada da funo f em termos do input da unidade j .
Para as unidades das camadas intermedirias: para cada unidade j de uma
camada intermediria, o erro Ej calculado como Ej = Oj (1 Oj )(k Ek wjk ),
onde wjk = peso da conexo ligando a unidade j unidade k da camada
seguinte, e Ek o erro que j foi calculado nesta unidade k .
(b) Em seguida, so calculados os novos pesos de cada conexo (unidade i
unidade j ) Novo wij = Velho wij +wij , onde wij = Ej Oi . A constante
um parmetro do algoritmo e chamada de taxa de aprendizado. um nmero
entre 0 e 1. Este parmetro ajuda a evitar que o processo que parado num
mnimo local, isto , num ponto onde os pesos parecem convergir (a diferena
entre os pesos muito pequena) mas que na verdade se trata de um mnimo
local e no global.
(c) Em seguida so calculados as novas tendncias em cada unidade: Nova j =
Velha j + j , onde j = Ej .

A crtica maior que se faz com relao e esta tcnica a sua interpretabilidade, isto
, no bvio para um usurio interpretar o resultado do algoritmo, a saber, uma rede
neural treinada como sendo um instrumento de classicao (as regras de classicao
correspondentes a uma rede treinada no so bvias como acontece com as rvores de
deciso). Alm disto, difcil para os humanos interpretar o signicado simblico que
est por trs dos pesos das conexes da rede treinada. As vantagens das redes neurais,
incluem sua alta tolerncia a dados contendo rudos assim como a grande conana dos
resultados. Atualmente diversos algoritmos j foram desenvolvidos para se extrair regras
de classicao de uma rede treinada, o que minimiza de certa forma a desvantagem do
mtodo mencionada acima.

5.3.3 Mtodo K-Means para Anlise de Clusters


Anlise de Clusters o processo de agrupar um conjunto de objetos fsicos ou abstratos em
classes de objetos similares. Um cluster uma coleo de objetos que so similares uns aos
outros (de acordo com algum critrio de similaridade pr-xado) e dissimilares a objetos
pertencentes a outros clusters. Anlise de Clusters uma tarefa de aprendizado no-
supervisionado, pelo fato de que os clusters representam classes que no esto denidas no
incio do processo de aprendizagem, como o caso das tarefas de Classicao (aprendizado
Supervisionado ), onde o banco de dados de treinamento composto de tuplas classicadas.
Clusterizao constitui uma tarefa de aprendizado por observao ao contrrio da tarefa
de Classicao que um aprendizado por exemplo.
O mtodo k -means para Anlise de Clusters, recebe como input um banco de dados
de objetos (tuplas) e um nmero k (representando o nmero de clusters que se deseja
formar entre os objetos do banco de dados). O banco de dados dado em forma de uma
matriz de dissimilaridade entre os objetos. Nesta matriz o elemento da coluna j e linha
i da matriz o nmero d(i, j) representando a distncia entre os objetos i e j . Vrias
funes so utilizadas para medir a distncia. Algumas delas so: distncia Euclidiana,
distncia de Manhattan, distncia de Minkowski. O leitor encontrar no nal desta seo
referncias sobre este assunto. O quadro abaixo ilustra uma matriz de dissimilaridade:

0 ...
d(2, 1) 0
d(3, 1) d(3, 2) 0
.. .. .. .. ..
. . . . .
d(n, 1) d(n, 2) d(n, 3) ... 0

Existem tcnicas para construir tal matriz de dissimilaridade, dependendo do tipo de


dados presentes no banco de dados.
Seja C = {C1 , . . . , Ck } uma partio do banco de dados em k clusters e sejam m1 , m2 ,
. . . , mk elementos escolhidos em cada um dos clusters, representando o centro dos mesmos
(Estes elementos podem ser denidos de diversas maneiras). Denimos o erro quadrtico
da partio como sendo Erro(C ) = ki=1 pCi | p mi |2 .
O mtodo k -means que apresentamos a seguir procura construir uma partio C con-
tendo k clusters, para a qual o erro quadrtico mnimo. Os elementos representativos
de cada cluster so os seus centros de gravidade respectivos. A idia geral do mtodo a
seguinte: (1) Escolhe-se arbitrariamente k objetos {p1 , ..., pk } do banco de dados. Estes
objetos sero os centros de k clusters, cada cluster Ci formado somente pelo objeto pi .
(2) Os outros objetos do banco de dados so colocados nos clusters da seguinte maneira:
para cada objeto O diferente de cada um dos pi 's, considera-se a distncia entre O e
cada um dos pi 's (isto dado pela matriz de dissimilaridade). Considera-se aquele pi para
o qual esta distncia mnima. O objeto O passa a integrar o cluster representado por
pi .
(3) Aps este processo, calcula-se a mdia dos elementos de cada cluster, isto , o seu
centro de gravidade. Este ponto ser o novo representante do cluster.
(4)Em seguida, volta para o passo 2: varre-se o banco de dados inteiro e para cada
objeto O calcula-se a distncia entre este objeto O e os novos centros dos clusters. O
objeto O ser realocado para o cluster C tal que a distncia entre O e o centro de C
a menor possvel.
(5) Quando todos os objetos forem devidamente realocados entre os clusters, calcula-se
os novos centros dos clusters.
(6) O processo se repete at que nenhuma mudana ocorra, isto , os clusters se
estabilizam (nenhum objeto realocado para outro cluster distinto do cluster atual onde
ele se encontra).
A Figura 5.13 ilustra o funcionamento do mtodo k -means para k = 3. Na primeira
iterao, os objetos circundados representam os que foram escolhidos aleatoriamente. Nas
prximas iteraes, os centros de gravidade so marcados com o sinal +.
possvel mostrar que o mtodo k -means produz um conjunto de clusters que minimiza
o erro quadrtico com relao aos centros de gravidade de cada cluster. Este mtodo
s produz bons resultados quando os clusters so nvens compactas de dados, bem
separadas umas das outras. As vantagens do mtodo so sua ecincia em tratar grandes
conjuntos de dados. Suas desvantagens so o fato do usurio ter que fornecer o nmero
de clusters k , o fato de no descobrir clusters de formatos no-convexos e sobretudo o
fato de ser sensvel a rudos, j que objetos com valores altos podem causar uma grande




+
' +
+ +
'


'


+ +

1a iterao 2a iterao 3a iterao

Figura 5.13: O mtodo k -means

alterao no centro de gravidade dos clusters e assim, distorcer a distribuio dos dados
nos mesmos.

5.3.4 Mtodo CURE para Anlise de Clusters


Os mtodos de clusterizao podem ser divididos, grosso modo, em mtodos por parti-
cionamento e mtodos hierrquicos. Um mtodo de particionamento o k -means que
vimos na subseo precedente. Outros so indicados nas referncias no nal da seo. Os
algoritmos de clusterizao hierrquicos aglomerativos seguem a seguinte idia geral: (1)
Comeam com um nmero de clusters igual ao tamanho do banco de dados: um cluster
para cada objeto. (2) Pares de clusters so aglutinados a cada iterao at que um nmero
k (dado) de clusters seja alcanado, ou que a distncia mnima entre os clusters seja menor
do que um limite fornecido (avaliar este parmetro no tarefa fcil). Geralmente, utiliza-
se o critrio de parada correspondente a atingir o nmero k de clusters desejado. (3) O
critrio para se aglutinar dois clusters a distncia entre eles: so aglutinados, a cada
iterao, os dois clusters que esto mais prximos. Diferentes funes so utilizadas para
medir a distncia entre dois clusters Ci , Cj :

dmean (Ci , Cj ) =| mi mj |, onde mi o centro de gravidade do cluster Ci . Chamamos


este enfoque de enfoque baseado em centride.

dmin (Ci , Cj ) = min | p q |, para todos p Ci e q Cj . Chamamos este enfoque


de MST (Minimum Spanning Tree ).
1
dave (Ci , Cj ) =
ni nj pCi qCj
| p q |, onde ni = tamanho do cluster Ci .

dmax (Ci , Cj ) = max | p q |, para todos p Ci e q Cj .

O algoritmo CURE O algoritmo CURE recebe como input um banco de dados D e


um nmero k que o nmero de clusters que se deseja obter (assim como os mtodos de
particionamento, o k deve ser fornecido pelo usurio). CURE produz como resultado k
clusters. Alm disto, outros parmetros de ajuste devero ser fornecidos ao algoritmo para
a sua execuo. Tais parmetros sero descritos durante a apresentao do algoritmo.
O algoritmo CURE um algoritmo hierrquico aglomerativo que utiliza uma poltica
mista para o clculo da distncia entre dois clusters, a cada iterao. Esta poltica
uma espcie de mistura entre a poltica dos centrides (onde a distncia entre dois clus-
ters a distncia entre seus centros de gravidade) e a chamada polticca MST (Minimum
Spanning Tree) (onde a distncia entre dois clusters igual distncia mnima entre dois
pontos, um em cada cluster). CURE vai considerar um nmero adequado de represen-
tantes de cada cluster, elementos que esto adequadamente distribudos no cluster e que
representam zonas bem distintas dentro do mesmo). A distncia entre dois clusters ser
min (d(ci , c0j ) onde todos os representantes do primeiro cluster ({c1 , ..., cn }) e do segundo
cluster ({c01 , ..., c0m }) so considerados. A Figura 5.14 ilustra as duas polticas clssicas
nos mtodos hierrquicos para clculo de distncia entre dois clusters (para efeito de
aglutinamento dos mesmos) e a poltica adotada por CURE.


d2


+ d1
+

d3

C1 C2 C1 C2 C1 C2

dmean (C1 ,C2 ) = d1 dmin (C1 ,C2 ) = d2 dcure (C1 ,C2 ) = d3

Figura 5.14: Polticas de clculo de distncia nos mtodos hierrquicos

As caractersticas principais de CURE so:(1)Clusters de formas arbitrrias podem


ser detectados por CURE ( a exemplo dos mtodos baseados em densidade). Isto normal-
mente no acontece com os mtodos por particionamento. (2) CURE robusto quanto
presena de rudos. (3) Uma desvantagem de CURE a sua complexidade O(n2 ), onde n
o tamanho do banco de dados de input.

Idia geral. Como todo algoritmo hierrquico aglomerativo, CURE inicia com cada
objeto do banco de dados constituindo um cluster. Logo, temos n clusters no incio, onde
n = tamanho do banco de dados.
A m de calcular a distncia entre dois clusters, so armazenados c representantes de
cada cluster. Este nmero c um parmetro de ajuste que deve ser fornecido como input
ao algoritmo. Estes c pontos so escolhidos de forma a representar regies bem distintas
em cada cluster. Depois de escolhidos, feita uma retrao destes pontos na direo do
centro do cluster, de um fator , onde 0 1. Este nmero um dos parmetros
de ajuste que devem ser fornecidos como input. A distncia entre dois clusters ser a
distncia entre os pares de representantes mais prximos, um em cada cluster. Assim,
somente os representantes so levados em considerao para o clculo da distncia entre
dois clusters. Na Figura 5.15, os pontos dentro de crculos so os representantes antes
da retrao. Aps uma retrao de um fator = 1/2 na direo do centro +, os pontos
obtidos so aqueles dentro de 2.
Estes c representantes tentam capturar o formato do cluster. A retrao em direo
ao centro de gravidade do cluster tem o efeito de diminuir a inuncia dos rudos. A
razo para isto que os outliers estaro longe do centro do cluster. Caso um outlier seja
escolhido como representante do cluster, aps a retrao ele se aproximar do centro bem
mais do que os outros representantes que no so outliers.
O parmetro tambm serve para capturar o formato do cluster. Valores de pe-
quenos favorecem clusters de formato menos compacto, no-convexo. Valores grandes
para (prximos de 1), aproximando os representantes do centro do cluster, favorecem a
criao de clusters mais compactos, convexos, de forma esfrica.




+



Figura 5.15: Como se formam os clusters no algoritmo CURE

Aps calculada a distncia entre os clusters, aglutina-se aqueles dois primeiros que
esto mais prximos. Este processo de aglutinamento envolve a clculo dos novos repre-
sentantes para o cluster aglutinado.
Depois disso, volta-se para o passo anterior, calculando-se as distncias entre os novos
clusters e aglutinando-se aqueles que esto mais prximos. Este processo pra quando se
atinge o nmero k de clusters desejado (o k parmetro do algoritmo).
Notas Bibliogrcas. O algoritmo ID3 foi criado por Ross Quinlan, da Universidade
de Sydney em 1986. O algoritmo C4.5 m de seus sucessores, tambm proposto por
Quinlan em 1993. Uma boa referncia para estes algoritmos [WF 2000]. O algoritmo de
Backpropagation foi apresentado pela primeira vez em [RHW 1986]. Muitos livros sobre
Aprendizado de Mquina fornecem uma boa explicao deste algoritmo. Por exemplo
[WK 1991]. Um algoritmo para extrao de regras de classicao de uma rede neural
treinada pode ser encontrada em [LSL 1995]. O artigo [Roy 2000] traz uma interessante
discusso sobre o aprendizado do crebro humano e o aprendizado articial de uma rede
neural. Em [Set 1997], temos um algoritmo para poda de redes neurais. O algoritmo
CURE para anlise de clusters foi introduzido em [GRS 1998] em 1998. Outros algoritmos
de clusterizao podem ser encontrados em [ZRL 1996](BIRCH), [EKSX 1996](DBSCAN)
e [NH 1994](k -medides).

5.4 Tcnicas de Otimizao e Implementao


5.4.1 Algumas Tcnicas de Otimizao de Apriori
Diversas tcnicas de otimizao foram propostas e colocadas em prtica para melhorar a
performance do algoritmo Apriori. As tcnicas atuam da seguinte maneira:
(1) Categoria 1 : Diminuem o nmero de candidatos que so testados para cada transao
(para ver quais so suportados por cada transao) na fase do clculo do suporte. Tambm
atuam na fase de poda, diminuindo o nmero de subconjuntos a serem testados para cada
pr-candidato (lembre-se que um pr-candidato de tamanho k s considerado bom se
todos os seus subconjuntos de tamanho k 1 aparecem no Lk1 ).
Categoria 2 : Diminuem o tamanho do banco de dados a cada iterao.
Categoria 3 : Diminuem o nmero de varridas do banco de dados. No algoritmo Apriori
clssico, o banco de dados varrido a cada iterao.
Categoria 4 : Diminuem o nmero de candidatos gerados.
Utilizando uma rvore-hash para armazenar Ck e Lk1 . Uma rvore-hash uma
rvore onde as folhas armazenam conjuntos de itemsets, e os ns intermedirios (inclusive
a raiz) armazenam tabelas-hash contendo pares do tipo (nmero, ponteiro), como mostra
a Figura 5.16.
1
2
3

1 1 1
2 2 2
3 3 3

1
2
3

Figura 5.16: rvore-hash

Uma rvore-hash utilizada para estocar itemsets. Por exemplo, suponhamos que
queiramos estocar o seguinte conjunto de 2-itemsets numa rvore-hash:

Po Leite
Po Acar
Po Manteiga
Leite Acar
Leite Manteiga
Acar Manteiga

Vamos utilizar a enumerao dos itens descrita na Figura 5.2 e vamos ordenar os
itemsets segundo a ordem lexogrca associada a esta enumerao. Suponhamos que o
nmero mximo de itemsets numa folha M = 3 e que cada n tem no mximo N = 2
descendentes. Para a estocagem deste conjunto de itemsets numa rvore-hash respeitando
estes parmetros, utilizamos uma funo hash h que servir para distribuir os itemsets
nas folhas da rvore. Esta funo denida como se segue: h(Po) = 1, h(Leite) = 2,
h(Acar) = 1, h(Manteiga) = 2. No incio, todos os cinco itemsets esto na raiz, como
mostra a Figura 5.17
Como o nmero mximo de itemsets numa folha 3, preciso transformar a raiz num
n intermedirio e criar ns descendentes da raiz. A Figura 5.18 ilustra a criao dos dois
lhos da raiz.
A primeira folha excede o nmero mximo de elementos permitido. Logo, deve se
transformar num n intermedirio e ns-folha devem ser criados a partir deste primeiro
n. A Figura 5.19 ilustra este processo.
Repare que agora, o nmero de elementos das folhas no excede 3 e portanto o processo
termina.
Como utilizar uma rvore-hash na fase de poda dos candidatos
Po, Leite
Po, Acar
Po, Manteiga
Leite, Acar
Leite, Manteiga
Acar, Manteiga

Figura 5.17: Raiz da rvore-hash

h(i1 ) = 1 h(i1 ) = 2

Po, Leite Leite, Acar


Po, Acar Leite, Manteiga
Po, Manteiga
Acar, Manteiga

Figura 5.18: Filhos do n-raiz

h(i1 ) = 1 h(i1 ) = 2

h(i2 ) = 1 h(i2 ) = 2 Leite, Acar


Leite, Manteiga

Po, Acar Acar, Manteiga


Po, Leite
Po, Manteiga

Figura 5.19: Itemsets armazenados numa rvore-hash

Suponhamos que tenhamos gerado os pr-candidatos C30 e vamos utilizar L2 (itemsets


frequentes de tamanho 2 calculados na fase anterior) para podar os pr-candidatos e
obter C3 . Para isso, armazenamos o conjunto de itemsets L2 numa rvore-hash, como
descrevemos no pargrafo precedente. Para cada elemento de C30 , temos que vericar se
este contm um 2-itemset que no est em L2 . Por exemplo, suponha que I = {Po,
Acar, Manteiga} C30 . Construimos todos os subconjuntos de 2 elementos de I: {Po,
Acar}, {Po, Manteiga}, {Acar, Manteiga}. Suponha que nosso L2 esteja armazenado
na rvore-hash da Figura 5.19. Para cada um dos 3 subconjuntos de I de tamanho 2,
vamos vericar se est presente numa das folhas da rvore. O itemset {Po, Acar}
procurado somente na primeira folha, j que h(Po) = 1 e h(Acar) = 1. Assim, evita-se
de percorrer elementos de L2 que decididamente nunca poderiam conter {Po, Acar}.
Os itemsets {Po, Manteiga} e {Acar, Manteiga} so procurados somente na segunda
folha. A terceira folha no varrida, economizando-se tempo com isso.

Como utilizar uma rvore-hash na fase de avaliao do suporte


Nesta fase, armazena-se os candidatos j podados Ck numa rvore-hash. Para cada
transao t do banco de dados, vamos aumentar o contador de suporte de cada elemento
de Ck que esteja contido em t (isto , que seja suportado por t). Por exemplo, suponha que
C2 esteja armazenado na rvore-hash da Figura 5.19 e que t = {Po, Leite, Manteiga} seja
uma transao do banco de dados. Quais candidatos de C2 so suportados por t ? Para
isso, fazemos uma busca recursiva dos subconjuntos de 2 elementos de t: {Po, Leite},
{Po, Manteiga}, {Leite, Manteiga}. O primeiro, {Po, Leite} s pode se encontrar na
folha 2 (j que h(Po) = 1 e h(Leite) = 2). Logo, esta folha varrida. Se o itemset
encontrado, aumentamos seu contador de 1. Analogamente, o segundo 2-itemset, {Po,
Manteiga} s pode se encontrar na folha 2 e o terceiro, {Leite, Manteiga} s pode se
encontrar na folha 3. Veja que a folha 1 no varrida, economizando-se tempo com isso.
A Figura 5.20 ilustra os itemsets que so suportados pela transao t e que, portanto,
tm seus contadores aumentados de 1.

h(i1 ) = 1 h(i1 ) = 2

h(i2 ) = 1 h(i2 ) = 2 Leite, Acar


Leite, Manteiga (+1)

Poo, Acar Acar, Manteiga


Po, Leite (+1)
Po, Manteiga (+1)

Figura 5.20: Utilizao de uma rvore-hash na fase de clculo do suporte

Notas Bibliogrcas. A tcnica da rvore-hash foi introduzida em [AS 1994] e adap-


tada para minerao de sequncias [AS 1995, AS 1996]. Tcnicas para diminuir o nmero
de varridas no banco de dados podem ser encontradas em [SON 1996]. Tcnicas de geren-
ciamento de buer tambm so descritas em [AS 1994, AS 1995, AS 1996].

5.5 Aspectos Tericos e Generalizao


Apesar do interesse da rea de Minerao de Dados estar concentrado nas potenciais
aplicaes das tcnicas, os aspectos tericos envolvidos devem ser investigados no sentido
de encontrar os elementos essenciais das diversas tcnicas de minerao e desenvolver
mtodos que avaliem sua complexidade e otimiz-las na medida do possvel. Nesta seo,
vamos dar algumas noes tericas subjacentes tcnica de minerao crescimento-poda-
validao que vimos na Seo 5.2.
5.5.1 Um Algoritmo Geral Baseado numa Hierarquizao do Es-
pao de Busca
A tarefa de descobrir todas os padres interessantes pode ser descrita de forma geral como
segue: Suponha que temos uma linguagem L de especicao de padres, e uma condio
de seleo Q que utilizada para avaliar se um padro de L ou no interessante. A
tarefa em que estamos interessados encontrar o conjunto S de todos os padres de L
que satisfazem a condio Q quando testada sobre um conjunto de dados D. O objetivo
desta subseo descrever um mtodo geral para calcular o conjunto S . Veremos que os
algoritmos de minerao de regras de associao e de sequncias que estudamos na Seo
5.2 se encaixam neste esquema geral. Antes de mais nada, precisamos introduzir uma
relao de especializao entre os padres de L. Uma tal relao simplesmente uma
ordem parcial 1 sobre L. Dizemos que mais geral do que se ; neste caso,
tambm dizemos que mais especco do que . A relao monotnica com relao
condio de seleo Q se, sempre que e Q satisfaz , temos que Q tambm satisfaz
. Em outras palavras, se um padro interessante ento todos os padres mais gerais
do que ele tambm o so. Denotamos por se e 6= .
A idia do algoritmo Level Search comear gerando os padres mais gerais possveis,
e em seguida ir gerando e testando padres mais e mais especcos, mas no testar aqueles
padres que no tm chance de ser interessantes. A informao obtida em iteraes anteri-
ores do indcios sucientes para garantir que certos padres no podem ser interessantes,
sem que se tenha de valid-los no banco de dados.
Algoritmo Level Search
Entrada: Um banco de dados D, uma linguagem de padres L com uma relao de
especializao , e uma condio de seleo Q sobre o banco de dados D.
Sada: O conjunto dos padres S que satisfazem Q.
Mtodo :

1. C1 := { L| no existe L tal que };


2. i := 1;
3. while Ci 6= begin
4. // Validao: encontra os padres de C1 que satisfazem Q:
5. Fi := { Ci | satisfaz Q} S
6. // gerao: calcula Ci+1 L usando ji Fj : S S
7. Ci+1 := { L | para todo tem-se que ji Fj } ji Cj ;
8. i := i + 1;
9. end S
10. retorna ji Fj ;
O algoritmo executa iterativamente, alternando entre as fases de gerao de candidatos
e validao dos candidatos. Primeiro, na fase de gerao da iterao i, gerada a coleo
Ci de novos padres candidatos, usando para isso informao proveniente de padres mais
gerais. Em seguida, a condio de seleo avaliada em cima destes novos padres can-
didatos. A coleo Fi vai consistir daqueles padres de Ci que satisfazem Q. Na prxima
iterao i+1, padres candidatos em Ci+1 so gerados usando a informao sobre padres
1 Uma relao de ordem parcial sobre um conjunto V uma um subconjunto R do produto cartesiano
V V satisfazendo as propriedades (1) reexiva : para todo a V , tem-se (a, a) R; (2) antissimtrica :
se (a, b) R e (b, a) R ento a = b; (3) transitiva : se (a, b) R e (b, c) R ento (a, c) R.
S
em ji Fj . O algoritmo comea construindo o conjunto C1 que contm os padres mais
gerais possveis. A iterao pra quando nenhum padro novo potencialmente interessante
encontrado. O algoritmo objetiva minimizar o nmero de varridas no banco de dados,
i.e., o nmero de testes da condio Q (passo 5). Note que o clculo para determinar o
conjunto de candidatos (passo 7) no envolve o banco de dado.

5.5.2 Exemplos
Nesta subseo, vamos descrever como os algoritmos de minerao de Regras de Associ-
ao e Sequncias que vimos na Seo 5.2 so na verdade casos especiais do algoritmo
Level Search que descrevemos na subseo anterior (exemplos 5.5.1 e 5.5.2). No exem-
plo 5.5.3, mostramos como a tcnica Level Search pode ser aplicada para desenvolver
algoritmos para novas tarefas de minerao.

Exemplo 5.5.1 (Regras de Associao - o algoritmo Apriori) Consideremos a ta-


refa de Regras de Associao que discutimos na Sezo 5.2. Para esta tarefa, vamos
identicar os elementos da tcnica Level Search :

A linguagem dos padres L: trata-se aqui do conjunto de todos os itemsets sobre o


conjunto de items I .

Relao de Especializao: se I e J so itemsets ento dizemos que I mais espec-


co do que J se J I . O conjunto dos candidatos C1 constitudo dos itemsets
unitrios. So os itemsets mais gerais possveis, segundo esta relao de especial-
izao.

Propriedade Q: esta propriedade a condio dada pelo suporte, isto , I satisfaz


Q se e somente se sup(I, D) .

Exemplo 5.5.2 (Sequncias - O algoritmo GSP) Consideremos agora a tarefa de


Anlise de Sequncias que vimos na Seo 5.2. Para esta tarefa, vamos identicar os
elementos da tcnica Level Search :

A linguagem dos padres L: trata-se aqui do conjunto de todas as sequncias de


itemsets s =< {i1 , ..., in }, ..., {j1 , ..., jm } > sobre o conjunto de items I .

Relao de Especializao: se s =< s1 , ..., sk > e s0 =< s1 , ..., sm > so sequncias


de itemsets ento dizemos que s mais especca do que s0 se existe subsequncia
s00 =< si1 , ..., sik > tal que sij s0j para todo j = 1, ..., k . O conjunto dos candidatos
C1 constitudo das sequncias do tipo < {a} > compostas de um nico itemset
unitrio. So as sequncias mais gerais possveis, segundo a relao de especializao
acima (dada pela noo de subsequncia ).

Propriedade Q: esta propriedade a condio dada pelo suporte, isto , s satisfaz


Q se e somente se sup(s, D) .

Vamos agora aplicar a tcnica Level Search a m de desenvolver algoritmos para novas
tarefas de minerao.
Exemplo 5.5.3 (Episdios) Vamos considerar a tarefa de descobrir episdios em se-
quncias de eventos. Um episdio uma coleo de eventos que ocorrem durante um
intervalo de tempo de tamanho dado. Formalmente: Seja E um conjunto de eventos; um
episdio uma tripla = (V, , g) onde V um conjunto de vrtices, uma relao
de ordem parcial sobre V e g : V E uma aplicao associando a cada vrtice de V
um evento em E . Intuitivamente, um episdio um padro dado pelo grafo g(V ), isto
, um conjunto de eventos acontecendo na ordem dada pela relao de ordem parcial .
A Figura 5.21 (a) ilustra uma sequncia de eventos. Esta sequncia constitui os dados
a serem varridos procura de episdios que se repetem ao longo da sequncia com uma
certa frequncia. A Figura 5.21(b) representa um episdio, contendo dois eventos A e
B , mas no especica nenhuma ordem entre estes eventos. Na Figura 5.21(c) temos um
episdio contendo um evento adicional C e onde se exige que C deve ocorrer aps A e B .

E D F A B C E F C D B A D C E F C B E A E C F A D

tempo

Dados: uma longa sequencia de eventos


(a)

A A

B B

(b) (c)

Figura 5.21: (a) Uma sequncia de eventos; (b) e (c) dois episdios

A tarefa de minerao consiste em descobrir todos os episdios que aparecem na se-


quncia de eventos dentro de um intervalo de largura w dada, com uma frequncia superior
a um dado limite mnimo . A frequncia de um episdio a porcentagem de intervalos de
largura w contendo o episdio. O algoritmo Level Search pode ser adaptado para minerar
episdios. A linguagem dos padres L conjunto de todos os episdios denidos sobre
um conjunto de eventos E . A relao de especializao denida por: se = (V, , g) e
= (V 0 , 0 , g 0 ) so dois episdios, dizemos que se (1) V V 0 , (2) para todo v V ,
g(v) = g 0 (v), e (3) para quaisquer v, w V com v w tem-se tambm v 0 w. Por ex-
emplo, o episdio da Figura 5.21(a) mais geral (segundo a ordem ) do que o episdio
da Figura 5.21(b). A propriedade Q a condio dada pela frequncia de um episdio,
isto , um episdio satisfaz Q se e somente se sua frequncia dentro de intervalos de
largura w superior a um dados.

Notas Bibliogrcas. Ao leitor interessado em ir mais a fundo no material tratado


de forma sucinta nesta seo, sugerimos a leitura do artigo [MT 1997]. A tcnica de
crescimento de padres descrita aqui, utilizando a relao de especializao e a passagem
de um nvel a outro do espao de busca atravs do clculo da fronteira negativa do nvel
precedente foi primeiramente introduzida em [Mit 1982]. Uma outra referncia importante
que trata desta tcnica [Lan 1996]. Em [MTV 1997] tratado o problema de minerao
de episdios.
5.6 Aplicaes de Minerao de Sequncias
5.6.1 Web Log Mining
Descobrir padres de comportamento frequentes na navegao dos usurios de um site no
somente pode ajudar a melhorar a arquitetura do site (isto , fornecer acessos ecientes
entre objetos altamente correlacionados) mas tambm ajudar a tomar decises apropri-
adas no que diz respeito distribuio de material publicitrio no site. Os caminhos
percorridos pelos usurios so armazenados num arquivo de logs, num servidor especial
da organizao que gerencia o site em questo. Os dados armazenados so registros da
forma:

u1 (s1 , d1 ) t1
u2 (s2 , d2 ) t2
.. .. ..
. . .

onde ui um identicador do usurio (seu IP, por exemplo), o par (si , di ) (chamado
refer log ) constitudo de dois endereos: (1) o endereo fonte si que o endereo da
pgina anterior visitada pelo usurio, e (2) o endereo destino que o endereo da pgina
atualmente visitada pelo usurio. ti o tempo correspondente operao de passagem
de uma pgina para outra.
Cada vez que um usurio inicia sua visita num site, um registro do tipo (null, d)
inserido no arquivo de logs, onde d o endereo da pgina principal (Home) do site. No
momento em que o usurio entra num outro site, um novo registro do tipo (null, d0 )
armazenado, indicando que a sesso de visita do site anterior se encerrou e uma nova
sesso est se iniciando no site d0 . Consideremos o seguinte exemplo ilustrado na Figura
5.22.

A 12
1

B O
2 6 15
13 14
5
C
E U V
3 7
4
D 11
G
8 10
9
H W

Figura 5.22: Uma sequncia de pginas visitadas por um usurio

A Figura 5.22 corresponde navegao de um usurio atravs do site cujo endereo


principal (home) A. No arquivo de log, teremos o seguinte caminho correspondente a
cada uma das pginas visitadas pelo usurio dentro do site (deste sua entrada no site at
sua sada):
< A, B, C, D, C, B, E, G, H, G, W, A, O, U, O, V >
suposto que aps a visita da pgina V , o usurio sai da Internet, ou entra num
outro site, iniciando uma nova srie de registros de log com o primeiro registro (null, d0 )
correspondendo ao endereo d0 do novo site.
Podemos transformar esta sequncia de pginas visitadas num conjunto de sequncias
correspondendo somente s visitas para frente, isto , as voltas para pginas anterior-
mente visitadas so eliminadas. O resultado da transformao o seguinte conjunto de
sequncias:
{< A, B, C, D >, < A, B, E, G, H >, < A, B, E, G, W >, < A, O, U >, < A, O, V >}
Tais sequncias para frente, correspondentes a uma nica sequncia de acessos do
usurio chamada de sequncias maximais para frente. Assim, o banco de dados de
registros de log, pode ser visto como um banco de dados de sequncias maximais para
frente. Repare que, cada usurio possui diversas sequncias maximais para frente (o
identicador do usurio no chave).
Uma sequncia de referncias uma sequncia s =< s1 , s2 , ..., sn > onde os si so
smbolos que mapeiam endereos de pginas dentro de um site. Uma sequncia de
referncias s =< s1 , s2 , ..., sn > suportada por uma sequncia maximal para frente
t =< t1 , t2 , ..., tm > se existe i = {1, ..., m} tal que s1 = ti , s2 = ti+1 , ..., sm = ti+n1 >. O
suporte de uma sequncia de referncias s dado por:

nmero de seq. max. para frente que suportam s


sup(s) =
total de seq. max para frente
Uma sequncia de referncias dita frequente se seu suporte maior ou igual a um
nvel mnimo de suporte dado.
Um problema de Web Log Mining o seguinte: dado um banco de dados D de sequncias
maximais para frente e um nvel de suporte mnimo entre 0 e 1, descobrir todas as
sequncias de referncias frequentes com relao a D e a . Existem algumas diferenas
entre este problema e o problema clssico de minerao de sequncias:(1) um usurio pode
ser contado diversas vezes no clculo do suporte de uma sequncia de referncias. Isto no
acontece no clculo do suporte de sequncias de itemsets, pois o identicador do usurio
chave do banco de dados de sequncias. (2) para que uma sequncia s esteja contida
numa sequncia t necessrio que os smbolos de s ocorram consecutivamente em t. Isto
no exigido na denio de incluso de duas sequncias de itemsets. (3) as sequncias de
referncias no possuem elementos repetidos, o que no acontece em geral para sequncias
de itemsets: um mesmo itemset pode ser comprado em diferentes momentos pelo mesmo
usurio.

5.6.2 Padres Sequenciais em Bioinformtica


Problemas de descoberta de padres aparecem em diferentes reas de biologia, por exem-
plo, padres que regulam a funo de genes em sequncias de DNA, ou padres que so
comuns em membros de uma mesma famlia de protenas.
O banco de dados de sequncias onde os padres sero descobertos consiste de se-
quncias sobre o alfabeto = {A, C, G, T } ( no caso de sequncias de DNA, onde os
smbolos A, C, G, T representam os 4 nucleotdeos que compem uma sequncia de DNA)
ou sobre o alfabeto dos 20 amino-cidos que compem as protenas (no caso de sequncias
especicando protenas). Os seguintes tipos de problemas so objeto de investigao:
Problemas de descobrir padres signicantes. O problema da descoberta de padres
geralmente formulado da seguinte maneira: dene-se uma classe de padres de interesse
que se quer encontrar e tenta-se descobrir quais os padres desta classe que aparecem
no banco de dados, com um suporte maior. O suporte de um padro normalmente o
nmero de sequncias nas quais o padro ocorre. Muitas variaes neste conceito ocorrem:
pode-se exigir que o padro ocorra em todas as sequncias, ou num nmero mnimo de
sequncias especicado pelo usurio. Em alguns casos, o nmero de ocorrncias no es-
pecicado, mas simplesmente um parmetro de uma funo que relaciona caractersticas
da sequncia (tamanho, por exemplo), com o nmero de ocorrncias.
Descoberta de Padres versus Reconhecimento de Padres. O problema discutido
acima se refere a Descoberta de Padres. Um outro problema importante em biologia, rela-
cionado a sequncias, o problema do Reconhecimento de Padres : Em biologia, muitos
padres signicantes so conhecidos a priori e importante desenvolver ferramentas para
descobrir ocorrncias destes padres conhecidos em novas sequncias. Programas para
reconhecimento de padres podem ser bem gerais no sentido de que podem ser projetados
para reconhecer padres diversos (o padro um parmetro de input do problema) ou
podem ser bem especcos, no sentido de que so projetados para reconhecer um padro
particular. Do ponto de vista de cincia da computao, estes ltimos no apresentam
muito interesse, porm, so muito importantes para bilogos.
Problemas de Classicao. Tais problemas ocorrem, por exemplo, em famlias de
protenas. Um dos objetivos de se encontrar motivos comuns em famlias de protenas
utilizar estes motivos como classicadores. Assim, dada uma protena desconhecida, pode-
mos classic-la como membro ou no-membro de uma famlia, simplesmente baseando-se
no fato de que ela contm os padres que caracterizam esta famlia. Neste caso, temos
um tpico problema de aprendizado de mquina: dado um conjunto de sequncias que
pertencem famlia (exemplos positivos) e um conjunto de sequncias que no pertencem
famlia (exemplos negativos), queremos descobrir uma funo F que associa a cada pro-
tena um elemento de {0,1}, dizendo que a protena pertence (F (proteina) = 1) ou no
pertence (F (proteina) = 0) famlia.
Notas Bibliogrcas. Alguns artigos que constituem leitura interessante para o tpico
de Web Mining so [KB 2000], [SF 1999], [CMS 1997], [Spi 1999], [SY 2001], [CPY 1998].
Em [Flo 1999], o leitor pode encontrar um excelente survey sobre minerao de biosequn-
cias bem como algoritmos importantes, como o algoritmo o TEIRESIAS. Em [BDV+ 2000],
o leitor vai encontrar endereos de diversos bancos de dados de protenas e instrues para
carreg-los. Uma discusso detalhada dos tipos de problema em minerao de biosequn-
cias pode ser encontrada em [BJEG 1998].
Referncias Bibliogrcas

[Amo 2003] S. de Amo: Curso de Data Mining, Programa de Mestrado em


Cincia da Computao, Universidade Federal de Uberlndia, 2003.
http://www.deamo.prof.ufu.br/CursoDM.html

[AS 1994] R. Agrawal, R. Srikant : Fast Algorithms for Mining Association Rules.
Proc. 20th Int. Conf. Very Large Data Bases, VLDB, 1994.

[AS 1995] R. Agrawal, R. Srikant : Mining Sequential Patterns. In Proc. of 1995 Int.
Conf. on Data Engineering, Taipei, Taiwan, March 1995.

[AS 1996] R. Agrawal, R. Srikant : Mining Sequential Patterns : Generalizations and


Performance Improvements. Proc. 5th EDBT, 3-17, 1996.

[ASV 1997] R. Srikant, Q. Vu, R. Agrawal: Mining Association Rules with Item
Constraints Proc. of the 3rd Int'l Conference on Knowledge Discovery in
Databases and Data Mining, Newport Beach, California, August 1997.

[BDV+ 2000] B. Brejova, C. DiMarco, T. Vinar, S.R. Hidalgo, G. Holguin, C. Patten :


Finding Patterns in Biological Sequences. Project Report, Department of
Biology, University of Waterloo, 2000.

[BJEG 1998] A. Brazma, I. Jonassen, I. Eidhammer, D. Gilbert: Approaches to the Au-


tomatic Discovery of Patterns in Biosequences. Journal of Computational
Biology 5(2): 277-304 (1998).

[CMS 1997] R.Cooley, B. Mobasher, J. Srivastava : Web Mining : Information and Pat-
tern Discovery on the World Wide Web. In Proceedings of the Nineth IEEE
International Conference on Tools with Articial Intelligence (ICTAI'97),
pages 558567, November 1997.

[CPY 1998] M.S. Chen, J. S. Park, P.S. Yu : Ecient Data Mining for Path Traversal
Patterns. IEEE Transactions on Knowledge Discovery and Data Engineer-
ing 10(2), 209-221, Mars 1998.

[EKSX 1996] M. Ester, H-P Kriegel, J. Sander, X. Xu : A density-based Algorithm for


Discovering Clusters in Large Spatial Databases with Noise. Proceedings
of the 2nd International Conference on Knowledge Discovery and Data
Mining, KDD 1996.

[Flo 1999] A. Floratos : Pattern Discovery in Biology: Theory and Applications.


Ph.D. Thesis, Department of Computer Science, New York University, Jan.
1999.

41
[FPPR 1996] Usam M. Fayyad, Gregory Piatetsky-Shapiro, Padhraic Smyth, Ramasamy
Uthurusamy : Advances in Knowledge Discovery and Data Mining. AAAI
Press, 1996.

[GRS 1998] S. Guha, R. Rastogi, K. Shim : CURE: An Ecient Clustering Algorithm


for Large Databases. ACM/SIGMOD 1998.

[GRS 1999] M. Garofalakis, R. Rastogi, and K. Shim. SPIRIT: sequential pattern min-
ing with regular expression constraints. Proc. VLDB, 223-234, 1999.

[GRS 2002] M. Garofalakis, R. Rastogi, and K. Shim. Mining Sequential Patterns with
Regular Expression Constraints. IEEE Transactions on Knowledge and
Data Engineering Vol. 14, No. 3, 2002, pp. 530-552.

[HK 2001] J.Han, M. Kamber : Data Mining : Concepts and Techniques. Morgan
Kaufmann, 2001.

[HMS 2001] D. Hand, H. Mannila, P. Smith : Principles of Data Mining. MIT Press,
2001.

[KB 2000] R. Kosala, H. Blockeel : Web Mining Research: a Survey. SIGKDD Explo-
rations. ACM SIGKDD, July 2000, Vol 2, Issue 1.

[Lan 1996] P. Langley : Elements of Machine Learning. San Mateo, CA, Morgan Kauf-
mann, 1996.

[LSL 1995] H. Lu, R. Setiono, H. Liu : Neurorule: A connectionist approach to data


mining. In Proc. 1995 Int. Conf. Very Large Data Bases (VLDB'95), pp.
478-489, Zurich, Switzerland, 1995.

[Man 1997] H. Mannila. Methods and problems in data mining. In Proc. 7th Interna-
tional Conference on Database Theory (ICDT 97), pages 41-55m Delphi,
Greece, 1997.

[Mit 1982] T.M. Mitchell: Generalization as search. Articial Intelligence, 18:203-226.

[MT 1997] H. Mannila, H. Toivonen : Levelwise Search and Borders of Theories in


Knowledge Discovery. Data Mining and Knowledge Discovery 1, 241-258,
1997. Kluwer Academic Publishers.

[MTV 1997] H. Mannila, H. Toivonen, and A. I. Verkamo. Discovery of frequent episodes


in event sequences. Data Mining and Knowledge Discovery, 1(3), 259-289,
1997.

[NH 1994] R.T.Ng, J. Han : Ecient and Eective Clustering Methods for Spatial
Data Mining. Proc. of the International Conference on Very Large Data
Bases, (VLDB Conference), 1994.

[RHW 1986] D.E.Rumelhart, G.E. Hinton, R.J.Williams: Learning internal representa-


tions by error propagation. In D.E. Rumelhart and J.L.McClelland, editors,
Parallel Distributed Processing. Cambridge, MA,MIT Press, 1986.
[Roy 2000] Asin Roy: Articial Neural Networks: A Science in Trouble. SIGKDD
Explorations, Vol. 1, Issue 2, Jan. 2000, 33-38.

[Set 1997] R. Setiono : A penalty-function approach for pruning feedforward neural


networks. Neural Computation, Vol. 9, n. 1, 185-204, 1997.

[SF 1999] M. Spiliopoulou, L.C. Faulstich : WUM : A Web Utilization Miner. In


Proceedings of EDBT Workshop WebDB98, Valencia, LNCS 1590, Springer
Verlag, 1999.

[SON 1996] A. Savasere, E. Omiecinski, S. B. Navathe: An Ecient Algorithm for


Mining Association Rules in Large Databases. Proc. 1995 Int. Conf. on
Very Large Databases (VLDB 95),432-444.

[Spi 1999] M. Spiliopoulou : The Labourious Way From Data Mining to Web Log
Mining. International Journal of Computer Systems Science and Engineer-
ing: Special Issue on Semantics of the Web, 14:113126, March 1999.

[SY 2001] R. Srikant, Y. Yang : Mining Web Logs to Improve Website Organiza-
tion. Proceedings of the Tenth International World Wide Web Conference,
WWW 10, Hong Kong, China, May 1-5, 2001, pages 430-437.

[WF 2000] I. H. Witten, E. Frank : Data Mining : Practical Machine Learning - Tools
and Techniques with Java Implementations. Morgan Kaufmann, 2000.

[WK 1991] S.M.Weiss, C.A. Kulikowski: Computer Systems that Learn: Classication
and Prediction Methods from Statistics, Neural Nets, Machine Learning
and Expert Systems. San Mateo, CA, Morgan Kaufmann, 1991.

[ZRL 1996] T. Zhang, R. Ramakrishnan, M. Livny. BIRCH: An ecient data clustering


method for very large databases. In Proc. 1996 ACM-SIGMOD Int. Conf.
Management of Data (SIGMOD'96), 103-114, Montreal, Canada, 1996.

Вам также может понравиться