Вы находитесь на странице: 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, knowledgebased 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 bancos de dados, inteligncia articial, aprendizado de mquina, redes neurais, estatstica, reconhecimento de padres, sistemas baseados em conhecimento, recuperao da informao, 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 tarefas 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 inteligentes a m de se extrair os padres de interesse.

6. Avaliao ou Ps-processamento : etapa onde so identicados os padres interessantes 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 Minerao 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 regularidades 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 interessam. Dentre as principais tcnicas utilizadas em minerao de dados, temos tcnicas estatsticas, tcnicas de aprendizado de mquina e tcnicas baseadas em crescimento-podavalidao. 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, sintomas 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 supermercado. 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 tocatas 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. 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 Clusters (Agrupamentos). Diferentemente da classicao e predio

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.

Anlise de Outliers. Um banco de dados pode conter dados que no apresentam

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 essenciais 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, juntamente com suas principais funcionalidades:
Nome Intelligent Miner MineSet Clementine Fabricante
IBM

Funes

Silicon Graphics Inc. Integral Ltd. Solutions

DBMiner Genamics Expression

DBMiner Technology Inc. Genamics oper Devel-

algoritmos para regras de associao, classicao, regresso, padres sequenciais, clustering. algoritmos para regras de associao, classicao, anlise estatstica. algoritmos de regras de induo, redes neurais, classicao e ferramentas de visualizao. algoritmos de regras de associao, classicao, clustering. algoritmos de anlise de sequncias

Destaque

Integrado com o SGBD DB2 da IBM. Grande escalabilidade dos algoritmos. Um robusto conjunto de ferramentas avanadas de visualizao. Interface orientadaobjeto. Data Mining utilizando OLAP Anlise de protenas e de sequncias de DNA

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

Notas Bibliogrcas. Existe uma grande variedade de livros texto sobre Minerao

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 costumam 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 supermercado, 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 comprar 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 representao dos artigos na tabela, vamos associar nmeros a cada artigo do supermercado, como ilustrado na Figura 5.2. Artigo (item) Po Leite Acar Papel Higinico Manteiga Fralda Cerveja Refrigerante Iogurte Suco nmero que o representa 1 2 3 4 5 6 7 8 9 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 101 102 103 104 105 106

Itens comprados {1,3,5} {2,1,3,7,5} {4,9,2,1} {5,2,1,3,9} {1,8,6,4,3,5} {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 {1,3} {2,3} {1,2,7} {2,9} Suporte 0,6666 0,3333 0,16666 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 supermercado). 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 correspondente 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 :

conf (A B) =

nmero de transaes que suportam (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 sup(L) total de trans = = total de trans. suportando A total de trans. suportando A sup(A) total de trans

conf (A (L A)) =

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 conjunto 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, portanto, devero pertencer ao conjunto Lk1 . Assim, o conjunto Ck 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

itemset frequente de tamanho 6

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 Ck :

insert into Ck 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 C3 da iterao seguinte ser:

C3 = {{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 Ck 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 = Ck {I | existe J I tal que | J |= k 1 e J Lk1 }. A notao | J | signica o nmero de elementos do itemset J .
= C3 {{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.

Exemplo 5.2.2 Consideremos a situao apresentada no exemplo 5.2.1. Neste caso, C3

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 sequncias. Uma sequncia ou padro sequencial de tamanho k (ou k -sequncia) uma coleo ordenada de itemsets < I1 , I2 , ..., In >. Por exemplo, s = <{TV,aparelho-desom},{Vdeo}, {DVDPlayer}> um padro sequencial. Uma k -sequncia uma sequncia 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 s =< {8}, {7} > no est contida em t.

De agora em diante, vamos utilizar a seguinte nomenclatura para diferenciar as sequncias: sequncias que fazem parte do banco de dados de sequncias (correspondem a alguma sequncia de itemsets comprados por algum cliente) so chamadas de sequncia 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 :

sup(s) =

nmero de sequncias de clientes que suportam s nmero total de sequncias de clientes

Um padro sequencial s dito frequente com relao a um banco de dados de sequncias 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 t >, onde t 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 lexogrca 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 sequncia de k 1 itens

sequncia de k itens resultante

Figura 5.6: Como juntar sequncias

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} >.

Exemplo 5.2.3 Sejam s =< {1, 2}, {3}, {5, 7} >, t =< {2}, {3}, {5, 7, 10} >. Retirando-

Denimos o conjunto dos pr-candidatos Ck 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 C4 correspondente ( direita):

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

< {1, 2}, {3, 4} > < {1, 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} >.

< {i} > e testando-se o suporte para cada uma delas. As que so frequentes constituem o conjunto L1 .

Caso k = 1: O clculo de C1 feito considerando-se todas as sequncias de 1 item

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} > }.

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.

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

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.

Fase de Gerao: usando Lk e R, produzir um conjunto C


k+1

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 que no seja frequente. Ora, se L e satisfaz a expresso regular R, teremos certeza de que no frequente. Assim:

C k+1 = C

k+1

{ C

k+1

| ,

L e satisfaz R}
k+1

O problema com esta idia o seguinte: Seja Ak+1 = { C | , L e |= R} o conjunto de sequncias que so podadas. Repare que quanto mais restritiva for a expresso regular R, menor ser o conjunto Ak+1 , isto , menos sequncias sero podadas. A tabela abaixo ilustra este fato: Poder de Restrio de R

k+1

Ak+1

k+1

Ak+1

Assim, a introduo da restrio R, por um lado, na fase de gerao restringe os candidatos 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 R ) 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 R de R corresponde a um Algoritmo SPIRIT(R ), cuja idia geral de execuo a descrita acima, mas considerando, ao invs de R, a condio R . 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 R de R, pois as fases de gerao e podagem estaro em sintonia: Se frequente e satisfaz R e ento deve ser frequente e satisfazer R. Logo, a fase da podagem consiste simplesmente em eliminar as sequncias k+1 candidatas C tais que , 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.

1 a 2 b 4 3

2 c 4 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 R
SPIRIT(N) SPIRIT(L) SPIRIT(V) SPIRIT(R)

nenhuma restrio somente sequncias legais com respeito a algum estado de AR somente sequncias vlidas com respeito a algum estado de AR somente sequncias vlidas (R = R)

O esquema geral dos algoritmos SPIRIT o seguinte:

Etapa1 1: Etapa do relaxamento R'. Calcula-se o conjunto L das sequncias frequentes 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 relaxamento total (algoritmo SPIRIT(N)), (2) o relaxamento correspondente s sequncias legais com respeito a algum estado do autmato AR (algoritmo SPIRIT(L)), (3) o relaxamento 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 L 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 nenhuma 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. 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].

Notas Bibliogrcas. Detalhes do algoritmo Apriori e anlise dos resultados exper-

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. etapas :

O que um classicador ?. Classicao um processo que realizado em trs


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 Daniel Joo Carlos Maria Paulo Otvio Idade =< 30 31..50 31..50 31..50 =< 30 > 60 Renda Mdia Mdia-Alta Mdia-Alta Baixa Baixa Mdia-Alta Prosso Estudante Professor Engenheiro Vendedora Porteiro Aposentado ClasseProdEletr Sim Sim Sim No No No

A Figura 5.8 ilustra uma possvel rvore de deciso sobre este banco de dados.
Idade ?
=< 30

31..50 Sim

51..60 Sim

> 60

Renda ? B No M Sim

A M-A Sim

No

Sim

Figura 5.8: Uma rvore de deciso

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 categorizados, 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

Idia geral de como criar uma rvore de deciso. A idia geral a que est por

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 Sol Sol Encoberto Chuvoso Chuvoso Chuvoso Encoberto Sol Sol Chuvoso Sol Encoberto Encoberto Chuvoso Temperatura Quente Quente Quente Agradvel Frio Frio Frio Agradvel Frio Agradvel Agradvel Agradvel Quente Agradvel Humidade Alta Alta Alta Alta Normal Normal Normal Alta Normal Normal Normal Alta Normal Alta Vento Falso Verdade Falso Falso Falso Verdade Verdade Falso Falso Falso Verdade Verdade Falso Verdade Jogo No No Sim Sim Sim No Sim No Sim Sim Sim Sim Sim 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) = n ni Entropia(Ai ). i=1 N 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 Sol Sim Sim Sim No No chuvoso Encoberto Sim Sim Sim Sim Sim Sim Sim No No Quente Sim Sim No No

Temperatura Frio Agradavel Sim Sim Sim Sim No No Vento Sim Sim Sim No

Humidade Alta Sim Sim Sim No No No No Normal Sim Sim Sim Sim Sim Sim No Falso Sim Sim Sim Sim Sim Sim No No

Verdadeiro Sim Sim Sim 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: Entropia(Ai ) = ( S1 log2 S1 + ni ni
Ni log2 Nii ) ni n

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 Info(N) = 14 entropia(Folha 1) + 14 entropia(Folha 2) +


entropia(Folha entropia(Folha entropia(Folha Logo, Info(N) 1) = 2 log2 2 + 3 log2 3 5 5 5 5 4 2) = 4 log2 5 + 0 log2 0 5 4 4 3 3) = 5 log2 3 + 2 log2 2 5 5 5 5 4 5 = 14 0.971 + 14 0 + 14 = 0.971 =0 = 0.971 0.971 = 0.693

5 14

entropia(Folha3)

Se escolhemos o atributo Temperatura: 6 4 Info(N) = 14 entropia(Folha 1) + 14 entropia(Folha 2) + 0.911

4 14

entropia(Folha3) =

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 Info(N) = 14 entropia(Folha 1) +
6 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 log2 NSim + NN ao log2 NN ao , onde NSim = N N N N total de tuplas classicadas como Sim; NN ao = total de tuplas classicadas como No; N = total de tuplas no n.
9 9 Exemplo 5.3.3 Consideremos a situao do exemplo 5.3.2. Temos que Info-pr = 14 log2 14 + 5 5 log2 14 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 rvore 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 viceversa. 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 input
I1

camada intermediria

camada de output

I2

Ii

. . .

wij

. . .
Oj

wjk

. . .
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 (distintos 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 classicadas. 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 camada 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, estamos 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 convirjam. 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 corretamente 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 envolvidos 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 categorizar 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 atributos 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 determinar 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.

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

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

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 corresponde 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) = 1 , onde t o t nmero correspondente iterao em que se est. Assim, na primeira iterao, a taxa 1, na segunda 1 , etc. 2 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 iterao 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 malclassicadas 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 1 utilizada f (x) = 1+ex . 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
x0 w0j

x1

w1j

+ j tendncia INPUT Ij na unidade j

x2

w2j

outputs da camada precedente

Mdia ponderada dos outputs recebidos

Input Ij

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 nosupervisionado, 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) d(3, 1) . . .

... 0 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 ) = k pCi | p mi |2 . i=1 O mtodo k -means que apresentamos a seguir procura construir uma partio C contendo 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 particionamento 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, utilizase 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 ). dave (Ci , Cj ) =
1 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 .

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 O algoritmo CURE recebe como input um banco de dados D e

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 clusters 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 representantes 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 , cj ) onde todos os representantes do primeiro cluster ({c1 , ..., cn }) e do segundo cluster ({c1 , ..., cm }) 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.
C2 C1 C2 d2 C1 d3 C2

+ C1 d1

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 normalmente 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. 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 pequenos 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.

Idia geral. Como todo algoritmo hierrquico aglomerativo, CURE inicia com cada

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 representantes 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. rvore onde as folhas armazenam conjuntos de itemsets, e os ns intermedirios (inclusive

Utilizando uma rvore-hash para armazenar Ck e Lk1 . Uma rvore-hash uma

a raiz) armazenam tabelas-hash contendo pares do tipo (nmero, ponteiro), como mostra a Figura 5.16.
1 2 3

1 2 3

1 2 3

1 2 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 Po Po Leite Leite Acar Leite Acar Manteiga Acar Manteiga 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 Po, Acar Po, Manteiga Acar, Manteiga

Leite, Acar Leite, 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 C3 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 C3 , temos que vericar se este contm um 2-itemset que no est em L2 . Por exemplo, suponha que I = {Po, Acar, Manteiga} C3 . 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 adaptada 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 gerenciamento 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-podavalidao que vimos na Seo 5.2.

5.5.1 Um Algoritmo Geral Baseado numa Hierarquizao do Espao 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 = . 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 anteriores 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 = begin 4. // Validao: encontra os padres de C1 que satisfazem Q: 5. Fi := { Ci | satisfaz Q} 6. // gerao: calcula Ci+1 L usando ji Fj : 7. Ci+1 := { L | para todo tem-se que ji Fj } ji Cj ; 8. i := i + 1; 9. end 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 candidatos. 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
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.
1 Uma

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 Associao 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 exemplo 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 tarefa 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 especco 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 especializao. 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 s =< s1 , ..., sm > so sequncias de itemsets ento dizemos que s mais especca do que s se existe subsequncia s =< si1 , ..., sik > tal que sij sj 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 C

(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 sequncia 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 , , g ) so dois episdios, dizemos que se (1) V V , (2) para todo v V , g(v) = g (v), e (3) para quaisquer v, w V com v w tem-se tambm v w. Por exemplo, 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. 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.

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

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 apropriadas 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 u2 . . .

(s1 , d1 ) (s2 , d2 ) . . .

t1 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, d ) armazenado, indicando que a sesso de visita do site anterior se encerrou e uma nova sesso est se iniciando no site d . Consideremos o seguinte exemplo ilustrado na Figura 5.22.
1 B 5 7 4 8 H G 9 W 10 11 E A 12 O 13 14 U V

2 C

15

3 D

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, d ) correspondendo ao endereo d 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 anteriormente 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:

sup(s) =

nmero de seq. max. para frente que suportam 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 exemplo, 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 sequncias 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 especicado, 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, relacionado 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, podemos 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 protena 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 biosequncias 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 biosequncias 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 R. Agrawal, R. Srikant : Fast Algorithms for Mining Association Rules. Proc. 20th Int. Conf. Very Large Data Bases, VLDB, 1994. R. Agrawal, R. Srikant : Mining Sequential Patterns. In Proc. of 1995 Int. Conf. on Data Engineering, Taipei, Taiwan, March 1995. R. Agrawal, R. Srikant : Mining Sequential Patterns : Generalizations and Performance Improvements. Proc. 5th EDBT, 3-17, 1996. 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.

[AS 1994] [AS 1995] [AS 1996] [ASV 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 Automatic 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 Pattern 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. M.S. Chen, J. S. Park, P.S. Yu : Ecient Data Mining for Path Traversal Patterns. IEEE Transactions on Knowledge Discovery and Data Engineering 10(2), 209-221, Mars 1998.

[CPY 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] [GRS 1999] [GRS 2002] S. Guha, R. Rastogi, K. Shim : CURE: An Ecient Clustering Algorithm for Large Databases. ACM/SIGMOD 1998. M. Garofalakis, R. Rastogi, and K. Shim. SPIRIT: sequential pattern mining with regular expression constraints. Proc. VLDB, 223-234, 1999. 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. J.Han, M. Kamber : Data Mining : Concepts and Techniques. Morgan Kaufmann, 2001. D. Hand, H. Mannila, P. Smith : Principles of Data Mining. MIT Press, 2001. R. Kosala, H. Blockeel : Web Mining Research: a Survey. SIGKDD Explorations. ACM SIGKDD, July 2000, Vol 2, Issue 1. P. Langley : Elements of Machine Learning. San Mateo, CA, Morgan Kaufmann, 1996. 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. H. Mannila. Methods and problems in data mining. In Proc. 7th International Conference on Database Theory (ICDT 97), pages 41-55m Delphi, Greece, 1997. T.M. Mitchell: Generalization as search. Articial Intelligence, 18:203-226. 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. 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. 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.

[HK 2001] [HMS 2001] [KB 2000] [Lan 1996] [LSL 1995]

[Man 1997]

[Mit 1982] [MT 1997]

[MTV 1997]

[NH 1994]

[RHW 1986] D.E.Rumelhart, G.E. Hinton, R.J.Williams: Learning internal representations by error propagation. In D.E. Rumelhart and J.L.McClelland, editors, Parallel Distributed Processing. Cambridge, MA,MIT Press, 1986.

[Roy 2000] [Set 1997] [SF 1999]

Asin Roy: Articial Neural Networks: A Science in Trouble. SIGKDD Explorations, Vol. 1, Issue 2, Jan. 2000, 33-38. R. Setiono : A penalty-function approach for pruning feedforward neural networks. Neural Computation, Vol. 9, n. 1, 185-204, 1997. M. Spiliopoulou, L.C. Faulstich : WUM : A Web Utilization Miner. In Proceedings of EDBT Workshop WebDB98, Valencia, LNCS 1590, Springer Verlag, 1999. 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. M. Spiliopoulou : The Labourious Way From Data Mining to Web Log Mining. International Journal of Computer Systems Science and Engineering: Special Issue on Semantics of the Web, 14:113126, March 1999. R. Srikant, Y. Yang : Mining Web Logs to Improve Website Organization. Proceedings of the Tenth International World Wide Web Conference, WWW 10, Hong Kong, China, May 1-5, 2001, pages 430-437. I. H. Witten, E. Frank : Data Mining : Practical Machine Learning - Tools and Techniques with Java Implementations. Morgan Kaufmann, 2000. 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. 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.

[SON 1996]

[Spi 1999]

[SY 2001]

[WF 2000] [WK 1991]

[ZRL 1996]

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