Documente Academic
Documente Profesional
Documente Cultură
Sandra de Amo
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.
2. Integrao dos dados : etapa onde diferentes fontes de dados podem ser combinadas
produzindo um nico repositrio de dados.
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.
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.
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}
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
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 .
< {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} >
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} > }.
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
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
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].
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
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.
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
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.
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
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.
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.
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.
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
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.
0 ...
d(2, 1) 0
d(3, 1) d(3, 2) 0
.. .. .. .. ..
. . . . .
d(n, 1) d(n, 2) d(n, 3) ... 0
alterao no centro de gravidade dos clusters e assim, distorcer a distribuio dos dados
nos mesmos.
d2
+ d1
+
d3
C1 C2 C1 C2 C1 C2
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.
+
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).
1 1 1
2 2 2
3 3 3
1
2
3
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
h(i1 ) = 1 h(i1 ) = 2
h(i1 ) = 1 h(i1 ) = 2
h(i1 ) = 1 h(i1 ) = 2
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.
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
A A
B B
(b) (c)
Figura 5.21: (a) Uma sequncia de eventos; (b) e (c) dois episdios
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
[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.
[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.
[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.
41
[FPPR 1996] Usam M. Fayyad, Gregory Piatetsky-Shapiro, Padhraic Smyth, Ramasamy
Uthurusamy : Advances in Knowledge Discovery and Data Mining. AAAI
Press, 1996.
[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.
[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.
[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.
[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.