• Nenhum resultado encontrado

Descoberta de Conhecimento. A fast APRIORI Implementation. Por: Ivan Medeiros Monteiro

N/A
N/A
Protected

Academic year: 2021

Share "Descoberta de Conhecimento. A fast APRIORI Implementation. Por: Ivan Medeiros Monteiro"

Copied!
61
0
0

Texto

(1)

Descoberta de Conhecimento

A fast APRIORI Implementation

(2)

Sumário

Motivação

Revisão técnicas de associação

Definições

Algoritmo APRIORI

Estrutura de dados Trie

Fast APRIORI

Exemplo

(3)

Motivação

Necessidade de obter conhecimento sobre uma

grande quantidade de dados bruto.

Descoberta de relações de associação ocultas no

conjunto de dados

Grande apelo comercial

Ex.: Descoberta de perfis de clientes

Necessidade de resultados rápidos

A demora na obtenção do conhecimento pode

(4)

Mineração de regras de

associação

Dado um conjunto de transações, achar regras para a

predição da a ocorrência de itens baseado na ocorrência

de outros itens na transação.

Transações:

Exemplo de regras de associação

{Diaper} → {Beer},

{Milk, Bread} → {Eggs,Coke}, {Beer, Bread} → {Milk},

TID Items

1

Bread, Milk

2

Bread, Diaper, Beer, Eggs

3

Milk, Diaper, Beer, Coke

4

Bread, Milk, Diaper, Beer

5

Bread, Milk, Diaper, Coke

(5)

Definição: Itemset frequente

Itemset

– Um coleção de um ou mais itens

 Exemplo: {Milk, Bread, Diaper}

– k-itemset

 Um itemset que contém k itens

Contagem de Suporte (

σ

)

– Ocorrências de um itemset

– Ex. σ ({Milk, Bread,Diaper}) = 2

Suporte (s)

– Percentual de transações que contém um itemset

– Ex. s({Milk, Bread, Diaper}) = 2/5

Itemset frequente

– Um itemset com o suporte maior ou igual ao limiar minsup.

TID Items

1 Bread, Milk

2 Bread, Diaper, Beer, Eggs

3 Milk, Diaper, Beer, Coke

4 Bread, Milk, Diaper, Beer

5 Bread, Milk, Diaper, Coke

(6)

Definição: regra de associação

Exemplo:

{Milk ,Diaper}⇒ Beer

s=

σ  Milk , Diaper,Beer 

∣T ∣

=

2

5

=0 . 4

c=

σ  Milk,Diaper,Beer 

σ  Milk , Diaper 

=

2

3

=0. 67

Regra de associação

– Uma expressão na forma X → Y, onde X e Y são itemsets

– Exemplo:

{Milk, Diaper} → {Beer}

Métricas de avaliação de regras

– Suporte (s)

 Percentual de transações que contém

X e Y

– Confiança (c)

 Frequencia com que Y aparece em

transações contendo X.

TID Items

1 Bread, Milk

2 Bread, Diaper, Beer, Eggs 3 Milk, Diaper, Beer, Coke 4 Bread, Milk, Diaper, Beer 5 Bread, Milk, Diaper, Coke

(7)

Mineração de regras de

associação

Abordagem em dois passos:

Geração de itemsets frequentes

Gera todos os itemsets com suporte

minsup

Geração de regras

Gera regras de alta confiança para cada itemset,

onde cada regra é uma partição de um itemset

frequente

A geração dos conjuntos de itens

frequentes ainda é computacionalmente

custosa

(8)

Geração de Itemsets Frequentes

null

AB AC AD AE BC BD BE CD CE DE

A B C D E

ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE

ABCD ABCE ABDE ACDE BCDE

(9)
(10)
(11)

Contagem do suporte

Determina a

frequência de

ocorrência de todos

os itemsets

candidatos que

passaram pela

poda.

(12)
(13)

Estrutura de dados Trie

Estrutura utilizada para recuperação rápida de

dados

Frequentemente utilizado em dicionários

ANA ANITA ANDRE ALAN ALANIS BETE Exemplo com armazenamento de nomes:

(14)

A Fast APRIORI Implementation

Utiliza a estrutura de dados Trie para otimizar a

forma como são gerados os candidatos

Descreve uma série de detalhes de

implementação que ajuda melhorar o

desempenho do algoritmo

Descreve a implementação do APRIORI que

tem melhor resultado de performance até então

conhecido (2003/2004)

(15)

Considerações

Assume que os itens pertencem a um conjunto

ordenado e que as transações são armazenadas

(16)

Representando itemsets na Trie

Trie é interessante não apenas para armazenar

e recuperar strings, mas qualquer conjunto

finito ordenado.

Candidato k-itemset

C = { i1 < i2 < ... < ik }

Adaptações

Itens representado nas arestas

Desnecessário marcar o fim da “palavra”

(17)

Contagem de suporte com Trie

Para cada k-itemset

Gera candidatos por k-itemset

Determina suporte para os k-itemsets candidatos

Remove os k-itemsets infrequentes

Contagem do suporte através de busca dos

candidatos na Trie

Incrementa do contador de cada k-itemset

(18)

Contagem do suporte

1 0 2 3

Transações:

{A, B, C}

{A, B}

{B, C}

A B C

1-Itemset

3 2 3 2 Contador Nó identificador

(19)

Contagem do suporte

1 0 2 3

Transações:

{A, B, C}

{A, B}

{B, C}

A B C

2-Itemset

3 1 3 2 Contador Nó identificador

Aresta rotulada com o item

4 5 6

B C C

2 2

(20)

Contagem do suporte

1 0 2 3

Transações:

{A, B, C}

{A, B}

{B, C}

A B C

3-Itemset

3 1 3 2 Contador Nó identificador

Aresta rotulada com o item

4 5 6 B C C 2 2 2 7 1 C

(21)

Guardando máximo caminho

Procurar um 5-itemset da transação

{A,B,C,D,E,F,G,H,I}

(22)
(23)

Aplicando hash

Quando um nó possui muitos filhos, o custo da

escolha de um filho, durante o percurso da trie,

tem impacto sobre a performance

É possível acelerar a busca aplicando tabela

hash nos nós internos da trie

Utilizado quando um nó interno ultrapassa um

(24)

APRIORI-BRAVE

Na iteração k, tenta gerar os (k+i)-itemset

atrasando o cálculo do suporte

Avança até o limite de memória especificado

Diminui a quantidade de releitura da base de dados

Necessária para o cálculo do suporte

Perde tempo calculando suporte de falsos

candidatos.

Entretanto, resultados empíricos tiveram bons

(25)

Armazenando entrada

Armazena transações reduzidas

Com informações necessárias para descobrir

itemsets frequentes.

Caso uma transação ocorra X vezes, o suporte

é incrementado por X ao invés de

incrementado por 1 em X vezes.

Possibilita desabilitar armazenamento

Para o caso onde o sistemas operacional já

(26)
(27)

Implementação: Entrada do dados

Aceita apenas dados numéricos

Necessário converter literais

Cada linha representa uma transação

Conversão do formato relacional para o de

transações

A saída precisa ser decodificada de inteiros

(28)

Implementação: Entrada de dados

1,pao 1,leite 2,pao 2,fralda 2,cerveja 2,ovos 3,leite 3,fralda 3,cerveja 3,coca 4,pao 4,leite 4,fralda 4,cerveja 5,pao 5,leite 5,fralda 5,coca 1,1 1,2 2,1 2,3 2,4 2,5 3,2 3,3 3,4 3,6 4,1 4,2 4,3 4,4 5,1 5,2 5,3 5,6 1,2 1,3,4,5 2,3,4,6 1,2,3,4 1,2,3,6 5:ovos 6:coca 1:pao 3:fralda 4:cerveja 2:leite

(29)

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

0 5

1-Itemset

(30)

Pão

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1

0 5

4

1-Itemset

(31)

Pão

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 Leite 5 4 4

1-Itemset

min_supp = 0.6

(32)

Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 5 4 4 4

1-Itemset

min_supp = 0.6

(33)

Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 5 4 4 4

1-Itemset

4 3 min_supp = 0.6

(34)

Ovo Cervej a Pão F ralda

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leit e 5 4 4 4

1-Itemset

4 3 min_supp = 0.6 5 1

(35)

Ovo Cervej a Pão F ralda

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leit e 5 4 4 4

1-Itemset

4 3 min_supp = 0.6 5 1

(36)

Coca Cervej a Pão F ralda

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leit e 5 4 4 4

1-Itemset

4 3 min_supp = 0.6 5 2

(37)

Coca Cervej a Pão F ralda

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leit e 5 4 4 4

1-Itemset

4 3 min_supp = 0.6 5 2

(38)

Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 5 4 4 4

1-Itemset

4 3 min_supp = 0.6

(39)

Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

2-Itemset

4 3 min_supp = 0.6 5 3 5

(40)

F ralda Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

2-Itemset

4 3 min_supp = 0.6 5 3 5 6 3

(41)

Cerve ja F ralda Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

2-Itemset

4 3 min_supp = 0.6 5 3 5 6 3 7 2

(42)

Cerve ja F ralda Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

2-Itemset

4 3 min_supp = 0.6 5 3 5 6 3 7 2

(43)

F ral da Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

2-Itemset

4 3 min_supp = 0.6 5 3 5 6 3 7 3

(44)

Ce rveja F ral da Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

2-Itemset

4 3 min_supp = 0.6 5 3 5 6 3 7 3 8 2

(45)

Ce rveja F ral da Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

2-Itemset

4 3 min_supp = 0.6 5 3 5 6 3 7 3 8 2

(46)

Cerve ja F ral da Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

2-Itemset

4 3 min_supp = 0.6 5 3 5 6 3 7 3 8 3

(47)

Frald a C ervej a Frald a Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

3-Itemset

4 3 min_supp = 0.6 5 3 6 7 8 5 3 3 3 9 2

(48)

Frald a C ervej a Frald a Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

3-Itemset

4 3 min_supp = 0.6 5 3 6 7 8 5 3 3 3 9 2

(49)

C erve ja C ervej a Frald a Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

3-Itemset

4 3 min_supp = 0.6 5 3 6 7 8 5 3 3 3 9 1

(50)

C erve ja C ervej a Frald a Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

3-Itemset

4 3 min_supp = 0.6 5 3 6 7 8 5 3 3 3 9 1

(51)

Cervej a C ervej a Frald a Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

3-Itemset

4 3 min_supp = 0.6 5 3 6 7 8 5 3 3 3 9 2

(52)

Cervej a C ervej a Frald a Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

3-Itemset

4 3 min_supp = 0.6 5 3 6 7 8 5 3 3 3 9 2

(53)

Cerve ja C ervej a Frald a Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

3-Itemset

4 3 min_supp = 0.6 5 3 6 7 8 5 3 3 3 9 2

(54)

Cerve ja C ervej a Frald a Frald a Leit e Cer veja Pão Fral da

Exemplo

Transações

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Leite 4 4 4

3-Itemset

4 3 min_supp = 0.6 5 3 6 7 8 5 3 3 3 9 2

(55)

C ervej a Fral da Fral da Leite Cervej a Pão Fral da

Exemplo

Transações:

{ Pão, Leite }

{ Pão, Fralda, Cerveja, Ovo } { Leite, Fralda, Cerveja, Coca } { Pão, Leite, Fralda, Cerveja } { Pão, Leite, Fralda, Coca }

Contador

Nó identificador

Aresta rotulada com o item

1 0 2 3 Lei te 4 4 4

4-Itemset

4 3 min_supp = 0.6 5 3 6 7 8 5 3 3 3 Cerveja   Fralda (c = 100%, s = 0.6 )→ Fralda   Cerveja (c =  75%, s = 0.6 )→ Fralda   Leite   (c =  75%, s = 0.6 )→ Leite   Fralda   (c =  75%, s = 0.6 )→ Fralda   Pão     (c =  75%, s = 0.6 )→ Pão   Fralda     (c =  75%, s = 0.6 )→ Leite   Pão      (c =  75%, s = 0.6 )→ Pão   Leite      (c =  75%, s = 0.6 )→

Regras geradas:

(56)

Experimentos

(57)

Experimentos

(58)

Experimentos

(59)

Experimentos

(60)

Experimentos

(61)

Experimentos

Referências

Documentos relacionados

Foram analisados a relação peso-comprimento e o fator de condição de Brycon opalinus, em três rios do Parque Estadual da Serra do Mar-Núcleo Santa Virgínia, Estado de São

A análise mostrou a oportunidade de (i) adoção de uma estratégia de planejamento que reflita um modelo sustentável de desenvolvimento que inclua decisões sobre o futuro da Amazônia

Este trabalho pretende contribuir com o desenvolvimento do Turismo em Caverna, Espeleoturismo, a partir da avaliação da percepção de qualidade de serviços pelos visitantes

(2013 B) avaliaram a microbiota bucal de oito pacientes submetidos à radioterapia na região de cabeça e pescoço através de pirosequenciamento e observaram alterações na

Detectadas as baixas condições socioeconômicas e sanitárias do Município de Cuité, bem como a carência de informação por parte da população de como prevenir

Curvas de rarefação (Coleman) estimadas para amostragens de espécies de morcegos em três ambientes separadamente (A) e agrupados (B), no Parque Estadual da Ilha do Cardoso,

A finalidade do “Documento de Arquitetura de Software - DAS” é definir um modelo arquitetural para ser aplicado ao desenvolvimento dos jogos do Desafio SEBRAE, bem como

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários